[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: rsync e link simbolici



> E` possibile far si` che rsync lasci i link simbolici se puntano a
> file o directory nel ramo che sta copiando, ma li trasformi in file e
> directory se sono esterni?

Spero di no. Fossi io il manutentore di rsync rifiuterei una patch
in tal senso. Se un file e` importante e voglio farne il backup,
lo conservo nel posto importante, e al limite il link simbolico lo
faccio da fuori. O tutti o nessuno, il resto e` arbitrario e` poco
affidabile.

Per il resto sono d'accordo ad usare rsync per il backup. Saro`
vecchio, ma i tanti strumenti troppo complessi e "faccio tutto io " mi
spaventano. Troppi programmi scompaiono in pochi anni: se devo
affidarci il mio lavoro, prendo uno strumento semplice e solido che
promette di durare nel tempo.

In particolare, rsync con i link fisici e` comodissimo. Ogni
giorno copio /home, ma se un file e` uguale al precedente backup
viene fatto un link fisico, Questo il mio disco di backup attuale:

    home/         home-211210/  home-220730/  home-230105/  home-230125/
    home-150201/  home-220110/  home-220810/  home-230106/  home-230126/
    home-160210/  home-220120/  home-220820/  home-230107/  home-230127/
    home-170210/  home-220130/  home-220830/  home-230108/  home-230128/
    home-180210/  home-220210/  home-220910/  home-230109/  home-230129/
    home-190210/  home-220220/  home-220920/  home-230110/  home-230130/
    home-200210/  home-220310/  home-220930/  home-230111/  home-230131/
    home-201010/  home-220320/  home-221010/  home-230112/  home-230201/
    home-201110/  home-220330/  home-221020/  home-230113/  home-230202/
    home-201210/  home-220410/  home-221030/  home-230114/  home-230203/
    home-210110/  home-220420/  home-221110/  home-230115/  home-230204/
    home-210210/  home-220430/  home-221120/  home-230116/  home-230205/
    home-210310/  home-220510/  home-221130/  home-230117/  home-230206/
    home-210410/  home-220520/  home-221210/  home-230118/  home-230207/
    home-210510/  home-220530/  home-221220/  home-230119/  home-230208/
    home-210710/  home-220610/  home-221230/  home-230120/  home-230209/
    home-210810/  home-220620/  home-230101/  home-230121/  home-230210/
    home-210910/  home-220630/  home-230102/  home-230122/  home-230211/
    home-211010/  home-220710/  home-230103/  home-230123/  home-230212/
    home-211110/  home-220720/  home-230104/  home-230124/  home-yesterday/

E questo file, per esempio, non cambia da tempo, ha 72 link fisici:

   arcana% ls -l home/rubini/.inputrc 
   -rw-rw-r-- 72 rubini staff 134 Apr  3  2022 home/rubini/.inputrc

Alla fine ogni copia oltre la prima costa molto poco in spazio su disco,
poi dipende da come si usa il disco.

   arcana% du -s home home-yesterday
   48315512   home
    4689680   home-yesterday

Lo script, in cron, usa "--link-dest":

   days2=$(/root/yesterday -2)
   mv $D/home-yesterday $D/home-$days2
   mv $D/home $D/home-yesterday
   rsync -av --link-dest=$D/home-yesterday /home/ $D/home

Dove "yesterday -2" ritorna la data di due giorni fa. L'ho fatto
il millennio scorso ed e` in C, oggi lo farei in /bin/sh tipo:

   delta=2 # o da commandline
   deltasec=$(expr $delta \* 24 \* 60 \* 60)
   date +%y%m%d --date=@$(expr $(date +%s) - $deltasec)  

Poi vanno cancellate le /home-* vecchie, ma anche questo si automatizza
facilmente: se quella di 30 giorni fa non finisce per zero cancellala,
se quella di 300 giorni fa non finisce per "10" cancellala, cose
cosi`.

Non mi aspetto che altri seguano il mio metodo, ma spero le informazioni
associate siano utili a qualcuno.


Reply to: