肯定有很多人与我一样,遇到过在本地调用脚本,能够正常执行,但写入crontab定时任务后,就会出现一部分执行,一部分不执行的问题。或者是同样的脚本,同样的定时任务,但在有些服务器上可以执行,有些却不行。
经查阅相关资料发现,crontab总是不会缺省的从用户profile文件中读取环境变量,也就是说,要么是环境变量的问题,要么就是路径的问题。解决办法如下:
1、所用命令使用绝对路径;
2、调用的脚本开头部分添加如下内容,以便读到用户的环境变量参数,解决环境变量的问题; 例:#!/bin/bash
. /etc/profile
. ~/.bash_profile
3、也可以添加如下如何,方便查看脚本执行情况;
例:* * * * * echo|/tmp/test.sh >>/tmp/test/txt
4、可以通过tail -f /var/log/cron,查看任务是否执行。
时间: 2024-10-29 19:10:23