合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
[TOC] | | 分 | 时 | 日 | 月 | 周 | | | --- | --- | --- | --- | --- | --- | --- | | 每个钟20分执行一次(一天执行1*24) | 20 | * | * | * | * | *`:表示每个周期执行。 | | 每个钟20分执行一次和40分钟执行一次(一天执行2*24) | 20,40 | * | * | * | * | `,`:并列 | | 每个钟20-40分没分钟执行一次(一天执行21*24) | 20-40 | * | * | * | * | `-`:连续 | | 0,2,4,..,58分钟各执行一次 | */2 | * | * | * | * | `/`: 整除 | | | | | | | W:表示工作日 | | | | | | | L:表示每月最后一天 | | | | | | | | | | | >[danger] 周数字表示时有1-7和0-6,拿不准的时候推荐用Mon > 月数字表示时有1-12和0-11,拿不准的时候推荐用Jul */2等价于0/2 1/2 表示 1,3,5,...,59 7/2 呢? 1-7,2-7,3-7,4-7,5-7,6-7为负数 不会执行 7-7=0能被2整除 8-7=1不能被2整除 9-7=2能被2整除 可以 7/2 表示7,9,11,...59 简单理解为/前面为具体数字时,以这个具体数字开头,然后被整除的就会执行 怎么每秒执行? ``` * * * * * 执行脚本 * * * * * sleep 1; 执行脚本 * * * * * sleep 2; 执行脚本 ... ... * * * * * sleep 59; 执行脚本 ``` ## crontab(cron table的缩写,中文叫工作表或者计划任务列表)配置文件 ``` //目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名 /var/spool/cron/ //这个文件负责调度各种管理和维护任务。 /etc/crontab //这个目录用来存放任何要执行的crontab文件或脚本。 /etc/cron.d/ //每小时执行一次 /etc/cron.hourly //每小天执行一次 /etc/cron.daily //每星期执行一次 /etc/cron.weekly //每月执行一次 /etc/cron.monthly ``` 编辑定时任务命令 ~~~ //省略用户表表示操作当前用户的crontab crontab -e //进入当前用户的计划任务列表 crontab [-u username] -e //列出计划任务里的内容(里面是各种定时任务命令) crontab [-u username] -l //删除计划任务 crontab [-u username] -r ~~~ 计划任务列表你定义的定时任务命令格式:`分 时 日 月 周 执行的命令` 分 0~59 时 0~23 日 1~31 月 1~12 周 0~6 命令 其他符号 `*`:表示每个周期执行。 `,`:表示或者 10,15 表示10分或15分 `-`:表示一个时间段 1-5 表示从1点到5点每个小时。 5种日期、时间选项的关系。 分、时、天、月他们的关系是并且的。 分、时、月、周他们关系是并且的。 同时设置分、时、天、月、周这个时候 天和周的关系是或者的关系。 格式: ``` crontab -e 回车 分 时 日 月 周 命令/绝对路径的脚本名 ``` crontab `crontab -e ***** 命令`。 (五个*分别代表分 时 日 月 周 如果没有具体数就是\*的话那就代表每分每时每日每月每周) at(一次性)  at 2:00 tomorrow 回车 /home/do_job.php 回车  退出  Ctrl+D 每天0点钟重新启动服务器 ``` crontab -e 回车编辑 0 0 * * * root reboot ``` `0 13,20 * * 1,2,3,4,5, mybackup` 或者`0 13,20 1-5 mybackup`:在周一至周五下午一点和晚上八点各运行1次 `crontab -e 0 13,20 1-5 mybackup` ## **查看定时任务** 方法1:查看当前用户的定时任务 crontab -l 方法2:查看所有定时任务 进入目录:cd /var/spool/cron 查看定时任务列表:ls 查看每个定时任务:cat root或者用vim命令进行编辑