关于crond计划任务
1、循环执行的计划任务
linux下面有atd和crond两种计划任务,其中,atd服务使用的at命令只能执行一次,而crond服务使用的crontab定义的命令,是循环作用的,所以crond才符合我们的要求。
crontab支持两种状态:一、直接编写计划任务;二、使用目录的方式,放在目录里面的都会定时执行。
2、可以使用的用户
默认情况下,系统中可以登陆的用户,都可以使用crontab定义计划任务。不过,可以通过下面两个文件限制权限:
/etc/cron.allow:
将可以使用 crontab 的账号写入其中,若不在这个档案内的使用者则不能使用 crontab;
/etc/cron.deny:
将不可以使用 crontab 的账号写入其中,若未记录到这个档案当中的使用者,就可以使用 crontab。
类似TCPWrapper定义的方式。
linux系统怎么使用crond计划任务?
本教程使用系统:CentOS6
启动计划任务服务
service crond start
如果出现如下提示:
crond: unrecognized service
说明还没有安装计划任务,运行下面命令安装cron服务:
yum -y install vixie-cron
很多时候,你没有办法重新启动crond,这个时候可以先killall crond 然后再crond restart就哦ok了。
你也可以将这个服务在系统启动的时候也自动启动:
在/etc/rc.local这个脚本的末尾加上:
/sbin/service crond start chmod +x /etc/rc.local
或
chkconfig -level 35 crond on
添加cron计划任务
crontab -e */5 * * * * date >> /root/test.log
意思是每隔5分钟执行一次date输出时间到/root/test.log
如果系统崩溃或挂起,从最后所显示的时间就可以一眼看出系统是什么时间停止工作的。
列出cron计划列表
crontab -l
保存在/var/spool/cron/root 文件里
如果你想添加删除或编辑crontab文件中的条目,可以用vi来编辑crontab文件,使用crontab -e可以像使用vi编辑其他文件那样修改crontab文件并退出。
使用实例
1、每1分钟执行一次command
* * * * * command
2、每小时的第3和第15分钟执行
3,15 * * * * command
3、在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * command
4、每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
5、每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command
6、每晚的21:30重启smb命令
30 21 * * * /etc/init.d/smb restart
7、每月1、10、22日的4:45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
8、每周六、周日的1:10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
9、每天18:00至23:00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
10、每星期六的晚上11:00pm重启smb
0 23 * * 6 /etc/init.d/smb restart
11、每一小时重启smb
* */1 * * * /etc/init.d/smb restart
12、晚上11点到早上7点之间,每隔一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart
13、每月的4号与每周一到周三的11点重启smb
0 11 4 * mon-wed /etc/init.d/smb restart
14、一月一号的4点重启smb
0 4 1 jan * /etc/init.d/smb restart
15、每小时执行/etc/cron.hourly目录内的脚本
01 * * * * root run-parts /etc/cron.hourly
注意事项
删除crontab文件
$crontab -r
千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。
新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行。
当crontab失效时,可以尝试
/etc/init.d/crond restart
解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。
ubuntu下启动、停止与重启cron:
$sudo /etc/init.d/cron start $sudo /etc/init.d/cron stop $sudo /etc/init.d/cron restart
官方QQ群号码:922069959(空)、1093596563(空)