Linux下周期性任务一般由cron
这个守护进程来处理。cron
在系统引导时启动,只要系统在工作,它就会保持运行。
cron
的配置文件称为crontab
,是为cron table
的缩写。cron
在三个地方查找crontab
文件:/var/spool/cron
,/etc/cron.d
, /etc/crontab
.
每个用户自己的crontab
放在/var/spool/cron
下,每个用户最多有一个crontab
文件,以所属用户的登录名来命令。
系统管理员及其他软件需要的crontab
文件则放在/etc/crontab
和/etc/cron.d
下。一般而言,/etc/crontab
供系统管理员手工维护,/etc/cron.d
目录提供了一个地方让软件包将需要的crontab项安装在这里。
crontab
任务查看日志:/var/log/cron
但通过日志只能查看cron
任务是否被调用,若要看更详细的任务运行信息,可以通过在命令后缀附加> output.txt 2>&1
将命令输出到output.txt文件中:
1 表示stdout标准输出,系统默认值是1,所以"> output.txt"等同于"1> output.txt"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
注意:不要假定cron知道所需要的特殊环境,它其实并不知道。所以你要保证在shelll脚本中提供所有必要的路径和环境变量,一般可以通过source ~/.bashrc
等实现。