Rsync/ftp
rsync et ftp est le plus souvent une sauvegarde d'un compte ftp via rsync.
Dans cet exemple une racine FTP et ses sous-dossiers sont montés en local dans un dossier temporaire. Puis le tout est synchronisé vers un dossier cible final (notre sauvegarde).
On va tout d'abord monter le ftp distant grâce à curlftpfs puis faire un rsync de cette arborescence vers notre lieu de sauvegarde.
Creer un dossier pour y monter la racine du ftp :
$ sudo mkdir -p /mnt/ftpperso
Il vous faudra curlftpfs.
$ sudo apt-get install curlftpfs
Montage du ftp distant :
$ sudo curlftpfs -o allow_other ftp://root:god@ftpperso.free.fr /mnt/ftpperso
- -o allow_other : permet aux autres utilisateurs de monter ce ftp. Par défaut c'est (et seulement) l'utilisateur qui le monte qui y a accès (même pas le root).
| Image logo indiquant une information importante | Attention : les fichiers et dossiers distants sont *montés* en local, un rm -rf /mnt/ftpperso effacera aussi le contenu à distance, je l'ai déjà fait comme une grosse buse :( |
Créer un endroit où stocker ton ftp en local :
$ mkdir -p ~/ftpperso/wikileaks-cables
On sauvegarde via rsync :
$ rsync -rzvvv --inplace --append --progress --stats --timeout=7200 /mnt/ftpperso/ ~/ftpperso/wikileaks-cables sending incremental file list [sender] make_file(.,*,0) [sender] make_file(.htaccess,*,2) ...
- --inplace : met-à-jour sans faire de copie temporaire
- --append : ajoute les données à la fin du fichier, le début doit donc être le même de chaque coté. Si la taille de la destination est supérieure ou égale le fichier n'est pas transféré.
Démonter le site distant(sans tournevis ni clé-à-molette, ok->[]) :
$ sudo umount ftpperso
Si toute cette procédure est à refaire souvent ajoutez dans /etc/fstab une entrée :
curlftpfs#root:god@ftpperso.free.fr /mnt/ftpperso/ fuse allow_other,rw,user,noauto 0 0
1337 5y54dm33N
En une seule ligne de commande (wooohooo!!!) :
$ mkdir ~/pentagon-mountpoint && curlftpfs ftp://root:god@pentagon.gov ~/pentagon-mountpoint && rsync -av ~/pentagon-mountpoint ~/fr3sh && umount ~/pentagon-mountpoint
