2014-01-29 3 views
0

Доброе утро Все,Невозможно получить Crontab Чтобы запустить Bash скрипты

я в настоящее время возникли проблемы с запуском Баш скрипт в Crontab на моей системе CentOS 6.5. Я считаю, что у меня есть все разрешения, правильно установленные для сценариев bash, и скрипты настроены как исполняемые.

В принципе, я хотел бы запускать приведенные ниже сценарии 4 раза в день для каждого запуска модели (00Z, 06Z, 12Z, 18Z), и я думал, что у меня есть эта настройка правильно, но, по-видимому, нет.

Вот что я поставил в кронтаб (через «кронтаб -e»):

40 02 * * * /home/muaddib/grads/get_nomads/bash/nam4.sh 
30 08 * * * /home/muaddib/grads/get_nomads/bash/nam4.sh 
15 14 * * * /home/muaddib/grads/get_nomads/bash/nam4.sh 
20 20 * * * /home/muaddib/grads/get_nomads/bash/nam4.sh 

40 02 * * * /home/muaddib/grads/get_nomads/bash/nam12.sh 
30 08 * * * /home/muaddib/grads/get_nomads/bash/nam12.sh 
15 14 * * * /home/muaddib/grads/get_nomads/bash/nam12.sh 
20 20 * * * /home/muaddib/grads/get_nomads/bash/nam12.sh 

39 02 * * * /home/muaddib/grads/get_nomads/bash/gfs_sflux_t2m.sh 
30 08 * * * /home/muaddib/grads/get_nomads/bash/gfs_sflux_t2m.sh 
15 14 * * * /home/muaddib/grads/get_nomads/bash/gfs_sflux_t2m.sh 
48 22 * * * /home/muaddib/grads/get_nomads/bash/gfs_sflux_t2m.sh 

Я попытался запустить их прошлой ночью, но ничего не произошло ...

Любые мысли?

+0

crontab выполнен как пользователь, которому он принадлежит. Этот пользователь должен иметь соответствующие разрешения для просмотра и выполнения файлов. Вы делаете это как пользователь 'muaddib', правильно? И вы дважды проверили пути? Если запустить вручную, как пользователь crontab, то он работает? – Alfe

+0

Что вы подразумеваете под словом «ничего не случилось ...»? проверьте '/ var/log/cron', чтобы узнать, были ли заданы задачи. – ray

+0

Попробуйте добавить что-то простое и создать его там, например. * * * * */bin/date> /tmp/date.tmp. Затем сделайте небольшой скрипт в/home/muaddib/grads/get_nomads/date> /tmp/date.tmp –

ответ

0

1) Проверить почту после входа в систему в качестве MuadDib,

su - muaddib 
mail 

Это дает вам сообщение об ошибке от cronjob и вы должны выяснить, в чем причина.

2) Общая проблема в cronjob есть, вам необходимо предоставить полный путь для каждой команды в сценарий, или запустить скрипт в cronjob как:

20 20 * * * ~/.profile; bash /home/muaddib/grads/get_nomads/bash/nam4.sh 

Если сценарий написан под Баш

0

Могли ли вы запустить этот сценарий самостоятельно?

Существует вероятность того, что для вашего скрипта требуются специальные «переменные среды» для конкретных приложений. "LD_LIBRARY_PATH"

Кроме того, вы можете попробовать с помощью простого тестового скрипта, который будет эхо-текст в файле test.txt и включить его в crontab. Если он запустится, вы будете уверены, что crontab не будет проблемой.

Сообщите нам, если это сработает!

0

Я потратил около 2 часов, пытаясь понять это сам, возможно, это поможет кому-то другому.

Просто потому, что ваш скрипт - /home/user/scripts/script.sh, а в вашем crontab вы вызываете этот скрипт по абсолютному пути, не означает, что это путь, на котором работает скрипт. вывод моего сценария в/home/user, что имеет смысл в ретроспективе. Убедитесь, что сценарий, который вы вызываете, генерирует вывод, в котором вы также указываете полный путь к выводу внутри скрипта (или cd к правильному пути в верхней части скрипта).

Смежные вопросы