Ежедневная работа cron не выполняется

Краткий обзор: у меня есть скрипт, который будет ежедневно делать резервные копии моего хранилища исходного кода из SVN в tarball на этот день. Я проверил сценарий, и он работает очень хорошо, пока я запускаю его как sudo, из-за владения выходным каталогом.

Итак, проблема в том, что я хочу запускать это ежедневно, поэтому я поместил ссылку на него в каталог /etc/cron.daily. Вот содержимое каталога.

thom@spenser:/etc/cron.daily$ ls -l
total 60
-rwxr-xr-x 1 root root   189 2011-09-14 02:21 apport
-rwxr-xr-x 1 root root 15535 2011-10-06 11:30 apt
-rwxr-xr-x 1 root root   314 2011-08-08 16:57 aptitude
lrwxrwxrwx 1 root root    24 2012-02-28 11:05 backup -> /usr/local/bin/backup.sh
-rwxr-xr-x 1 root root   502 2011-06-08 11:48 bsdmainutils
-rwxr-xr-x 1 root root   256 2011-10-06 04:04 dpkg
-rwxr-xr-x 1 root root   372 2011-10-04 16:50 logrotate
-rwxr-xr-x 1 root root  1353 2011-07-27 07:17 man-db
-rwxr-xr-x 1 root root   606 2011-08-17 09:16 mlocate
-rwxr-xr-x 1 root root   249 2011-06-24 05:36 passwd
-rwxr-xr-x 1 root root  2417 2011-07-01 17:25 popularity-contest
-rwxr-xr-x 1 root root   383 2011-09-30 15:09 samba
-rwxr-xr-x 1 root root  3594 2011-09-19 20:07 standard
thom@spenser:/etc/cron.daily$ 

Проблема в том, что он просто никогда не работает. Вот разрешения для этого сценария:

thom@spenser:/etc/cron.daily$ ls -l /usr/local/bin/backup.sh 
-rwxr-xr-x 1 root root 260 2012-02-28 11:03 /usr/local/bin/backup.sh

Идеи?

10
задан 12 March 2012 в 14:23

3 ответа

Grep ваш системный журнал для сообщений, таких как:

crond: (*system*) BAD FILE MODE

файлы должны быть ограничены (достаточно) на 644):

chmod 0644 /etc/cron.d/my_crontab
0
ответ дан 12 March 2012 в 14:23

Попробовал

run-parts --test /etc/cron.daily

Обнаружил, что мой файл update.ubuntu не появился. Также заметил, что мой файл имеет расширение (в нем есть точка).

Шаги, чтобы это исправить.

  1. Переименовал мой update.ubuntu в update-ubuntu
  2. Теперь снова run-parts --test /etc/cron.daily, на этот раз мой файл появился!
  3. [ 114]
0
ответ дан 12 March 2012 в 14:23

Это может быть одна из нескольких вещей:

Путь к корням:

В зависимости от выполняемых команд вам может потребоваться расширить переменную PATH корневого пользователя, поставив следующую строку вверху их файла crontab:

PATH = / usr / sbin: / usr / bin: / sbin: / bin

src: https: // help.ubuntu.com/community/CronHowto

Или просто используйте полные пути к каждой команде в вашем скрипте: /bin/ls вместо ls, например. (which ls в командной строке для путей).

Существует странная ошибка с точками в имени файла, о которой здесь сообщается . Может распространиться на файл, на который вы ссылаетесь, хотя это кажется маловероятным.

Сохраняете ли вы вывод из файла резервной копии? Поместите что-то вроде этого в первую строку, чтобы определить, запущен ли он вообще или работает, но в какой-то момент вышел из строя.

/bin/echo "Attempting to run backup" >> /path-to-home/backup.log

В качестве альтернативы попробуйте добавить скрипт непосредственно в файл crontab:

sudo -i
crontab -e
[add the next line to the file, then save and exit]
33 15 * * * /usr/local/bin/backup.sh

будет работать в 15:30 каждый день, если машина включена. используйте * * * * * во время тестирования, чтобы запускаться раз в минуту до тех пор, пока он не заработает.

0
ответ дан 12 March 2012 в 14:23

Другие вопросы по тегам:

Похожие вопросы: