简单-运行带有cronjob的Shell脚本

时间:2018-06-20 03:20:47

标签: linux shell linux-kernel cron

一个简单的问题:

我希望Cron作业每分钟运行一次脚本。该脚本(script.sh)会生成目录中所有文件的.zip文件。 我已经将该脚本写在一个名为script.sh的文件中:

if [ -z "$(ls -A /var/www/html/convo_files)" ]; then
   exit
else
   zip -rj zipped.zip /var/www/html/convo_files/*
fi

Successfully creates .zip file when I run it with command ./script.sh

我的crontab脚本是:

*/1 * * * * /var/www/html/convo_files/script.sh
在邮件中提供消息(看起来正确):

updating: crap.txt (deflated 89%)
updating: script.sh (deflated 36%)

Cronjob文件与script.sh btw位于同一目录中,但没有使用cronjob创建.zip文件。真的不确定如何解决这个难题。

2 个答案:

答案 0 :(得分:0)

您是否尝试过以下cron工作?

*/1 * * * * /path/to/your/script.sh

这应该每分钟执行一次脚本。

如果执行脚本时遇到问题,请确保已设置“可执行标志”(chmod + x /path/to/your/script.sh)

如果仍然有错误,则应查看系统日志。在大多数Linux系统上,文件/var/log/syslog是当前文件,但这在系统之间可能会有所不同。

答案 1 :(得分:0)

crontab文件中的命令需要更改:

* * * * * cd /var/www/html/convo_files && /var/www/html/convo_files/script.sh

工作目录设置不正确(https://unix.stackexchange.com/questions/38951/what-is-the-working-directory-when-cron-executes-a-job

对于像我这样的初学者,请务必查看您的邮件目录/日志文件以查看错误! 注意,进入您的邮件目录:

cd /var/spool/mail
tail root

感谢所有回答和帮助过的人!