martedì 7 novembre 2017

copia e sincronia file con rsync

Aggiornamento nov 2017
copia e sincronia di file con un determinato pattern
rsync -avr ---include "pattern" --include "*/" --exclude "*" <from-path> <to-path>

copia e sincronia file con find per file vecchi
find path -mtime +2000 >/tmp/rsyncfiles #cerca i file modificati o creati più di 2000 giorni fa e li scrive in un file
rsync -Ravh --files-from=/tmp/rsyncfiles . <destination-path> 
attenzione al punto è importante!
Aggiornamento dicembre 2016
http://www.tecmint.com/sync-new-changed-modified-files-rsync-linux/#

Aggiornamento Giugno 2016automatizzare rsync con Crono:
https://www.marksanborn.net/howto/use-rsync-for-daily-weekly-and-full-monthly-backups/


Aggiornamento maggio 2014:
rsync con samba:
si monta prima la periferica di rete samba con il comando
# mkdir /mnt/cifs
# mount.cifs //192.168.101.100/sales /mnt/cifs -o username=shareuser,nounix

attenzione che le opzioni scritte dopo la -o non vogliono spazi
e quindi il gioco è fatto perchè userai il comando rsync come per qualsiasi folder locale

settembre 2013
Se nasce l'esigenza di copiare tonnellate di file e magari fare in modo che le volte successive la copia sia sincronizzata, rsync è il comando più potente anche perchè permette di copiare o sincronizzare in locale ed in remoto tramite ssh
alcune dritte:

questi link danno qualche esmpio utile
http://www.cyberciti.biz/tips/linux-use-rsync-transfer-mirror-files-directories.html
http://www.thegeekstuff.com/2010/09/rsync-command-examples/

gli attribbuti che ho usato
-r per copiare anche le sottodir
--progress mi dice per ogni file quanto ci vuole
-v mi dice che file o dir sta copiando
-a per conservare tutti gli attributi
--delete cancella file nella destinazione che non appartengono al source
--remove-source-files cancella il file copiato dalla dir sorgente
se specifichi una dir di destinazione inesistente lui la crea

per collegarmi ad un computer remoto ho usato ad esempio
# rsync -arve "ssh -l ettore" --delete Dropbox/ 192.168.13.112:~/Dropbox/

# rsync --progress -avre 'ssh -l root' /var/lib/libvirt/images/ 192.168.13.51:/var/lib/libvirt/images/

chiaramente è necessario che lo user ssh abbia i permessi per scrivere

altri esempi utili:
http://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/