无法使用crontab运行脚本

问题描述 投票:-1回答:1

我无法通过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
bash ubuntu cron
1个回答
1
投票

根据您发布的crontab,我猜您在两个脚本中使用的是同一用户?但是您的脚本不是首先以shabang开头,然后是它们必须是可执行的且可读的

如果无法执行或无法执行它们,请更改作业以使用正确的解释器运行脚本...

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

嗯,通过我纠正为> /dev/null 2>$1> /dev/null 2>&1(是错字?)解决了问题>


主题,更好地编写脚本:

#!/bin/sh
if [ $(pgrep -c apache2) -eq 0 ]
then
    /usr/sbin/service apache2 restart
fi
© www.soinside.com 2019 - 2024. All rights reserved.