Linux定时任务调度

2021-04-14 10:04:58 浏览数 (1)

定时任务调度‼️‼️

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分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。

0 人点赞