rsync copier uniquement les nouveaux fichiers, pas de mises à jour?

10

Je voudrais utiliser rsync pour copier des fichiers depuis un serveur distant. J'aimerais

  • ne copiez que les fichiers du serveur, n'en repoussez aucun.
  • copier des fichiers qui n'existent pas. Si le fichier distant est plus récent, je ne veux pas le copier
  • avoir automatique. Cela m'invite à saisir mon mot de passe à chaque fois et j'aimerais qu'il soit exécuté par cron. Alors, comment puis-je l'exécuter dans un script bash exécuté par cron?
isaaclw
la source
Pour "le rendre automatique", l' --password-fileoption fournirait le mot de passe à l'invite du serveur. Le fichier doit simplement contenir la phrase secrète en texte clair et ne pas permettre aux autres utilisateurs d'avoir un accès en lecture.
altmas5

Réponses:

5

Points 1 et 2: La meilleure façon de spécifier quoi copier est de lire la page de manuel rsync . Dans votre cas, regardez en particulier le drapeau existant --ignore.

Point 3: ce didacticiel devrait vous permettre d'utiliser ssh sans mot de passe avec rsync. Résumé: configurez ssh sans mot de passe et utilisez «-e ssh» pour dire à rsync d'utiliser ssh au lieu de rsh pour se connecter à l'hôte distant.

pjz
la source
J'ai regardé l'homme et je ne peux pas comprendre ce qui me permettra de copier de nouveaux fichiers uniquement et non de les mettre à jour.
1

Pour la deuxième partie, puisque pjz a répondu au reste, je pense que vous pouvez utiliser le commutateur --ignore-existant pour obtenir uniquement de nouveaux fichiers.

Sur http://www.samba.org/ftp/rsync/rsync.html :

Cela indique à rsync d'ignorer les fichiers de mise à jour qui existent déjà sur la destination (cela n'ignore pas les répertoires existants, sinon rien ne serait fait). Voir aussi --existing. Cette option est une règle de transfert, pas une exclusion, donc elle n'affecte pas les données qui vont dans les listes de fichiers, et donc elle n'affecte pas les suppressions. Il limite simplement les fichiers que le récepteur demande à transférer.

Cette option peut être utile pour ceux qui effectuent des sauvegardes à l'aide de l'option --link-dest lorsqu'ils ont besoin de continuer une exécution de sauvegarde qui a été interrompue. Étant donné qu'une exécution --link-dest est copiée dans une nouvelle hiérarchie de répertoires (lorsqu'elle est utilisée correctement), l'utilisation de --ignore existing garantira que les fichiers déjà traités ne seront pas modifiés (ce qui évite une modification des autorisations sur le fichiers liés en dur). Cela signifie que cette option ne regarde que les fichiers existants dans la hiérarchie de destination elle-même.

runlevelsix
la source