RHEL8:配置crontab

来自CloudWiki
跳转至: 导航搜索

crond简介

crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
配上一张很好理解的图片
20180103142311808.png
在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如day字段如果是星号,则表示在满足其它字段的制约条件后每天都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

crontab服务的操作

安装crontab:yum install crontabs

服务操作说明:

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

查看crontab服务状态:service crond status

手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:chkconfig –level 35 crond on

使用者权限文件

文件:/etc/cron.deny
说明:该文件中所列用户不允许使用crontab命令
文件:/etc/cron.allow
说明:该文件中所列用户允许使用crontab命令
文件:/var/spool/cron/
说明:所有用户crontab文件存放的目录,以用户名命名

案例

进入crontab编辑页面:crontab -e 回车

    30 21 * * * /etc/init.d/nginx restart
    每晚的21:30重启nginx。
          45 4 1,10,22 * * /etc/init.d/nginx restart
    每月1、10、22日的4 : 45重启nginx。
          10 1 * * 6,0 /etc/init.d/nginx restart
    每周六、周日的1 : 10重启nginx。
          0,30 18-23 * * * /etc/init.d/nginx restart
    每天18 : 00至23 : 00之间每隔30分钟重启nginx。
          0 23 * * 6 /etc/init.d/nginx restart
    每星期六晚上的23 : 00 pm重启nginx。

    * */1 * * * /etc/init.d/nginx restart
    每一小时重启nginx
    * 23-7/1 * * * /etc/init.d/nginx restart
    晚上11点到早上7点之间,每 隔一小时重启nginx

    0 11 4 * mon-wed /etc/init.d/nginx restart
    每月的4号与每周一到周三 的11点重启nginx

    0 4 1 jan * /etc/init.d/nginx restart
    一月一号的4点重启nginx

    */30 * * * * /usr/sbin/ntpdate 210.72.145.20
    每30分钟(半小时)同步一下时间