Je suis encore un peu nouveau sur Linux, mais voici ce que j'essaie de faire.
Je dois copier tous les sous-répertoires et fichiers d’un répertoire à un autre tous les 5 minutes environ, les anciennes données étant automatiquement remplacées par les nouvelles données.
J'aimerais aussi que cela fonctionne au démarrage. Est-il possible que cela soit fait? Si oui, de quel programme aurais-je besoin pour planifier l'automatisation et de quelle ligne de commande aurais-je besoin?
linux
command-line
automation
Niphoet
la source
la source
Réponses:
Je ferais la copie avec
Cela va être plus efficace que d'utiliser
cp
, puisquersync
copie uniquement les fichiers qui ont été modifiés, et même alors uniquement les copies sur la modification elle-même, plutôt que le fichier entier.Si vous préférez qu'il ne supprime pas les fichiers dans
todir
qui ont été supprimés dansfromdir
, vous venez de laisser de côté le--delete
option.le
--archive
L'option lui dit en gros de préserver l'état des fichiers ainsi que leur contenu. Notez que si vous avez des liens symboliques dansdir1
, cela copiera le liens eux-mêmes, et ne pas les fichiers auxquels ils sont liés. Utiliser ce drapeau avecrsync
est similaire à l'utilisationcp -a
.Assurez-vous que vous utilisez la barre oblique de fermeture sur
fromdir/
: cela racontersync
copier le Contenu de ce répertoire, plutôt que le le répertoire lui-même . En d'autres termes, si vous omettre le final/
, vous allez vous retrouver avecplutôt que
la source
Vous devez mettre un script dans cron, comment faire ceci, lisez ceci: http://www.foogazi.com/2006/12/07/understand-cron-jobs-in-5-minutes/
Au lieu d'un script, vous pouvez taper une commande à exécuter dans votre crontab, qui ressemblerait à ceci:
Ajoutez également à / etc / crontab la ligne suivante pour l'exécuter au démarrage:
la source