18. Linux定时任务调度 - crond

1. 任务调度:是指系统在某个时间执行的特定的命令或程序

2. 任务调度分类:

1. 系统工作:有些重要的工作必须周而复始的执行,比如病毒扫描

2. 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份

3. crontab [选项]

-e (edit)编辑crontab定时任务

-l (list)查询crontab任务

-r (remove)删除当前用户所有的crontab任务

例如,每分钟想执行一次 ls -l /etc > /tmp/to.txt

执行 crontab -e 进入crontab编辑页面

在crontab编辑页面中,写,

*/1 * * * * ls -l /etc > /tmp/to.txt (前面是这样写的,*/1[空格]*[空格]*[空格]*[空格]*[空格])

其中5个星号*占位符,

1. 第一个*表示一小时中的第几分钟,范围0-59

2. 第二个*表示一天当中第几小时,范围0-23

3. 第三个*表示一个月中的第几天,范围1-31

4. 第四个*表示一年当中的第几个月,范围1-12

5. 第五个*表示一周中的星期几,范围0-7,0和7都代表星期日

例子中的*/1表示每分钟。

特殊符号说明,

1. *:代表任何时间,比如第一个*就代表一小时中每分钟都执行一次。

2. ,(逗号):代表不连续的时间,比如 0 8,12,16*** 就代表在每天的8点0分、12点0分、16点0分都执行一次

3. -:代表连续的时间范围,比如0 5** 1-6 就代表在周一到周六的凌晨5点0分执行命令

4. */n:代表每隔多久执行一次,比如 */10 * * * * 就代表每隔10分钟就执行一次命令。

特定时间执行任务案例

45 22 * * * 表示在22点45分执行

0 17 * * 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号,每个周一的0点0分都会执行命令(星期几和几号最好不要同时出现,因为他们的定义都是天,容易让管理员混淆)

4. crond应用案例

4.1 每隔一分钟,就将当前日期追加到/tmp/mydate文件中

*/1 * * * * date >> /tmp/mydate

4.2 每隔一分钟,将当前日期和日历都追加到/home/mycal文件中

提前写好shell脚本/home/my.sh,运行这两条指令

*/1 * * * * /home/my.sh (前提是有执行权限)

4.3 每天凌晨2:00将mysql数据库testdb被分到文件中

0 2 * * * mysqldump -u root -proot testdb > /home/db.bak

5. crond其他相关指令

crontab -r 终止任务调度

crontab -l 列出当前有哪些任务调度

service crond restart 重启任务调度

你可能感兴趣的:(18. Linux定时任务调度 - crond)