Я все еще довольно плохо знаком с Linux, но здесь - то, что я пытаюсь сделать.
Я должен скопировать все подкаталоги и файлы от одного каталога до другого когда-либо приблизительно 5 минут со старыми данными, автоматически перезаписываемыми с новыми данными.
Я также хотел бы, чтобы это работало при запуске. Есть ли какой-либо способ, которым это может быть сделано? Если так, какая программа была бы, я должен запланировать автоматизацию и что является командной строкой, в которой я нуждался бы.
Я сделал бы фактическую копию с
rsync --archive --delete "fromdir/" "todir/"
Это будет более эффективным, чем использование cp
, с тех пор rsync
только файлы копий, которые изменились и даже затем только копируют по самому изменению, а не всему файлу.
Если Вы предпочитаете, чтобы это не удалило файлы в todir
это было удалено в fromdir
, Вы просто не учитываете --delete
опция.
--archive
опция в основном говорит этому сохранять состояние файлов, а также их содержания. Обратите внимание на это, если у Вас есть какие-либо символьные ссылки в dir1
, это скопирует сами ссылки а не файлы, с которыми они связываются. Используя этот флаг с rsync
подобно использованию cp -a
.
Удостоверьтесь, что Вы используете заключительную наклонную черту на fromdir/
: это говорит rsync
скопировать содержание того каталога, а не самого каталога. Другими словами, если Вы не учитываете финал /
, Вы закончите с
todir/
todir/stuff
todir/fromdir/
todir/fromdir/morestuff
вместо
todir/
todir/morestuff
Необходимо поместить сценарий в крон, как сделать это, читайте здесь: http://www.foogazi.com/2006/12/07/understand-cron-jobs-in-5-minutes/
Вместо сценария Вы могли ввести команду для выполнения в crontab, это будет похоже:
*/5 * * * * cp -r /fromdir /todir
также добавьте к/etc/crontab следующую строку к exexute это при начальной загрузке:
@reboot root cp -r /fromdir /todir