Mes Post-Its


rsync

Se placer sur le serveur qui contiendra les sauvegardes et se connecter a l'autre en ssh
Copie de gauche à droite:
si un fichier est modifé a gauche il est envoyé a droite.
si un fichier est supprimé a gauche il n'est pas envoyé a droite. (pour supprimer il faut ajouter --delete ou --delete-after)
ajouter --partial pour pouvoir reprendre un transfert qui a coupé
ajouter --progress pour afficher la progression du transfert
ou -P pour faire --partial et --progress d'un coup
-n pour faire des tests, car ça n'execute pas de transfert ni de delete
exemple :

rsync -az 'test_prod@test.fr:/home/sql/ecni_prod_*.sql' /home/test/save/

exclure
--exclude permet d'exclure un path ou un fichier
--delete-excluded permet de supprimer les fichiers qui trainerait si ils avaient déjà été transférés.

rsync -az --exclude file1.txt --exclude dir3/file4.txt test_prod@ecni.fr:/home/sql/ /home/test/save/ 

sauvegarde incrémentale
En lançant cette commande chaque jours :
Un dossier 'principal' sera tenu à jour et sera un mirroir parfait du serveur initial. (les fichiers sont mis a jour et supprimés si necessaire)
grace aux parametres : --backup et --backup-dir, Un dossier (par ex 2019-09-02) sera créé avec les fichiers supprimé ce jour. l'arborescence est conservée.

rsync -aqzP -e "ssh -p 22" --backup --backup-dir=/root/savedisk/2I/backup-date +\%d/home/ --delete --delete-excluded --exclude site/web/uploads/tmp --exclude gextra_prod/logs --exclude site/log --exclude .vscode-server-insiders --exclude app/logs --exclude app/cache root@gextra.net:/home/ /root/savedisk/2I/principal/home/

récupérer des données du jour actuel
copier simplement le dossier principal
récupérer les données dun jour précédent.
copier le dossier principal, puis copier les données depuis chaque dossier 'poubelle' du plus récent au ancien.
ps: Cet ordre est important car il permetra d'avoir la bonne version du fichier 'A' si cet enchainement action s'est produit :
On veut retrouver le fichier A (v1)
2019-09-02 create A (v1) => A (v1) est copié dans le dossier principal
2019-09-03 update A (v2) => A (v2) est à nouveau copié dans le dossier principal, A (v1) se trouve maintenant dans la corbeille '2019-09-03'
2019-09-04 delete A => A se trouve maintenant dans la corbeille '2019-09-04' et est supprimé du dossier 'principal'
2019-09-05 create A (v3) => A (v2) se trouve toujours dans la corbeille '2019-09-04' et A (v3) se trouve dans le dossier 'principal'
En copiant les dossiers
principal puis 5, puis 4, puis 3, puis 2 on retrouve bien le fichier A (v1)