Linux计划任务

Linux计划任务

linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另 外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。

crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

计划任务分为一次性计划任务(at)和周期性计划任务(croutab)。

linux任务调度的工作主要分为以下两类:
*系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
*个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。

一、crond服务的启动

/sbin/service crond start   #启动服务
/sbin/service crond stop   #关闭服务
/sbin/service crond restart   #重启服务
/sbin/service crond reload   #重新载入配置

二、crontab命令选项

crond服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u     #设定某个用户的crond服务,一般root用户在执行这个命令的时候需要此参数
crontab -l     #列出某个用户crond服务的详细内容
crontab -r     #删除某个用户的crond服务
crontab -e     #编辑某个用户的crond服务
crontab -i     #在删除用户的crontab文件时给确认提示
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r

三、语法格式

 分     小时      日       月       星期      命令

0-59   0-23   1-31   1-12     0-6     command     (取值范围,0表示周日一般一行对应一个任务)

5       *       *       *      *    /bin/ls /home              #指定每小时的第5分钟执行一次ls命令

星号(*):代表所有可能的值。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在分钟字段,表示每十分钟执行一次。

四、实例

30     5       *       *      *     /bin/ls /home              指定每天的 5:30 执行/bin/ls /home命令

30     7       8       *      *      /bin/ls /home             #指定每月8号的7:30分执行/bin/ls /home命令

30     5       8       6      *      /bin/ls /home             #指定每年的6月8日5:30执行/bin/ls /home命令

30     6       *       *      0      /bin/ls /home             #指定每星期日的6:30执行/bin/ls /home命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

30     3   10,20     *      *      /bin/ls /home             #每月10号及20号的3:30执行/bin/ls /home命令[注:”,”用来连接多个不连续的时段]

25     8-11  *        *     *      /bin/ls /home             #每天8-11点的第25分钟执行/bin/ls /home命令[注:”-”用来连接连续的时段]

*/15   *      *        *     *      /bin/ls /home            #每15分钟执行一次/bin/ls /home命令 [即每个小时的第0 15 30 45 60分钟执行/bin/ls /home命令 ]

30     6    */10      *     *      /bin/ls /home            #每个月中,每隔10天6:30执行一次/bin/ls /home命令[即每月的1、11、21、31日是的6:30执行一次/bin/ls /home命令。 ]

50    7       *         *     *     root run-parts /etc/cron.daily   #每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]

五、新增计划任务的两种方法

1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

六、注意事项

在添加计划任务时,所执行的命令和脚本文件建议以绝对路径添加,否则可能会出现无法执行的情况。

七、其他

用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

使用者权限文件:
文件:
/etc/cron.deny
说明:
该文件中所列用户不允许使用crontab命令

文件:
/etc/cron.allow
说明:
该文件中所列用户允许使用crontab命令

文件:
/var/spool/cron/
说明:
所有用户crontab文件存放的目录,以用户名命名

猜你喜欢

转载自www.cnblogs.com/Mr-Ding/p/9427931.html