#bash #ubuntu #cron
#bash #ubuntu #cron
Вопрос:
У меня есть сервер LAMP Digital Ocean Ubuntu (18.04).
На нем у меня есть простой скрипт bash для создания резервной копии каталога и дампа SQL-файла сайта и tar.gz из всех файлов.
Запись в Crontab
# Backup files and database at midnight every night
0 0 * * * . /var/www/mysite.com/daily-backup.sh
На этом сервере запущен только один демон cron.
es@rental-link-production:/var/backups/rentallink$ ps aux | grep cron
es 606 0.0 0.0 14856 1100 pts/0 S 10:32 0:00 grep --color=auto cron
root 959 0.0 0.0 31852 3160 ? Ss Mar25 0:02 /usr/sbin/cron -f
Тем не менее, всю ночь он, должно быть, выполнялся почти каждую минуту до 12:20 утра. На этом сервере нет других скриптов cron.
es@mysite-production:/var/backups/mysite$ ls -lah
total 52K
drwxr-xr-x 13 es es 4.0K Apr 9 12:20 .
drwxr-xr-x 3 root root 4.0K Apr 10 06:25 ..
drwxrwxr-x 4 es es 4.0K Apr 9 12:02 2019-04-09-1202
drwxrwxr-x 4 es es 4.0K Apr 9 12:03 2019-04-09-1203
drwxrwxr-x 4 es es 4.0K Apr 9 12:07 2019-04-09-1207
drwxrwxr-x 4 es es 4.0K Apr 9 12:08 2019-04-09-1208
drwxrwxr-x 4 es es 4.0K Apr 9 12:11 2019-04-09-1211
drwxrwxr-x 4 es es 4.0K Apr 9 12:13 2019-04-09-1213
drwxrwxr-x 4 es es 4.0K Apr 9 12:14 2019-04-09-1214
drwxrwxr-x 4 es es 4.0K Apr 9 12:15 2019-04-09-1215
drwxrwxr-x 4 es es 4.0K Apr 9 12:16 2019-04-09-1216
drwxrwxr-x 4 es es 4.0K Apr 9 12:18 2019-04-09-1218
drwxrwxr-x 4 es es 4.0K Apr 9 12:20 2019-04-09-1220
Как ни странно, на промежуточном сервере, который имеет идентичную настройку, он запускался дважды, а не только один раз в полночь, что все равно на один раз больше, чем я ожидал.
es@mysite-staging:/var/backups/mysite$ ls -lah
total 16K
drwxr-xr-x 4 es es 4.0K Apr 9 12:20 .
drwxr-xr-x 3 root root 4.0K Apr 10 06:25 ..
drwxrwxr-x 4 es es 4.0K Apr 9 12:01 2019-04-09-1201
drwxrwxr-x 4 es es 4.0K Apr 9 12:20 2019-04-09-1220
Я почти ожидал увидеть это, если задание не удалось, и Linux попытался перезапустить его… но это пара mkdir, вызов mysqldump и вызов tar. За последние 24 часа процессор не превысил 10%. Не похоже, что у него закончились ресурсы.
Есть идеи?
Комментарии:
1. Вы проверили /var/log/cron ? Также проверьте /var/log/messages на предмет подсказок о том, что могло произойти.
Ответ №1:
проверьте эти случаи: 1- вызывают ли его другие пользователи? 2- вызывает ли он сам себя? 3- устанавливает ли он условия движения для повторения?
для теста добавьте whoami
в конце имени.
для другого теста ps -A
проверьте, запускается ли crond более одного раза.