· 取所有值
给定时间点上有效取值范围内的所有值;表示"每xxx"的含义;
· 离散取值
在时间点上使用逗号分隔的多个值;
x,y,z
例如:
0 8,20 * * 3,7:这种不建议;(出现了20号,又出现了每周3,周天);
9 8 * * 3,7:每周三和周日执行的8点9分执行;
· 连续取值
在时间点上使用符号短破折号"-"连接开头和结束
x-y
例如:
0 9-18 * * 1-5:周1到周5,每天的9点到18点,执行;(假设上午9点上班,下午18点下班,双休,这就是
工作日执行要执行的任务)
· 步长取值
在指定时间点上,定义步长:
/number :其中number表示步长;
指定的时间点不能被步长整除时,其意义将不复存在;
最小时间单位为"分钟",想要完成"秒"级别任务,需要额外借助于其他机制,例如
可以定义每分钟定时计划任务,再利用脚本实现在每分钟之内,循环执行多次;
例如:
*/5 * * * *:每5分钟执行一次;
* */1 * * *:每1小时执行一次;
* * */5 * *:每5天执行一次;
*/7 * * * *:这个并不完全是每7分钟执行一次,这种不整除的现象,不建议使用 。
cron定时任务示例1、每12小时备份一次/etc目录至/backups目录中,保存文件 名称格式为"etc-yyyy-mm-dd-hh.tar.xz"要添加的任务计划为:
* */12 * * * /usr/bin/mkdir -p /backups >/dev/null && /usr/bin/tar -JPcvf /backups/etc-`date '+%Y-%m-%d-%H'`.tar.xz /etc >/dev/null
*
2、每周2、4、7备份/var/log/secure文件至/logs目录中,文件名格式为"secure-yyyymmdd";
要添加的任务计划为:
* * * * 2,4,7 /usr/bin/mkdir -p /logs >/dev/null && tar -JcvfP /logs/secure-`date +%Y%m%d`.tar.xz /var/log/secure >/dev/null
3、每两小时取出当前系统/proc/meminfo文件中以S或M开头的行信息追加至/tmp/meminfo.txt文件中;
* */2 * * * /usr/bin/grep -E '^(S|M)' /proc/meminfo >> /tmp/meminfo.txt
4、制定每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00;
我的脚本内容为:
[root@node2 ~]# cat /var/tmp/print_dtime.sh
#! /bin/bash
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
LANG="en_US.UTF-8"
export PATH LANG
source /etc/profile
shopt -u expand_aliases #关闭 bash alias 扩展
echo `date +'%Y-%m-%d %H:%M:%S'`
[root@node2 ~]#
定时任务计划为:
10 3,5 * * 3 bash /var/tmp/print_dtime.sh
【linux定时任务,让你更深入的了解系统】
推荐阅读
- 聊聊关于Linux的登录脚本和登出脚本
- Linux怎么复制文件到其他文件夹
- Linux运维:反斜杠与反引号的使用
- 怎么用Linux命令行测试网站连接速度
- 美团红包兑换码怎么获得 双11惊喜任务退款红包还有吗
- 如何使用linux脚本监控Tomcat服务器是否宕机和宕机后自动重启
- Linux文件操作高频使用命令,作为程序员的你看看
- Linux安装JDK 以及 tomcat 和mysql
- Linux中断处理
- 终于知道为什么黑客学习过程首选的系统是Linux系统而不是windows