Pagina 1 di 1

[Risolto] Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 8:37
da marchesim
Ciao a tutti.
Sto cercando di far funzionare uno script in bash che esegue una compressione tramite tar.
Non trovo indicazioni su come si utilizzano le variabiali nel comando tar, se potete indicarmi qualche link o darmi qualche indicazione vi sarei grato.

In particolare dovrei far funzionare un semplice comando del genere

Codice: Seleziona tutto

tar -zcvf ${desttar}/${timestamp}_${ftp}.tar.gz ${dest}
dove ad esempio ho inserito le variabili:
desttar = indirizzo cartella di destinazione del file tar
timestamp = inserisce la data nel nome del file tar ( timestamp=$( date +%d-%m-%Y_%H-%M ))
dest = indirizzo della cartella da comprimere

Provando lo script mi genera un file tar nel posto giusto ma vuoto, mentre se inserisco i corrispondenti indirizzi al posto delle variabili funziona tutto per cui credo che sia un problema delle variabili e del loro utilizzo nel comando tar.

L'errore che mi risulta quando faccio partire lo script è questo:

Codice: Seleziona tutto

tar: Rimozione di "/" iniziale dai nomi dei membri
tar: /home/xxxx/xxxxxx/xxxxxxx/xxxxxxxxxxxxxxx.xxx: funzione "stat" non riuscita: File o directory non esistente
tar: Uscita con stato di fallimento in base agli errori precedenti
L'indirizzo ovviamente è però giusto.

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 9:55
da Zoff
Magari mancano le virgolette:

Codice: Seleziona tutto

tar -zcvf "${desttar}/${timestamp}_${ftp}.tar.gz" "${dest}"

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 10:04
da marchesim
provato ma mi restituisce lo stesso errore

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 10:19
da Zoff
desttar esiste?

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 10:24
da marchesim
si, infatti in quella posizione mi ritrovo il file tar.gz ma se lo decomprimo è vuoto (45byte, dovrebbero essere circa 6Mb)

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 10:28
da Zoff
Rimuovi il - dalle opzioni

Codice: Seleziona tutto

tar zcvf "${desttar}/${timestamp}_${ftp}.tar.gz" "${dest}"

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 10:38
da marchesim
rimosso il - dalle opzioni del comando tar ma stesso errore :cry:

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 10:39
da Zoff
L'unica cosa rimasta è che tu riesca a replicare l'errore con file che non devi censurare.
Così si possono fare piu' analisi.

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 10:51
da marchesim

Codice: Seleziona tutto

#!/bin/sh"
dest=/home/simome/Scaricati/download_siti_web/archivio"	#---CARTELLA DI DESTINAZIONE
desttar="/home/simone/MEGA/sitiweb"	#---CARTELLA DOVE SALVARE IL FILE COMPRESSO DEL SITO
timestamp=$( date +%d-%m-%Y_%H-%M )	#---DATA E ORA
tar zcvf "${desttar}/${timestamp}_archivio.tar.gz" "${dest}"	#---COMPRESSIONE
questo è semplificato ma da lo stesso errore, ho tolto solo la variabile ftp praticamente per motivi di privacy, il resto sono cartelle del mio notebook.

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 10:52
da Zoff
Quali sono i permessi di /home/simome/Scaricati/download_siti_web/ftp.simonemarchetti.altervista.org e dei file contenuti?
Su quale file viene generatore l'errore?

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 10:59
da marchesim
i permessi di quella cartella sono lettura e scrittura (777), gli ho appena dato un sudo chmod -R 777 per sicurezza ma sempre stesso errore
come lo vedo su quale file viene generato l'errore?

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 11:02
da Zoff
è quello a fianco all'errore.

Non è che la cartella ftp è un mount fatto con curlftpfs o simili?
Se è un problema di permessi prova a dare il comando con sudo, se funziona vediamo di sistemarlo.

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 11:12
da marchesim
Ti spiego. io scarico tramite wget un mio sito ftp e lo memorizzo nella cartella indicata in "dest". Non monto la cartella ftp.
Dovrei comprimere quella cartella con tar o qualcos'altro ma non ci riesco in nessun modo con lo script. In manuale tramite terminale invece me lo comprime perfettamente. Ho messo le variabili perchè ho altri 15 siti che volevo salvare in questo modo e soprattutto per automatizzare il tutto tramite cron senza creare decine di voci. Se poi mi cambia qualche dato mi basterebbe modificare la variabile....

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 11:17
da Zoff
Prova a mettere questo comando nello script, immediatamente prima del comando tar:

Codice: Seleziona tutto

[ -d "$dest" ] && echo "esiste" || echo "NON esiste"
Cosa ti stampa?

Re: Script bash con comando tar e variabili

Inviato: lunedì 25 maggio 2015, 11:22
da marchesim
ho trovato l'errore.... c'era una m al posto di una n....
ora funziona
Infinitamente grazie !