centos 8利用crontab设置定时任务
一、安装
1、查看是否安装 crontab:rpm -qa | grep crontab
2、如果未安装,分别执行:
yum -y install vixie-cron yum -y install crontabs
简单说明:
vixie-cron 是 cron 的主程序;
crontabs 是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
二、启动和配置服务
service crond start //启动 service crond stop //关闭 service crond restart //重启 service crond reload //重新载入配置 service crond staus //查看状态
也可以设置为开机启动
systemctl enable crond
查看运行日志
tail -f /var/log/cron
查看 crontab -l
添加 crontab -e
三、crontab的基本定义
语法:
* * * * * command
说明:
(1)字段之间使用空格隔开
(2)字段的含义:在5个*当中,每一个*代表不同的含义,分别为分钟、小时、日、月、星期。分钟取1-59,如每
10分钟表示为*/10,小时取0-23,如每两个小时为*/2,日的范围为1-31,月的范围为1-12,星期的范围为0-6
(3)command表示需要执行的命令
星号(*):代表’‘每’'的意思,例如month字段如果是星号,则表示每月都执行该命令。
逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。
中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
四、查看crontab文件
crontab -l
五、创建一个crontab文件
crontab -e
注意/var/spool/cron是用户任务,/etc/crontab是系统任务
think 定时任务 每分钟跑一次
*/1 * * * * php /home/www/tp6/think zhang
hink 定时任务 每秒跑一次
* * * * * /usr/wwwshell/ygkj/zhang.sh
zhang.sh文件内容,zhang.sh得777
#!/bin/bash step=2 for((i=0;i<60;i=(i+step)));do php /home/www/tp6/think zhang sleep $step done exit 0
可能有一个坑shell脚本 解决“/bin/bash^M: bad interpreter: No such file or directory”
定时任务添加完后 得查看日志是否运行成功
tail -f /var/log/cron
有问题就及时百度
//如果目录已经存在指定的文件(文件名为当前用户名),crontab -e则会编辑文件,否则将会以当前用户名创建文件。
六、举几个例子
* * * * * command //每分钟执行一次 */5 * * * * command //每五分钟执行一次 3,5 * * * * command //1小时中的第3分钟和第5分钟执行 0 17 * * * command //每天中的17:00执行一次 3 2-12/2 * * * command //每天的2:03,4:03,6:03,8:03,10:03,12:03各执行一次 0 * * * * /etc/init.d/smb restart //每小时执行一次/etc/init.d/smb重启 00 */1 * * * /home/test.py >> /home/test.log //每月每天每小时整点执行test.py脚本,并把原来输出到控制台的东西都输出到test.log文件中