PDA

View Full Version : [BASH] script per backup


il pupo
18-09-2009, 00:44
Ciao a tutti, pensavo di realizzare un semplice script di backup, l'idea in testa c'è, ma non riesco a trovare guide su come realizzarlo e allora chiedo a voi

avevo in mente:

ls -l
tutti file che trova devono essere zippati e poi copiati in un'altra cartella



quello che non riesco a fare e prendere i nomi dei file che mi ritorna il comando ls -l

spero di essermi spiegato

altrimenti, mi date qualche script già fatto che tento di capirmelo da me?

grazie 1000

Caldwell83
18-09-2009, 11:49
Per trovarsi il nome dei file in una variabile si puo' fare cosi:

for file in `ls -1`
do
echo $file
done
Occhio però ai file con gli spazi

zuper
18-09-2009, 12:17
perchè ls -l??

nn ti basta ls?

una roba scritta a caso al volo

for file in `ls`
do
(comando che vuoi per comprimere) $file
mv $file (cartella che vuoi)
done

zuper
18-09-2009, 12:18
se per qualche motivo DEVI usare ls -l allora poi devi estrapolare il solo nome file

tipo

ls -l |awk '{print $9}'

marco.r
18-09-2009, 12:28
Non e' piu' semplice utilizzare direttamente tar o rsync che ti risparmi un po' di fatica ?

il pupo
18-09-2009, 13:26
ls o ls -l è uguale era solo per rendervi l'idea, comunque ho capito in pieno e appena ho tempo faccio lo script

per rsync, boh, non l'ho mai usato, dovrei vedere bene il funzionamento!


cmq GRAZIE a tutti

marco.r
18-09-2009, 14:55
io uso uno script simile al seguente per i backup su un altro disco:


#!/bin/sh

SOURCE=/shared/

DEST=/backup

EXCLUDE=notme/

NAME=$(date +%F-%T)

mkdir $DEST/$NAME

rsync -v -a --delete --link-dest=$DEST/latest --exclude=${EXCLUDE} $SOURCE $DEST/$NAME

rm $DEST/latest
ln -s $DEST/$NAME $DEST/latest

Questo crea una cartella /backup/<data> ogni volta che viene eseguito; i file non modificati vengono collegati con un hard-link per cui e' come un backup incrementale (senza gli inconvenienti).
Manca la parte della rimozione di quelli che non servono piu' ma non e' difficile da fare.