在Linux中,周期执行的任务一般由cron这个守护进程来处理[ps -ef | grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行以及调用时间。
cron的配置文件成为"crontab",是"cron table"的简写。
一 cron服务
crontab是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。
注意:ubuntu系统是 cron,Red Hat 和 Centos系统是 crond
service crond start 启动服务
service crond stop 关闭服务
service crond restart 重启服务
service crond reload 重新载入配置
service crond status 查看服务状态
二 cron在三个地方查找配置文件
1 /var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom创建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。
三 /etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab
四 /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本
五 权限
crontab的权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在
1 如果两个文件都不存在,则只有root用户才能使用crontab命令。
2 如果cron.allow存在但是cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令。
3 如果cron.allow不存在,cron.deny存在,则只有列在cron.deny文件里的用户不能使用crontab命令。
4 如果两个文件都存在,则在cron.allow中但不在cron.deny中的用户可以使用crontab。如果连个文件中都有同一个用户,则以cron.allow中是否有该用户为准,若cron.allow有,则可以使用crontab命令。
六 查询、添加、修改定时任务
crontab -l 查看当前的定时任务列表
crontab -e编辑定时任务配置,可以选择编辑器(有的linux系统会列举出几个,输入数字,选择vi编辑器即可),添加完保存。
七 举例
*/30 * * * * /home/roma/test/hello.sh >> /home/roma/test/output.log 每30分钟
* */2 * * * /home/roma/test/hello.sh >> /home/roma/test/output.log 每2小时
每30分钟执行一次hello.sh 脚本文件,并将结果输出到日志文件output.log中。
* * * * * /home/roma/.....
minute hour day-of-month month-of-year day-of-week commands