linux - crontab 定时任务

linux内置的cron可以帮我们实现定时任务(备份数据库数据、删除服务日志等),cron + shell脚本,再复杂的指令都没有问题。

 

1. 相关配置文件:

/var/spool/cron:该目录下,存放的是每个用户(包括root)的crontab任务,每个任务以创建者的名字命名

/etc/crontab:该文件里,存放的是系统任务的任务列表

/etc/cron.d、/etc/cron.daily、/etc/cron.weekly...:这些目录下,存放任何要执行的crontab文件或脚本(平时不太用到)

 

2. crontab命令使用

crontab  [-u  username]   //省略则表示当前用户

-e:编辑工作表

-l:列出工作表

-r:删除工作表

 

3. crontab文件说明

crontab -e进入当前用户的工作表编辑,实际上就是/var/spool/cron/root(当前为root用户)文件,每一行是一条命令。crontab的命令构成为:时间+动作。

格式:

minute hour day month dayofweek command

时间:

分、时、日、月、周,共5种

操作符:

* 取值范围内的所有数字
,散列数字
- 从A到B 
/ 每隔多少个数字 

实例:

* * * * * myCommand     # 每1分钟执行一次myCommand
3,15 * * * * myCommand     # 每小时的第3和第15分钟执行
3,15 8-11 * * * myCommand     # 在上午8点到11点的第3和第15分钟执行
3,15 8-11 */2  *  * myCommand     # 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand     # 每周一上午8点到11点的第3和第15分钟执行
30 21 * * * myCommand     # 每晚的21:30执行
45 4 1,10,22 * * myCommand     # 每月1、10、22日的4 : 45执行
10 1 * * 6,0 myCommand     # 每周六、周日的1 : 10执行
0,30 18-23 * * * myCommand     # 每天18 : 00至23 : 00之间每隔30分钟执行
0 23 * * 6 myCommand     # 每星期六的晚上11 : 00 pm执行
* */1 * * * myCommand     # 每一小时执行
* 23-7/1 * * * myCommand     # 晚上11点到早上7点之间,每隔一小时执行

 

4. crontab服务

  • service crond start //启动服务
  • service crond stop //关闭服务
  • service crond status //查看服务状态
  • service crond restart //重启服务
  • service crond reload //重新载入配置
  • 一般默认是启动的

 

5. 实例

假如当前为root用户,新增一个定时任务,操作步骤如下:

1. 编辑待执行的sh脚本:vim test123.sh

   

2. 通过chmod赋予.sh脚本可执行权限:chmod +x test123.sh

    

3. 编辑vim /var/spool/cron/root文件,或执行crontab -e,编辑任务列表,将第一步中的sh脚本添加到任务列表中

   本例中,将sh脚本打印的hello world输出到2.log日志文件中,每分钟执行一次

   

4. 查看结果

    可以看到,实际每分钟打印一行hello world!

   

 

 

 

 

ps:

如果是修改系统任务,则需要加上用户名,如下:

 

posted @ 2020-12-22 19:48  小虫虫大虫虫  阅读(144)  评论(0编辑  收藏  举报