Невозможно запустить скрипт, используя crontab - PullRequest
0 голосов
/ 04 апреля 2020

Я не могу запустить этот простой скрипт через crontab, скрипт отлично работает там, где я его запускаю напрямую. У меня есть аналогичный скрипт для MySQL, и он был скопирован с него, только что изменил MySQL на apache2. Но оригинальный работает, но не этот. Прямой запуск работает нормально.

UP=$(pgrep apache2 | wc -l);
if [ "$UP" -eq 0 ];
then
    sudo /usr/sbin/service apache2 restart
fi

crontab:

*/2 * * * * /var/server-scripts/mysqlStatus.sh > /dev/null 2>&1 // Works Perfect
*/2 * * * * /var/server-scripts/apacheStatus.sh > /dev/null 2>$1 // Doesn't work, script runs perfect directly

1 Ответ

1 голос
/ 04 апреля 2020

Согласно опубликованному вами crontab, я полагаю, вы используете одного и того же пользователя для обоих сценариев? Но ваш сценарий не начинается сначала с шабанга, и они должны быть исполняемыми и читаемыми секунда.

Если вы не можете или не можете сделать их исполняемыми, измените ваши задания на запустите ваш скрипт с правильным интерпретатором ...

*/2 * * * * sh /var/server-scripts/apacheStatus.sh > /dev/null 2>&1

Ну, проблема была решена путем удаления > /dev/null 2>$1 (это опечатка?), который я исправляю на > /dev/null 2>&1


Топи c, лучше написать скрипт:

#!/bin/sh
if [ $(pgrep -c apache2) -eq 0 ]
then
    /usr/sbin/service apache2 restart
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...