cron的概念和crontab是不可分割的。 ? crontab是一个命令,常见于Unix和Linux的操作系统之中用于设置周期性被执行的指令。 ? 该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
...........................................................................................................................................................
# 检查是否安装crontab
crontab -l ? # 查看计划任务表,no crontab for root说明已安装
? # 若未安装
yum -y install vixie-cron crontabs
# 计划任务--》是一个程序的运行--》如何检查是否在正常运行 ? # 查看crond是否正常执行
systemctl status crond.service
ps aux | grep crond
? # 查看crond服务状态
systemctl status crond.service
...........................................................................................................................................................
# 存储位置 ls /var/spool/cron
1.创建计划
# 基于当前用户的 # 管理员可以使用 -u usermame, 去管理其他用户的计划任务 crontab -e Edit jobs for the current user.
2.查询计划
crontab -l List the jobs for the current users.
3.删除计划
crontab -r Remove all jobs for the current users.
例:
crontab -e # 进入计划编辑模式 ? * * * * * command .---------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 ? # 每小时第5分钟执行一次 * * * * * date >> /tmp/time.txt # 每隔10分钟执行一次 */10 * * * * /mysql_back.sh # 每月1 4 6日凌晨两点整执行,24小时计时 0 2 1,4,6 * * /mysql_back.sh # 每月5-9日凌晨两点执行 0 2 5-9 * * /mysql_back.sh # 每分钟执行一次 * * * * * /mysql_back.sh # 整点执行 0 * * * * /mysql_back.sh # 每天凌晨两点整执行 0 2 * * * /mysql_back.sh # 每月14日凌晨两点整执行 0 2 14 * * /mysqlback.sh # 每年2月14日凌晨两点整执行 0 2 14 2 * /mysql back.sh # 周五凌晨两点执行,不写日月,仅周生效 0 2 * * 5 /mysql_backsh # 周五凌晨两点执行,且每年6月2日凌晨两点也执行 0 2 2 6 5 /mysql_ back.sh ? # 或者可以写为 # 每天两点整 00 02 * * * ls # 每月1日两点整 00 02 1 * * ls # 2月14日两点整 00 02 14 2 * ls # 每周日两点整 00 02 * * 7 ls # 6月每周五两点整 00 02 * 6 5 ls # 14日及星期日两点整 00 02 14 * 7 ls # 每年2月14日及周日两点整 00 02 14 2 7 ls
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
crontab
命令的基本语法如下:
crontab [-u username] //省略用户表表示操作当前用户的crontab
参数说明:
-e
(编辑工作表)
-l
(列出工作表里的命令)
-r
(删除工作作)
例:
...........................................................................................................................................................
每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
...........................................................................................................................................................
每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
...........................................................................................................................................................
每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
...........................................................................................................................................................
每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
...........................................................................................................................................................
每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
...........................................................................................................................................................
每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
...........................................................................................................................................................
每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
...........................................................................................................................................................
每一小时重启smb
0 */1 * * * /etc/init.d/smb restart
...........................................................................................................................................................
晚上11点到早上7点之间,每隔一小时重启smb
0 23-7/1 * * * /etc/init.d/smb restart
...........................................................................................................................................................