У меня есть простой скрипт bash, который выполняет команду rsync
для синхронизации большого количества файлов (4 ТБ +) с удаленного сервера на мою локальную машину. Используя crontab -e
, я настроил расписание для этого сценария, чтобы он выполнялся в определенное время каждый день.
Запись в crontab выглядит так: 0 0 * * * bash /home/scripts/backup.sh
Так что я выполняю скрипт через bash. Три вопроса:
Есть ли в этом конвейере выполнения что-нибудь, что могло бы прерваться? Есть ли время ожидания RSYNC, BASH или CRON? Выполнение команды rsync может занять много часов.
Предотвращает ли CRON пересечение сценариев, т. Е. Когда сценарий еще выполняется, когда должно быть выполнено следующее расписание? Есть ли команда или опция для этого?
Есть ли журнал выполнения (от rsync, cron или bash), который позволяет мне проверять прогресс, диагностировать любые ошибки и т. Д .
Да, конечно, даже не видя скрипт, "'rsync командуют, чтобы синхронизировать большое количество файлов (4 TB +) с удаленного сервера на мою местную машину". может тайм-аут.
нет, нет никакого cron
особенность, чтобы управлять накладывающимся выполнением. Это оставляют до Вас. См. man flock
, man lockfile
, man dotlockfile
.
Ваш скрипт может зарегистрировать что-либо, что он хочет. Ваш скрипт STDOUT
послан по электронной почте к $USER
в местном масштабе. Если пользование электронной почтой потерпит неудачу, то файл, названный dead.letter
, будет создан. Я не вспоминаю, где, но после выполнения
sudo /etc/cron.daily/mlocate
простое locate dead.letter
должно найти его. (BTW, /etc/cron.daily/mlocate
использование flock
. Смотрите на него).
journalctl $(type -p cron)
покажет Вам системные журналы приблизительно cron
.
Теперь, слово об использовании AskUbuntu. Пожалуйста, читайте https://discourse.ubuntu.com/t/ask-ubuntu/21 и https://askubuntu.com/help/how-to-ask и только задайте единственный вопрос за один раз - он помогает более поздним искателям.