crontab

系统自动任务

在CentOS系统上安装:yum install crontabs
系统中的每个用户可以有一个自己的 crontab 文件,他们可以利用该文件来实现不同日期、不同时间的多个事件的调度。
crontab 文件的6个字段的含义如下:
第1列分钟:范围是 059
第2列小时:范围是 023
第3列日期:范围是 131
第4列月份:范围是 112
第5列星期:范围是 0~7(0和7表示星期天),从星期天开始
第6列要运行的命令
理解
该文件的每一个条目必须含有5个时间域,而且每个域之间要用空格分隔.该文件中所有的注释行要在行首用#来表示.
分钟列必须有数字,否则星号代表每分钟都执行,如果设置了小时任务,分钟列还是星号,那么到目标小时后,每分钟都会执行
可以用横杠-来表示一个时间范围,例如你希望星期一至星期五运行某个作业,那么可以在星期域使用1-5来表示.
在域中使用逗号“,”,例如你希望星期一和星期四运行某个作业,只需要使用1,4来表示.
但在一个较大的系统中,系统管理员一般会禁止这些文件,而只在整个系统保留一个这样的文件.系统管理员是通过cron.deny和cron.allow这两个文件来禁止或允许用户拥有自己的crontab文件.
crontab -l # 查看当前用户的定时任务
crontab -e # 编辑当前用户的定时任务
crontab -u # 用户名,当前登录用户不用填写用户名
crontab -r # 删除crontab文件, 慎用!慎用!慎用!慎用!! 注意备份

常用实例

每分钟执行

          • /opt/task/startup.sh

每晚的21:30运行

30 21 * * * /opt/task/startup.sh

每月1,10,22日的4:45运行

45 4 1,10,22 * * /opt/task/startup.sh

每周六,周日的1:10运行一个find命令,删除一些内容

10 1 * * 6,0 /bin/find -name “core” -exec rm {} ;

每天18:00至23:00之间每隔30分钟运行

0,30 18-23 * * * /opt/task/startup.sh

每星期六的23:00运行

0 23 * * 6 /opt/task/startup.sh

特别的标签

在开机的时候执行一次

@reboot su - mysql -s /bin/bash /opt/mysql-5.7.22/start.sh

@reboot su - mysql -s /bin/bash /opt/mysql-5.7.22/start.sh

每小时运行,对应的是 0 * * * *

@hourly /opt/task/startup.sh

其他

@yearly   对应 0 0 1 1 * 每年运行一次

@annually 对应 0 0 1 1 * 每年运行一次

@monthly  对应 0 0 1 * * 每月运行一次

@weekly   对应 0 0 * * 0 每周运行一次

@daily    对应 0 0 * * * 每天运行一次

@hourly   对应 0 * * * * 每时运行一次

Copy

禁止Crontab向用户发送Mail,在命令的最后面添加如下重定向内容:>/dev/null 2>&1
at 命令 使她在一个特定的时间执行一个特殊的任务
& 使用它在后台运行一个占用时间不长的进程
Nohup 使用它在后台运行一个命令,即使在用户退出时也不受影响