View Full Version : Mi spiegate perchè il comando tar...........
stefanoxjx
31-10-2008, 11:26
Ciao a tutti, qualcuno riesce a spiegarmi perchè il seguente comando:
tar cvvzf /mnt/hdusb/backup-`date +"%d-%m-%y"`.tar.gz /home /etc /var/www /var/mail /var/log /var/lib /dati/ --exclude=/dati/commmon --exclude=/dati/laboratorio --exclude=/dati/p2p-files
Se lanciato da riga di comando esclude (--exclude) correttamente le directory indicate mentre se messo in uno script ignora completamente le direttive --exlcude?
Lo stesso script sul server Debian ha sempre funzionato, da quando sono passato ad Ubuntu TLS ho questo problema che non riesco a spiegarmi.
Grazie.
Ciao.
tra:
... /dati/ --exclude= ....
ci sono piu' spazi ?
stefanoxjx
31-10-2008, 13:17
tra:
... /dati/ --exclude= ....
ci sono piu' spazi ?
Si, ora che mi hai fatto notare, ci sono 2 spazi!!!
Credi che possa dipendere da quello?
Ubuntu da un po' di tempo usa dash invece di bash come shell predefinita, o emglio /bin/sh è un symlink a dash, potrebbe dipendere da quello, prova a cambiare il link su /bin/bash per l'utente che usa lo script!
stefanoxjx
31-10-2008, 13:28
Ubuntu da un po' di tempo usa dash invece di bash come shell predefinita, o emglio /bin/sh è un symlink a dash, potrebbe dipendere da quello, prova a cambiare il link su /bin/bash per l'utente che usa lo script!
Per il momento ho provveduto ad eliminare lo spazio in più.
Domani appena mi arriva la mail con il log del backup, verifico se ha eseguito correttamente, altrimenti proverò a fare come mi hai detto.
Grazie.
Ciao.
medicina
31-10-2008, 15:40
Non dovrebbero esserci prima le opzioni e dopo i file? Cioè così:
tar -cvzf /mnt/hdusb/backup-`date +"%d-%m-%y"`.tar.gz --exclude=/dati/commmon --exclude=/dati/laboratorio --exclude=/dati/p2p-files /home /etc /var/www /var/mail /var/log /var/lib /dati/
stefanoxjx
02-11-2008, 12:55
Ho tolto gli spazi però continua a backuppare quello che non dovrebbe.
Ora provo a mettere prima le direttive exclude e poi il resto.
Speriamo bene :)
darkbasic
02-11-2008, 13:38
Ubuntu usa dash? E per quale motivo?
stefanoxjx
02-11-2008, 14:18
Ubuntu usa dash? E per quale motivo?
Perchè lava più bianco :rotfl:
stefanoxjx
02-11-2008, 14:29
Effettivamente, ubuntu tls parte con bash, però c'è un link simbolico di sh a dash, quindi ho sostituito nell'intestazione dello script di backup la riga:
#!/bin/sh
con
#!/bin/bash
Credo che se il problema è il dash che non lava troppo bene, in questo modo dovrei aver risolto :)
stefanoxjx
03-11-2008, 08:52
Ultimi aggiornamenti:
dopo aver sostituito l'intestazione dello script con #!/bin/bash ed aver modificato la riga del comando in questo modo:
ar cvvzf /mnt/hdusb/backup-`date +"%d-%m-%y"`.tar.gz --exclude=/dati/commmon --exclude=/dati/laboratorio --exclude=/dati/p2p-files /home /etc /var/www /var/mail /var/log /var/
lib /dati/
continua a backuppare anche quello che non serve.
Però insisto nel dire che lo stesso comando facendo un copia incolla e lanciandolo direttamente da riga di comando funziona perfettamente.
Non riesco a capirne il motivo!!!
darkbasic
03-11-2008, 09:45
Se la shell è la stessa l'unica altra differenza che mi viene in mente può essere qualche variabile d'ambiente oppure il path da cui viene lanciato il comando: prova ad anteporre un cd dir_in_cui_lanci_il_comando_da_terminale
stefanoxjx
03-11-2008, 11:38
Se la shell è la stessa l'unica altra differenza che mi viene in mente può essere qualche variabile d'ambiente oppure il path da cui viene lanciato il comando: prova ad anteporre un cd dir_in_cui_lanci_il_comando_da_terminale
Quando ho provato il comando lanciandolo a mano ero sulla home dell'utente.
Piuttosto, ho provato ad aggiungere nello script un /bin/tar ................
anche se di comandi tar, facendo una ricerca ne trovo solo uno!!!
gurutech
03-11-2008, 12:28
Effettivamente, ubuntu tls parte con bash, però c'è un link simbolico di sh a dash, quindi ho sostituito nell'intestazione dello script di backup la riga:
#!/bin/sh
con
#!/bin/bash
Credo che se il problema è il dash che non lava troppo bene, in questo modo dovrei aver risolto :)
se un comando funziona in interattivo e non scriptato, ti consiglio modificare l'inizio dello script con
#!/bin/bash -l
(l di livorno)
in questo modo carichi l'ambiente come se avessi fatto login
stefanoxjx
03-11-2008, 12:42
se un comando funziona in interattivo e non scriptato, ti consiglio modificare l'inizio dello script con
#!/bin/bash -l
(l di livorno)
in questo modo carichi l'ambiente come se avessi fatto login
Ti ringrazio.
Aspetto il backup di questa notte per vedere se con il suffisso /bin/tar..... funziona, altrimenti provo anche la tua soluzione.
Quello che non riesco a spiegarmi è il motivo per cui debbano succedere queste cose :confused:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.