|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2000
Città: Grugliasco (TO)
Messaggi: 1589
|
script bash per backup
Premetto che in programmazione non sono ferratissimo, ma mi piace provare a cimentarmi nella modifica di qualche script/programma in cui mi imbatto per riuscire a fare quello che mi è necessario.
Sfogliando l'ultimo numero di Linux Magazine ho visto che c'era uno script bash per compiere un'operazione che al momento ho eseguito con programmi dedicati, cioè fare il backup di alcune cartelle sensibili su un NAS di rete. Ho letto attentamente la spiegazione del funzionamento dello script, e cambiato i campi di origine-destinazione, poi ho dato i permessi di esecuzione al file (chmod a+x) e quindi ho provato a lanciarlo. Come prima prova ho provato a replicare una cartella in un'altra su una partizione del disco. Stranamente non accade nulla, e l'output che ottengo è questo: ./backup.sh /home/ennio/ /media/linux/FEAR/home/ [7] questo invece è il listato dello script: Codice:
#!/bin/bash if [[ $# -lt 2 ]]; then echo "$0 /home/ennio/ /media/linux/FEAR/home/ [7]"; exit 1; fi local_machine=$(uname -n) backup_directory=$1 destination=$2 number_of_days=$3 if [[ ! ${number_of_days} ]] then number_of_days=-7 fi backup_file=${local_machine}_${number_of_days}days_$(date +%Y%m%d).tar.gz if [[ ${number_of_days} -ne 0 ]] then time_interval="-mtime ${number_of_days}" else time_interval="" fi find ${backup_directory} -type f ${time_interval} -print0 | xargs -0 tar cvzf ${backup_file} if [[ $(echo ${destination} | grep ":") ]] then copy="scp" else copy="cp" fi ${copy} ${backup_file} ${destination}
__________________
"Senza deviazione non è possibile il progresso e quindi chiunque devia dalla norma viene considerato pazzo" (Frank Zappa) http://www.relov.it |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
|
Ma che comando dai per avviare lo script?
Perchè dall'output che hai messo si nota che soddisfi la prima IF e quindi non hai dato tutti i parametri necessari allo script. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2000
Città: Grugliasco (TO)
Messaggi: 1589
|
il comando per far partire uno script non è il classico ./backup.sh ?
![]()
__________________
"Senza deviazione non è possibile il progresso e quindi chiunque devia dalla norma viene considerato pazzo" (Frank Zappa) http://www.relov.it |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
|
eh no, se usi le variabili di input $1 $2 etc... devi aggiungere anche gli altri parametri
nel tuo caso nello script vengono definite: backup_directory=$1 destination=$2 number_of_days=$3 quindi sarà qualcosa del tipo ./backup.sh $backup_directory $destination $number_of_days ad esempio, come suggerito dallo script stesso: ./backup.sh /home/ennio/ /media/linux/FEAR/home/ [7] |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2000
Città: Grugliasco (TO)
Messaggi: 1589
|
grazie mille!!! Era proprio così! non sapevo di dover dichiarare le variabili richiamando lo script, ero convinto che inserendo direttamente all'interno del file la sorgente e la destinazione avrebbe funzionato.
Ora è li che sta copiando, vediamo come va a finire. Grazie per la pazienza, alla fine era proprio una banalità, ma almeno ho imparato una cosa nuova ![]()
__________________
"Senza deviazione non è possibile il progresso e quindi chiunque devia dalla norma viene considerato pazzo" (Frank Zappa) http://www.relov.it |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:54.