定时任务调度‼️‼️
crond 玩法较多,可以设置自动校准时间,自定开启服务等
A 命令:
代码语言:javascript复制#语法
crontab [选项]
-e #编辑crontab定时任务
-l #查询crontab任务,列出当前所有任务调度
-f #删除当前用户所有的crontab任务
crontab -r #终止任务调度
service crond restart #重启任务调度
systemctl status|restart|stop crond.service
#实例==============================================================
#第一个:每隔1分钟,将当前的日期信息,追加到/tmp/mydate 文件中-----------
#1.先编写一个文件,mytask1.sh
date >> /tmp/mydate
#2.给mytask1.sh一个可以执行权限
chmod 744 mytask1.sh
#3.调度
crontab -e
#4.任务
*/1**** /home/mytask1.sh
#5.出现mydate文件,查看是写入时间
more mydate
#第二个:每隔1分钟,将当前日期和日历都追加到/home/mycal文件中-----------
date >> /home/mycal
cal >> /home/mycal
#第三个:每天凌晨2:00将mysql数据库testdb,备份到文件mydb.bak中----------------
vim /home/mytask3.sh
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
chmod 744 /home/mytask3.sh
crontab -e
02*** /home/mytask3.sh
B 概念:
B1 任务调度
- 系统在某个时间执行的特定的命令或程序。
B2 分类
- 系统工作(重要必须周而复始执行的工作,如病毒扫描等)
- 个别用户工作(个别用户可能执行某些程序,比如数据库备份等)
B3 步骤
- 编写脚本
- 设置crontab
B4 符号说明
5个占位符:
项目 | 含义 | 范围 |
---|---|---|
第一个* | 一小时中的第几分钟 | 0-59 |
第二个* | 一天中的第几小时 | 0-23 |
第三个* | 一月中的第几天 | 1-31 |
第四个* | 一年中第几月 | 1-12 |
第五个* | 一周中星期几 | 0-7(0和7都表示星期日) |
特殊符号:
特殊符号 | 含义 |
---|---|
* | 任何时间。比如第一个"*"就代表一个小时中每分钟都执行一次。 |
, | 不连续的时间。比如"0 8,12,16 * * * 命令",表示在每天的8点0分、12点0分、16点0分都执行一次命令。 |
- | 连续时间范围。比如"0 5 * * 1-6 命令",代表在周一到周六的凌晨5点0分执行命令。 |
*/n | 每隔多久执行一次。比如"*/10 * * * * 命令",表示每隔10分钟就执行一次命令。 |
特定时间:
时间 | 含义 |
---|---|
45 22 * * * 命令 | 在22点45分执行命令 |
0 17 * * 1 命令 | 每周1的17点0分执行命令 |
0 5 1,15 * * 命令 | 每月1号和15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 | 每周一到周五的凌晨4点40分执行命令 |
*/10 4 * * * 命令 | 每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 | 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 |