|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Arnaud Développeur .NET Inscription : avril 2006 Messages : 1 343 ![]() |
Bonjour,
voilà, je fais une sauvegarde d'un serveur A vers un serveur B, les utilisateurs travaillant avec le serveur A. Je cherche à faire en sorte de lister les fichiers présents sur le serveur de backup B, et absent du A (ce qui signifie qu'un menage a été fait sur le A par un utilisateur), et donc le cas échéant les supprimer du serveur B (afin d'eviter d'encombrer B avec de vieux fichiers) : Suppression distante de fichiers inexistants localement La routine DOIT être executée depuis le serveur A. Perso j'ai un peu de mal à voir comment tourner ca. En espérant avoir été clair, je vous remercie par avance de votre aide. |
|
|
00
|
|
|
#2 |
![]() Inscription : mars 2004 Messages : 1 298 ![]() |
c'est tout a fait l'usage de la commande "rsync" .... man rsync
tres puissant et conçu exactement pour cette usage. |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Arnaud Développeur .NET Inscription : avril 2006 Messages : 1 343 ![]() |
j'ai essayé de faire :
Code :
rsync -rtvu --delete /sauvegarde/samba/partage1/*samba.txt* /mnt/sda4 avant la premiere execution - J'ai executé la commande, le fichier a été backupé. - J'ai supprimé le fichier. - J'ai relancé la commande, et le fichier distant test2samba.txt na pas été supprimé. J'ai loupé un truc ?! |
|
|
00
|
|
|
#4 |
![]() Inscription : mars 2004 Messages : 1 298 ![]() |
relie bien la man :
http://man.developpez.com/man1/rsync.1.php il y est specifié que l'option --delete ne doit pas avoir de metacaractere (*) ! |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Arnaud Développeur .NET Inscription : avril 2006 Messages : 1 343 ![]() |
Oki, j'ai bien pris note. J'ai testé en rajoutant l'option n et et j'ai bien fait, sinon il virait un dossier système du deuxieme serveur.
Donc, commeent spécifier d'ignorer un dossier sur le serveur et B et absent du A (car par défaut il cherchera à supprimer). J'ai matté du coté des --exclude et --filter, mais de ce que j'ai compris ca travaille sur une liste de fichiers de la source, sans prendre en compte la destination, ce qui ne resout pas mon souci. |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Arnaud Développeur .NET Inscription : avril 2006 Messages : 1 343 ![]() |
Bonjour,
j'ai essayé de rajouter --exclude='-r os_private/*' pour qu'il ignore le contenu du dossier os_private sur le serveur destination, et donc qu'il ne l'efface pas, mais ca ne marche pas. Si quelqu'un peut m'expliquer ce qui ne colle pas, je lui en serait gré |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Arnaud Développeur .NET Inscription : avril 2006 Messages : 1 343 ![]() |
Finalement je tourne le probleme autrement, je copie sur A les fichiers qui ne doivent pas disparaitre de B, avec verouillage sur ces fichiers, comme ca tranquille.
Néanmoins je rencontre encore un souci, lors des tests, rsync annonce qu'il veut tout virer avant de tout recopier. S'il compte faire ca pour chaque backup ca va pas le faire, le temps de lister, supprimer, puis recopier, j'ai peur que cela ne se fasse pas en une nuit. Pourquoi m'annonce t-il ca ? Parce que le backup précédent a été fait avec cp ? pourtant durant mes premiers tests, il ne prenait en compte que les fichiers à modifier, en ignorant les autres.... ma commande actuelle : Code :
rsync -rtvn --delete /sauvegarde/samba/ /mnt/sda4/ > rsync.txt |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com