linux定时任务crontab使用介绍

crontab命令设置定时任务执行的时间规则,系统自动周期性执行命令。

这里我们就可以自定义脚本,然后设置定时执行脚本,达到我们想要在服务器定时执行的目标。

检查当前任务列表,同时查看是否安装了crontab

crontab -l

如果提示未安装,就需要自行安装(crontabs)

yum install crontabs

服务启动/关闭和查看

systemctl status crond

systemctl start crond

systemctl stop crond

systemctl reload crond

使用选项

-e 选项 表示打开当前用户的crontab任务列表配置文件。当然也可以直接打开,路径通常是在/var/spool/cron/下,文件以用户名命名,如/var/spool/cron/root。不过,采用-e方式打开,福利是可以帮助我们自动检查任务配置符合规则。

-u 选项 指定某用户的任务列表,很好理解。比如我当前是root用户,想操作poloxue用户的任务列表。如下:

$ crontab -u poloxue -e

-l 选项 列出某用户的所有任务列表

-r 选项 删除某用户的所有任务列表,这个选项使用小心为上,估计也只是自己实验时玩玩而已,正常不使用。

任务配置

示例文件如下:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# 更多细节 man 4 crontabs

# 计划任务定义的例子:
# .---------------- 分 (0 - 59)
# |  .------------- 时 (0 - 23)
# |  |  .---------- 日 (1 - 31)
# |  |  |  .------- 月 (1 - 12)
# |  |  |  |  .---- 星期 (0 - 7) (星期日可为0或7)
# |  |  |  |  |
# *  *  *  *  * 执行的命令
* * * * * date >> /time.txt 2>&1

时间例子:

30 21 * * * /etc/init.d/nginx restart
    每晚的21:30重启nginx。
     
    45 4 1,10,22 * * /etc/init.d/nginx restart
    每月1、10、22日的4 : 45重启nginx。
     
    10 1 * * 6,0 /etc/init.d/nginx restart
    每周六、周日的1 : 10重启nginx。
     
    0,30 18-23 * * * /etc/init.d/nginx restart
    每天18 : 00至23 : 00之间每隔30分钟重启nginx。
     
    0 23 * * 6 /etc/init.d/nginx restart
    每星期六晚上的23 : 00 pm重启nginx。

    * */1 * * * /etc/init.d/nginx restart
    每一小时重启nginx
    * 23-7/1 * * * /etc/init.d/nginx restart
    晚上11点到早上7点之间,每 隔一小时重启nginx

    0 11 4 * mon-wed /etc/init.d/nginx restart
    每月的4号与每周一到周三 的11点重启nginx

    0 4 1 jan * /etc/init.d/nginx restart
    一月一号的4点重启nginx

     */30 * * * * /usr/sbin/ntpdate 210.72.145.20
    每30分钟(半小时)同步一下时间

你可能感兴趣的:(python,linux,运维,服务器)