UFFICIALE L'OT di Linux e altri OS

Pubblicità
Dialog è una cosa stile curses semplificato per bash, gli altri son un po' più elaborati. Non li conosco più di tanto e poi dovresti stravolgere tutto il lavoro fatto finora.
Per la cartelle nascoste non basta l' esempio sopra perché l' uno esclude l' altro. Cioè se modifico per i nomi col punto, non mi vede più gli altri.
La cosa del primo avvio è che il comando ls $dest/*.tar.gz se non trova nessun file tar.gz, che succede?
A parte il discorso del punto all' inizio del nome, ma se dentro la destinazione non trova, ls sgancia l' errore. Mi era parso in prima lettura che l' avessi sistemato. :boh:

EDIT: Dico primo avvio, ma in realtà sarebbe il primo backup, infatti dal secondo (premesso che la destinazione sia la stessa), tovando un file tar.gz $ ls non da errore.
 
Vedi se ti va bene una soluzione del genere.
Tu usi un ciclo for per contare i file.tar.gz nella directory e fai un +1 con let, giusto?
Volendo si potrebbe fare così usando wc (se non c'è va installato) al posto del ciclo:
Codice:
let count=`find $dest -type f -iname '*.gz' | wc -l` ; let count=count+1 ; echo $count
Se nella directory non è presente nessun file.gz, count assume il valore di 1.
 
La cosa del primo avvio è che il comando ls $dest/*.tar.gz se non trova nessun file tar.gz, che succede?
A parte il discorso del punto all' inizio del nome, ma se dentro la destinazione non trova, ls sgancia l' errore. Mi era parso in prima lettura che l' avessi sistemato. :boh:
al primo backup non sgancia l'errore ma semplicemente nomina l'archivio '$prov_backup0-gg-mm-aa.tar.gz': cioè faccio iniziare da 0 il primo backup che è quello integrale, i successivi incrementali sono 1,2,3,..,n. se ho capito quello che vuoi dire.
devo però controllare le evenienze files nascosti con i 'ls $directory *.tar.gz'.
 
@ « MoMy » questo
Codice:
(pv pv -n -s $(du -sb $prov/*.tar.gz | awk '{print$1}') | tar xzv --listed-incremental=/dev/null --file ${file##*/} -C $dest) 2>&1 | zenity --progress --no-cancel --width=450 --height=120 --title="AVVIO RIPRISTINO IN CORSO" --text="ripristino dell'archivio $archivio in esecuzione, attendere.."
come lo coniugo, togliendo zenity e al suo posto 'dialog --gauge eccetera', con il comando
Codice:
gnome-terminal -e '<comando>'?
:cry:


prova questo com'è bello:
Codice:
(tar c --listed-incremental=/home/$user/$log f - /home/$user | pv -n -s $(du -sb /home/$user | awk '{print$1}') | gzip > /home/$user/archivio.tar.gz) 2>&1 | dialog --gauge "backup in esecuzione, attendere.." 7 70
 
Ma è un supporto driver per chi ha dischi o vuole accedere a partizioni Btrfs su Linux, mica puoi installare Windows con Btrfs :rolleyes:

Non pensi quadrimensionalmente!!
E' solo il primo passo per partire alla conquista del mondo: Embrace, extend and extinguish.. distruggeremo windows dalle fondamenta.. :asd:

Si scherza è..
 
