linux crontab配置定时任务

568 阅读4分钟

这是我参与11月更文挑战的第27天,活动详情查看:2021最后一次更文挑战

今天这篇日志记录下linux  crontab  配置定时任务。

实现linux定时任务有:cron、anacron、at等,我这里主要使用cron服务。

 

crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

 

查看是否安装了cron

rpm -qa|grep vixie-cron

这个电脑貌似是默认安装的,我的系统是默认安装的。

 

查看是否安装了crontabs软件包:

rpm -qa|grep crontabs

安装软件命令(这个我没尝试过,有需要可以试下)

yum install vixie-cron
yum install crontabs

 

查看crontab服务状态:

service crond status

 

启动crontab服务:

service crond start

 

停止crontab服务:

service crond stop

 

重启crontab服务:

service crond restart

 

重新载入配置

service crond reload

 

设定某个用户的cron服务

crontab -u

 

列出某个用户cron服务的详细内容

crontab -l

 

删除用户的cron服务

crontab -r

编辑某个用户的cron服务

crontab -e

 

/*******************   这是主要部分 start ********************

确定服务器安装了 crontab 之后

假设当前用户是root,要建立root用户的定时任务

crontab -e

选择编辑器,编辑定时任务(这里假设是编辑器是vi)

按i进入编辑模式

0 1 * * * /usr/local/etc/rc.d/lighttpd restart  #每天1点重启apache

THINKPHP5 访问语句

30 22 * * *  /usr/bin/php /var/www/html/xxxxx/public/index.php 模块名/控制器名/方法名  # 每天22点30执行

按esc退出编辑模式进入普通模式,输入:x或:wq保存退出\

这样定时任务就配置完成了。

这里是重点:

linux的vi命令用不明白没有关系。存放定时任务命令的文件在

/var/spool/cron

路径下,每个用户对应一个文件,所以,不愿意使用vi命令,可以去这个目录下,找到对应文件,将命令粘贴进去就好了。

然后可以使用下边这个命令查看当前用户所配置的所有定时任务(这个跟服务器的配置相关,就不截图了)

crontab -l

使用下边命令删除用户的cron服务 

crontab -r

/*******************   这是主要部分 end  *********************

crontab 格式

基本格式 :

* *  *  *  *  command

    分 时 日 月 周  命令

**第1列表示分钟1~59 每分钟用或者 /1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

**
**


在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如/10,如果用在minute字段,表示每十分钟执行一次。*

crontab文件的一些例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每月1、10、22日的4 : 45重启apache。

 

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每周六、周日的1 : 10重启apache。

 

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

 

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每星期六的11 : 00 pm重启apache。

 

* */1 * * * /usr/local/etc/rc.d/lighttpd restart

每一小时重启apache

 

23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

晚上11点到早上7点之间,每隔一小时重启apache

 

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

每月的4号与每周一到周三的11点重启apache

 

*/30 * * * * /usr/sbin/ntpdate 210.72.145.44

每半小时同步一下时间

 

上边只是一些从网上找到的实例,具体执行还是要参照自己的服务器情况。

 

有好的建议,请在下方输入评论

欢迎访问个人博客 guanchao.site

欢迎访问小程序:

在这里插入图片描述