crontab任务没有执行

kanbe_kotori 2014-11-02 02:19:00
正确来说是任务执行了,脚本文件没有执行。我先用一个task.sh脚本测试,里面就是touch /home/wwwlogs/t创建一个文件,而且测试也成功了,然后另一个脚本却不行。

access_log_root="/home/wwwlogs/access"
for dir in `ls $access_log_root`
do
access_log_path=${access_log_root}/${dir}/access.log
if [ -d $dir ] && [ -e $access_log_path ]; then
mv $access_log_path ${access_log_root}/${dir}/access-`date "+%Y-%m-%d"`.log
fi
done
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

这是做日志切割的脚本,我手动执行是可以的,但放到crontab里就不行了,不知道是不是脚本有什么问题。

crontab -e
59 23 * * * sh /home/wwwlogs/access/log-split-task.sh
...全文
261 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kanbe_kotori 2014-11-07
  • 打赏
  • 举报
回复
引用 6 楼 micropentium6 的回复:
[quote=引用 4 楼 kanbe_kotori 的回复:] [quote=引用 3 楼 micropentium6 的回复:] add the following at the top of your crontab file (crontab -e) SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
not work[/quote] this is the cron job for the same user that you tested on the console?[/quote] I found the problem, this "[ -d $dir ]" condition is not work on cron job but execute by myself is ok.
ljc007 2014-11-05
  • 打赏
  • 举报
回复
chmod +x /home/wwwlogs/access/log-split-task.sh crontab -e 59 23 * * * /home/wwwlogs/access/log-split-task.sh > /var/tmp/log-split-task.log 2>&1 把 /var/tmp/log-split-task.log 的内容发出来看看
  • 打赏
  • 举报
回复
引用 4 楼 kanbe_kotori 的回复:
[quote=引用 3 楼 micropentium6 的回复:] add the following at the top of your crontab file (crontab -e) SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
not work[/quote] this is the cron job for the same user that you tested on the console?
sonny45 2014-11-04
  • 打赏
  • 举报
回复
脚本中加入日志,将日志写到一个文件中看看。 现在脚本是每天晚上23:59执行, 测试的时候调整一下改为2分或5分钟执行。 然后看日志文件输出 话说脚本第一句不是要写: #!/bin/bash 么。 如果系统默认是bash 调用的时候不建议使用sh去执行。 还有就是用# sh log-split-task.sh 测试一下你的脚本运行是否正常
kanbe_kotori 2014-11-04
  • 打赏
  • 举报
回复
引用 3 楼 micropentium6 的回复:
add the following at the top of your crontab file (crontab -e) SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
not work
  • 打赏
  • 举报
回复
add the following at the top of your crontab file (crontab -e) SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
kanbe_kotori 2014-11-02
  • 打赏
  • 举报
回复
引用 1 楼 wenmingma 的回复:
加入环境变量试试
脚本里没有用到环境变量呀,而且也试过在脚本之前加过. /etc/profile了
wenmingma 2014-11-02
  • 打赏
  • 举报
回复
加入环境变量试试

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