2013-08-24 4 views
-3

Hey je cherche un script Shell pour transférer des archives compressées du serveur a vers le serveur b. Seules les archives compressées qui n'ont pas été transférées doivent être transférées du serveur a vers le serveur b.script shell pour comparer des fichiers entre deux serveurs

Veuillez ne pas dire scp ou rsync car il copiera tous les fichiers du serveur a vers le serveur b. Je veux le script qui compare l'existence du fichier dans le serveur b. Si le fichier n'existe pas dans le serveur b, il doit transférer ce fichier du serveur a vers le serveur b.

+0

voulez-vous exécuter ce script sur le serveur d'un serveur ou b ? –

+3

Quel est le problème avec rsync? –

+0

Peut-être que vous devriez lire un peu à propos de rsync. Je ne suis pas un expert, mais un rapide coup d'œil à ['man rsync'] (http://linux.die.net/man/1/rsync) suggère que' rsync -e' va ignorer les fichiers qui existent déjà sur le récepteur machine ... Pourriez-vous s'il vous plaît expliquer pourquoi cela ne fonctionnera pas pour vous? – jahroy

Répondre

1

Comme Oli souligne - c'est exactement ce que rsync fait .... Mais si vous voulez aller la thentake façon manuelle à ma réponse ici rsync to backup one file generated in dynamic folders

Ce que vous pouvez aussi le faire pour la comparaison est d'abord ssh à l'hôte d'une en exécutant la commande et le stockage de sa sortie localement

ssh localhost "find /var/tmp/ -name \* -exec du -sm {} \;" > /tmp/out.txt 

head /tmp/out.txt 
531 /var/tmp/ 
0 /var/tmp/aaa 
1 /var/tmp/debian 

vous avez maintenant un fichier localement avec les noms de fichiers à distance, les tailles se sentent libres d'étendre selon les besoins

Questions connexes