|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Riccione
Messaggi: 1851
|
[Bash] Script per masterizzare dvd
Ciao a tutti vorrei realizzare un semplice script che servirà per masterizzare dei dvd.
Allora lo script è davvero semplice sono di fatto 3 comandi... Tuttavia vorrei che data un path come argomento venisse creata una iso del contenuto della cartella... la iso dovrà essere montata per vederne il contenuto... Fin qui nessun problema, però a questo punto vorrei che lo script si interrompesse per dare modo di visualizzare il contenuto della iso... e poi aspettasse conferma per continuare... quindi magari farlo attendere un input da terminale yes o no... come faccio? Ho provato a cercare un po in giro ma non so nemmeno se è una cosa fattibile con uno script... Grazie a tutti
__________________
Visitate il mio blog sul mondo FPV:HeavyMachineGun Per i veri appassionati di Formula1: PassioneF1 |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
|
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Parma GialloBlu
Messaggi: 450
|
se metti una cosa del tipo:
nautilus /cartella_da_vedere lo script nn rimane "pausato" finchè non chiudi nautilus?? |
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: Mar 2006
Città: Riccione
Messaggi: 1851
|
Quote:
Quote:
cmq posto quello che ho fatto fino ad ora: Codice:
#!/bin/bash # #burn-dvd.sh: crea la iso di una cartella poi la masterizza. # if test $# != 2 ;then echo 'Numero parametri in ingresso sbagliati' exit 1 fi PATH=$1 NAME=$2 MAXDIM=4400000 echo 'Inizio preparazione iso della cartella:' echo $PATH echo 'Nome della iso:' echo $NAME #calcolo dimensione cartella DIM=`/usr/bin/du -sc $PATH | /bin/grep totale | /usr/bin/cut -f1` #controllo della dimensione della cartella if [ $DIM -gt $MAXDIM ]; then echo 'La dimensione totale dei file da masterizzare è '$DIM echo 'La dimensione dei file supera quella massima consentita per un dvd!' exit 2 fi echo 'Inizio preparazione della iso:' #preparazione della iso #mkisofs -R -J -joliet-long -o $NAME'.iso' $PATH echo 'Iso completata.' #mount della iso per controllare il contenuto #sudo mount -t iso9660 $NAME'.iso' /media/iso -o loop echo 'Controllare che il contenuto della iso sia corretto:' #/usr/bin/nautilus /media/iso echo 'Procedere con la masterizzazione?' #sospendere lo script per far sciegliere secontinuare o meno #smontagio della iso #sudo umount /media/iso echo 'Inizio masterizzazione:' #inizio della masterizzazione #growisofs -Z /dev/sr1=$NAME'.iso' echo 'Copia avvenuta con successo!!!' echo 'Rimozione della iso' #/usr/bin/eject /dev/sr1 echo 'Reinserire il dvd se si vuole controllare il contenuto!' poi va ripulito di alcune cose inutili... vorrei metterci la possibilità di fare il log su file e di sciegliere a priori il numero di copie... ma tutto questo lo si fa facilmente se riesco a far fermare sto script quando dico io... EDIT: trovato cercando con google... basta usare read e salvare quello che si scrive in una variabile!!! adesso comleto lo script! Poi lo riposterò così mi date una mano a fare i log su file! Se avete suggerimenti per migliorarlo ditemi pure!
__________________
Visitate il mio blog sul mondo FPV:HeavyMachineGun Per i veri appassionati di Formula1: PassioneF1 Ultima modifica di Slayer86 : 11-01-2009 alle 20:05. |
||
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Riccione
Messaggi: 1851
|
Domanda come faccio ad interrompere lo script se per caso la creazione della iso non va a buon fine... insomma... quando lo script chiama mkisofs e c'è un qualsiasi problema ho un qualche parametro di ritorno che mi fa capire che la chiamata non è andata abuon fine?
Questo mi servirebbe per capire se qualche cosa fa male e cosa... invece qualche suggerimento per quanto riguarda il log si file??? come faccio a indirizzare sia in stdout sia su un file di log? Grazie del aiuto!
__________________
Visitate il mio blog sul mondo FPV:HeavyMachineGun Per i veri appassionati di Formula1: PassioneF1 |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Riccione
Messaggi: 1851
|
Codice:
#!/bin/bash # #burn-dvd.sh: crea la iso di una cartella poi la masterizza. By Slayer86 # if test $# != 2 ;then echo 'Numero parametri in ingresso sbagliati' exit 1 fi PATH=$1 NAME=$2 echo 'Controllo esistenza di un file iso con lo stesso nome:' EXE=`/bin/ls | /bin/grep $NAME` if [ $EXE = $NAME'.iso' ] ; then echo 'Esiste già un file iso con lo stesso nome, si vuole sovrascrivere il file? yes/no' read DEC while [ "$DEC" != "yes" ] ; do #controllo che venga scritto yes o no if [ $DEC = 'no' ] ; then echo 'Cambiare il nome della iso:' read NAME break fi echo 'Scrivere solo yes/no!' echo 'Esiste già un file iso con lo stesso nome, si vuole sovrascrivere il file? yes/no' read DEC done fi # #Aggiungere il numero di copie che si vuole fare della stessa iso! # MAXDIM=4400000 echo 'Inizio preparazione iso della cartella:' echo $PATH echo 'Nome della iso:' echo $NAME #calcolo dimensione cartella DIM=`/usr/bin/du -sc $PATH | /bin/grep totale | /usr/bin/cut -f1` #controllo della dimensione della cartella if [ $DIM -gt $MAXDIM ]; then echo 'La dimensione totale dei file da masterizzare è '$DIM echo 'La dimensione dei file supera quella massima consentita per un dvd!' exit 2 fi echo 'Inizio preparazione della iso:' #preparazione della iso /usr/bin/mkisofs -R -J -joliet-long -o $NAME'.iso' $PATH echo 'Iso completata.' #mount della iso per controllare il contenuto /usr/bin/sudo mount -t iso9660 $NAME'.iso' /media/iso -o loop echo 'Controllare che il contenuto della iso sia corretto:' /usr/bin/nautilus /media/iso echo 'Procedere con la masterizzazione? yes/no' #sospendere lo script per far sciegliere secontinuare o meno read CONF while [ "$CONF" != "yes" ] ; do #controllo che venga scritto yes o no if [ $CONF = 'no' ] ; then #interruzione echo 'Copia interrotta!' exit 3 fi echo 'Scrivere solo yes/no!' echo 'Procedere con la masterizzazione? yes/no' read CONF done #smontagio della iso /usr/bin/sudo umount /media/iso echo 'Inizio masterizzazione:' #inizio della masterizzazione /usr/bin/growisofs -Z /dev/sr1=$NAME'.iso' # #Aggingere un controllo che la copia avvenga con successo!!! # echo 'Copia avvenuta con successo!!!' echo 'Rimozione della iso' /bin/rm -v $NAME'.iso' /usr/bin/eject /dev/sr1 echo 'Reinserire il dvd se si vuole controllare il contenuto!' Non ho provato a masterizzare ma a fare solo la iso! Cmq masterizzare è un comando solo... Dunque per ora fa semplicemente una copia di una cartella dopo aver preparato l'iso... alla inizio controlla che non esista già una isa chiamata nello stesso modo e poi alla fine cancella l'iso creata... Le prossime modifiche che farò sono : -aggiungere il log su file (ma qui vorrei sentire il parere di qualcuno!) -poter sciegliere quante copie fare della stessa iso... -modulare l'output a video in base alle opzioni messe all'inizio tipo -v per avere l'output completo -fare lo script un pelo più personalizzabile... ovvero poter sciegliere la velocità a cui scrivere ecc... Spero che questo script possa essere utile a qualcuno come lo è per me... Intanto lo faccio per perndere dimestichezza con il linguaggio bash che mi ha sempre affascinato ma non lo so usare un granche!
__________________
Visitate il mio blog sul mondo FPV:HeavyMachineGun Per i veri appassionati di Formula1: PassioneF1 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:22.




















