官方文档:
(1).crond是一个daemon类程序,路径为/usr/sbin/crond。默认会以后台方式启动,service或systemd方式启动crond默认也是后台方式的。
(2).crondtab是管理crontab file的工具,而crontab file是定义定时任务条目的文件。
(3).crontab file存在于多处,包括系统定时任务文件/etc/crontab和/etc/cron.d/*,还有独属于各用户的任务文件/var/spool/cron/USERNAME
yum install vixie-cron #安装
yum install crontabs
安装vixie-cron包时显示没有这个包,两个办法:
yum update
//或者
yum search vixie-cron
#找到匹配项后再安装提示的文件(我这里是cronie.x86_64)
yum install cronie.x86_64
[root@xuexi ~]# systemctl start crond.service
[root@xuexi ~]# service crond start
[root@xuexi ~]# crond
使用如上的三个命令都可以打开,但是实际上系统可能会返回:
[root@jdyjy ~]# service crond start
Redirecting to /bin/systemctl start crond.service
指定你要用
/bin/systemctl start crond.service
那你就用这个好了
你也可以无视忽略这个提示。因为不影响。
/bin/systemctl stop crond.service //停止
/bin/systemctl start crond.service //启动
/bin/systemctl restart crond.service //重启
/bin/systemctl status crond.service //查看目前crond运行状态
由于任务表存在于多处,不同的教程用的不同的任务文件,所以不要重复编辑,只要一个就好了。
crond -e:编辑定时任务文件,实际上编辑的是/var/spool/cron/*文件
#或者
nano /etc/crontab #编辑配置文件,在最后一行添加内容
使用你喜欢的编辑器vi,vim都可以。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/local/php/bin:/usr/loc$
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# */1 * * * * root /usr/glaucoma/hello.sh >> /usr/glaucoma/sh.txt
*/1 * * * * root /usr/local/bin/php /usr/glau/Dyns.php
#* * * * * root /bin/echo "the first cron entry" >>/usr/hellotestcrond.txt
crontab 格式:
基本格式 :
分钟 小时 日 月 星期 命令
* * * * * command
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
记住几个特殊符号的含义:
“”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
时间是5个号组成,不过小的时间符会掩盖大的时间符。
关于具体时间设置可以查看以下:
https://www.php.cn/linux-369884.html
https://www.cnblogs.com/perfei/p/5520373.html
指令一定要写到它的指令路径。我们通常会直接php一个脚本,但是这里的指令和执行的文件两者都要写绝对路径。
/usr/local/bin/php /usr/glau/Dyns.php
你也可以先调试,调试的方法在官方文档中会有。
教程很多写的总有疏漏,所以建议先看官方文档。