Назад | Перейти на главную страницу

Cron не работает скрипт

У меня есть скрипт, который работает при вызове:

/usr/local/bin/myscript #this works fine

Разрешения для файла:

-rwxr-xr-x 1 root root 155 Jan 27 09:34 myscript

Я добавил строку в / etc / crontab:

* * * * * root /usr/local/bin/myscript

Но похоже, что cron не может это запустить.

В crontab установлена ​​переменная PATH:

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

Скрипт представляет собой mysqldump в каталог / var / tmp /:

#!/bin/bash

DAY=`date +%y%m%d`
TIME=`date +%k%M`
mysqldump test -u john -pxxxxxxx > /var/tmp/$DAY.$TIME.test.sql

Не могу понять, что в этом не так, но скрипт не работает.

Изменить: / var / log / syslog показывает следующие записи:

Jan 27 10:20:01 hector CRON[8286]: (root) CMD (/bin/bash /usr/local/bin/myscript)
Jan 27 10:20:01 hector CRON[8285]: (CRON) info (No MTA installed, discarding output)

Итак, я предполагаю, что он пытается запустить скрипт, но где-то он, должно быть, дает сбой, потому что я не получаю такой же результат, как если бы я запускал его с /usr/local/bin/myscript.

Я предполагаю (с отсутствующей информацией об отладке), что это ограниченная проблема среды / пути, которую вы, кажется, частично пытались решить.

Обновить /usr/local/bin/myscript чтобы включить использование полных путей, например:

#!/bin/bash

DAY=`/bin/date +%y%m%d`
TIME=`/bin/date +%k%M`
/usr/bin/mysqldump -u john -pxxxxxxx test > /var/tmp/$DAY.$TIME.test.sql

(Я ожидаю date полный путь избыточен, mysqldump это ключевой вид:whereis mysqldump в вашей системе)