Devo considerare l' idea di studiarmi seriamente le regex. :boh:
@rebellion cosa fa questa $(sed -e '$!d' /home/$USER/backup) = "#info=on"?
L' idea è buona, ma allora conviene avere un file di configurazione default magari in ~/.config/RebellBackUp (magari invocandolo con source file.config) invece di avere file sparsi nella $HOME.
al primo backup non sgancia l'errore ma semplicemente nomina l'archivio
Se io non ho nessun file /home/$USER/backup oppure nessun file.tar.gz nella cartella di destinazione?
Se l' indirizzo dato in pasto a un comando (come sed, come ls, come cp e tanti altri) è nullo, non si riceve il messaggio ''file o directory non esistente''?
Quindi, se lanci ls $dest/*.tar.gz oppure sed -e '$!d' /home/$USER/backup e non esiste nessun file, il messaggio che ricevi è ''file o directory non esistente''.
Per carità, puoi anche ignorarli. :p
 
Devo considerare l' idea di studiarmi seriamente le regex. :boh:
@rebellion cosa fa questa $(sed -e '$!d' /home/$USER/backup) = "#info=on"?
legge l'ultima riga del file backup e la confronta; l'idea è quella di fare tutto con un singolo file, cioè lo script di backup/ripristino che ho nominato 'backup'. a es., lo script visualizza o meno le info iniziali a seconda dello stato dell'ultima linea dello script stesso (#info=on oppure #info=off). quindi non ho file sparsi nella home ma ho un solo file, lo script.
Se io non ho nessun file /home/$USER/backup oppure nessun file.tar.gz nella cartella di destinazione?
Se l' indirizzo dato in pasto a un comando (come sed, come ls, come cp e tanti altri) è nullo, non si riceve il messaggio ''file o directory non esistente''?
Quindi, se lanci ls $dest/*.tar.gz oppure sed -e '$!d' /home/$USER/backup e non esiste nessun file, il messaggio che ricevi è ''file o directory non esistente''.
Per carità, puoi anche ignorarli. :p
allora, se lanci 'ls file' e file non c'è il terminale ti restituisce errore, ma se lancio la stessa operazione tramite lo script (lanciato da terminale), allora il terminale non mi restituisce errore e lo script genera il file backup0-date.tar.gz.

Edit: se la cartella da copiare non è nascosta allora backup/ripristino funziona correttamente anche se al suo interno ci sono file/cartelle nascoste; il problema sorge con le cartelle nascoste da copiare..neanch sostituendo ls con 'ls -a', probabilmente perchè crea il file archivio col nome sbagliato, appena ho tempo indago, forse per il primo backup basta rinominare la cartella da copiare togliendo il punto ed eventualmente rimettendolo a backup eseguito, mentre per i successivi backup della stessa cartella si deve togliere il punto a ogni file .tar.gz eppoi eventualmente rimetterlo un volta finito il backup; questo va fatto anche col ripristino.:sisi:
 
Ultima modifica:
E questi cosa sono?
Directory /home/momy/BACKUP senza nessun file.tar.gz.
ls: impossibile accedere a '/home/momy/BACKUP/*.tar.gz': File o directory non esistente

Tu parti dal presupposto che lo script si chiami backup e che stia in $HOME, ma come vedi io l' avevo nominato ''a cacchio'' e messo nel desk per comodità:
sed: impossibile leggere /home/momy/backup: File o directory non esistente
/home/momy/Desktop/backapp.sh: riga 25: [: =: atteso operatore unario
sed: impossibile leggere /home/momy/backup: File o directory non esistente
/home/momy/Desktop/backapp.sh: riga 43: [: =: atteso operatore unario
In parole povere, il mio script che non si chiama /home/$USER/backup genera errori perché?
La mia soluzione (poi come al solito fai come vuoi :P):
if [ $(sed -e '$!d' $0) = "#info=on" ]

Controlla anche questa parte, il nome del file prodotto dal comando gzip:
Codice:
/* Nel mio Riga 61 e 76 */
backupfile=$cartella"_backup"$count"-"$(date +%d-%m-%Y).tar.gz
(tar c --listed-incremental=$dest/$log f - $prov | pv -n -s $(du -sb $prov | awk '{print$1}') | gzip > $dest/$backupfile.tar.gz) 2>&1 | dialog --gauge "backup in esecuzione, attendere.." 7 70

EDIT: tar > gzip
 
E questi cosa sono?
Directory /home/momy/BACKUP senza nessun file.tar.gz.


Tu parti dal presupposto che lo script si chiami backup e che stia in $HOME, ma come vedi io l' avevo nominato ''a cacchio'' e messo nel desk per comodità:


In parole povere, il mio script che non si chiama /home/$USER/backup genera errori perché?
La mia soluzione (poi come al solito fai come vuoi :P):
if [ $(sed -e '$!d' $0) = "#info=on" ]
ah ora ho capito cosa vuoi dire, si in effetti bisogna modificare le parti dove è espresso il file di script, quindi impostare sia la directory che il file correnti con $0.:ok:

Controlla anche questa parte, il nome del file prodotto dal comando gzip:
Codice:
/* Nel mio Riga 61 e 76 */
backupfile=$cartella"_backup"$count"-"$(date +%d-%m-%Y).tar.gz
(tar c --listed-incremental=$dest/$log f - $prov | pv -n -s $(du -sb $prov | awk '{print$1}') | gzip > $dest/$backupfile.tar.gz) 2>&1 | dialog --gauge "backup in esecuzione, attendere.." 7 70

EDIT: tar > gzip
che bischero, devo togliere .tar.gz ovvero: 'gzip > $dest/$backupfile'..:cav:
 
Vedi com'è la storia, da un paio di righe sei arrivato a scriverne +160. :P Come un certo Linus Torvalds pessimo in matematica e per giunta con la calcolatrice rotta. Nel tentativo di sistemarla buttò giù qualche riga di codice giusto per fare quattro conti e... non si fermò più. :asd:
E lo sappiamo poi com'è andata a finire. :P

Comunque se ti ricapita, consiglio di usare le funzioni perché sono semplici, ordinate e le richiami quando vuoi. Anche l' uso di un file .config (cosa che non ho ancora fatto). :P
 
Vedi com'è la storia, da un paio di righe sei arrivato a scriverne +160. Come un certo Linus Torvalds pessimo in matematica e per giunta con la calcolatrice rotta. Nel tentativo di sistemarla buttò giù qualche riga di codice giusto per fare quattro conti e... non si fermò più. :asd:
E lo sappiamo poi com'è andata a finire.

Comunque se ti ricapita, consiglio di usare le funzioni perché sono semplici, ordinate e le richiami quando vuoi. Anche l' uso di un file .config (cosa che non ho ancora fatto). :P
scrivete in C così partecipo anche io :cry:
 
@ « MoMy » invece del for ls *.tar.gz che ne pensi di:
Codice:
find -maxdepth 1 -name "$prov/*.tar.gz" -exec tar xzf "$1"{} \;
mi sembra più pulito (1 riga sola) e tra l'altro find legge anche i file nascosti.
devo leggermi anche il funzionamento delle funzioni, ma qui non credo mi servano perchè non devo ripetere delle operazioni.

@e_ale92 sto scrivendo in C(orsivo), va bene uguale?:P
 
Pubblicità
Pubblicità
Indietro
Top