GNU/Linux >> Tutoriels Linux >  >> Linux

Comment programmer une commande Rsync ?

Bonne journée !

Je travaille depuis le Chili. Le truc, c'est que la connexion ici est super lente et que des tâches comme faire en sorte que chaque station mette à jour ses packages directement sur Internet, ce n'est tout simplement pas possible. J'ai donc un référentiel local que j'aimerais mettre à jour via rsync uniquement la nuit.

Je n'ai pas de problème avec rsync, je sais comment l'utiliser. Là où je suis un peu nouveau, c'est dans des domaines comme les cronjobs et autres choses similaires.

Pour faire court, ce dont j'ai besoin, c'est de mettre à jour mon référentiel tous les soirs. Disons qu'il commence tous les jours à 19h00 et s'arrête à 7h00.

Comment puis-je faire cela ?

Merci d'avance.

Cordialement.

PD :J'utilise Ubuntu 16.04.

Réponse acceptée :

Il existe deux façons d'utiliser cron, en créant un fichier dans /etc/cron.d/repo-sync au format :

<minute> <hour> <day_of_month> <month> <day_of_week> <user> <command>

Par exemple, pour exécuter rsync de src à dest à 19h00 tous les jours, vous pouvez utiliser :

0 19 * * * root rsync -a src dest

Ou vous pouvez créer un crontab en exécutant crontab -e (en tant qu'utilisateur sous lequel vous souhaitez exécuter la commande) avec une ligne comme ci-dessus moins l'utilisateur tel que :

0 19 * * * rsync -a src dest

Personnellement, je préfère créer des fichiers cron.d pour les tâches système/racine, mais les deux approches auront un résultat identique.

Maintenant, cela exécutera la commande une fois à l'heure indiquée - elle s'arrêtera une fois que la commande aura fini de s'exécuter, il n'est donc pas vraiment nécessaire de spécifier une commande pour l'arrêter à 7h00, car rsync devrait avoir été terminé d'ici là. Si vous devez vraiment arrêter la commande à 7h00, vous pouvez émettre une autre tâche cron qui tue simplement les processus existants à l'heure indiquée.

0 7 * * * root killall rsync

Malheureusement, cela tuera toutes les commandes rsync - ce qui pourrait avoir des effets secondaires si vous essayez d'exécuter rsync en même temps, donc je ne conseille pas cette méthode.

Vous pouvez aller plus loin en mettant la commande rsync dans un script qui écrit son pid dans un fichier, et utiliser ce pid dans la commande kill pour atténuer cela, mais cela pourrait être plus compliqué que vous n'en avez vraiment besoin.

Vous pouvez en savoir plus sur la configuration des tâches cron ici ou ici.

Connexe :Comment vérifier l'intégralité du disque dur pour détecter les erreurs et les secteurs défectueux ?
Linux
  1. Comment utiliser la commande Linux Rsync (synchronisation à distance)

  2. Comment renommer des fichiers sous Linux

  3. Comment utiliser la commande Rsync sous Linux ?

  4. Comment planifier des travaux avec la commande 'at' sous Linux

  5. Comment utiliser la commande 'cp' pour exclure un répertoire spécifique ?

Comment utiliser la commande Disown sous Linux

Comment utiliser la commande Linux SS

Comment supprimer un répertoire sous Linux

Comment utiliser la commande Linux nohup

Comment utiliser la commande PS

Comment utiliser la commande TOP