Linu计划任务/crontab命令
周期性任务计划
相关程序包:
cronie:主程序包,提供了crond守护进程及相关辅助工具
cronie-anacron:cronie的补充程序;用于监控cronie任务执行状况;如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次次任务
crontabs:包含CentOS提供系统维护任务
计划任务守护进程crond运行状态查看方法
CentOS7:
systemctl status crond
CentOS6:
service crond status
编写计划任务两种方式:
系统计划任务设定:编写配置文件/etc/crontab
用户计划任务设定:执行# crontab -e 命令。在实际工作中,一般采用此方式设定计划任务
crontab命令常用选项
crontab -l:查看自己的cron任务列表
crontab -e:通过EDITOR变量中定义的编辑器打开用户自己的cron配置文件;编辑单独的任务都使用-e选项,无论是删除、修改还是新建
crontab -r:移除crontab文件,慎用!
crontab -i:同-r一同使用,以交互式模式让用户有选择的删除指定任务
crontab -u UserName:仅root可运行,指定某个用户,需要配合其他选项如-l -e使用例如:#crontab -e -u docker(管理员root用户给docker用户设定计划任务)
计划任务编写格式
时间格式
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr …
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
时间格式举例: 6 7 * * * #每天7点6分 6 7 8 * * #每月8号 7点6分 * 7 8 * * #每月8号7点,每分钟执行 30-35 7 * * * #每天7点30-35分,每分钟执行 5,35 * * * * #每小时的5,35分钟执行 5-45/3 * * * * #每小时的5-45分钟,每隔三分钟执行一次
时间表示法说明:
(1)特定值:每个时间位都应该使用其可用的有效取值范围内的值;
(2)*:某时间位上的*表示对应位的所有有效取值;
(3)-:连续的时间相邻点取值
(4),:离散的时间点取值 #,#,#
(5)/#:表示在指定时间范围内每隔#一次;
另一种时间格式
@reboot Run once after reboot #每次系统重启或者重新开机都执行一次
@yearly 0 0 1 1 *
@annually 0 0 1 1 *
@monthly 0 0 1 * *
@weekly 0 0 * * 0
@daily 0 0 * * *
@hourly 0 * * * *
计划任务编写举例
(1)每3分钟执行一个echo "how are you?" # crontab -e */3 * * * * /bin/echo "how are you?" (2)每周2、4、6备份/etc/目录至/backup目录中,备份的文件名以当前etc_开头并跟上当日的日期作为文件名 # crontab -e 3 2 * * 2,4,6 /bin/tar -Jcf /backup/etc_`date '+%F'` .tar.xz /etc/* (3)周天6、9、12、15、18查看一下当前系统挂载的所有文件系统,并将查看的结果追加至/tmp/mounts.txt文件中 # crontab -e 17 6,9,12,15,18 * * * /bin/mount >> /tmp/mounts.txt (4)每天每两小时取当前系统内存空间余量,将其保存至/stats/memory.txt文件中 # crontab -e 1 */2 * * * /bin/grep "^MemFree:" /proc/meminfo >> /stats/memory.txt
制作定时任务的规范:
1、为定时任务加必要的注释
2、执行shell脚本任务前加/bin/sh
3、默认输出信息会以邮件形式发送到用户,可通过重定向到/dev/null中来拒收邮件
如:1 1 * * * /bin/bash xxxx.sh &>/dev/null
4、定时任务命令或程序最好写到脚本里执行
5、在指定用户下执行相关的定时任务
6、定时任务执行的脚本要规范路径(/server/scripts)
原文地址:https://www.cnblogs.com/ysuwangqiang/p/11523661.html
- JDK容器学习之Queue:DelayQueue
- React-Native组件之 Navigator和NavigatorIOS
- JDK容器学习之Queue:ConcurrentLinkedQueue
- JDK容器学习之Queue: PriorityQueue
- React Native导航器之react-navigation使用
- Nginx 路由转发配置笔记
- React Native控件之ListView
- Java学习之深拷贝浅拷贝及对象拷贝的两种方式
- [周末课程]什么是“页面业务流程”分析思维导图?如何编写页面假JSON数据? &下一个前端组件“日历”
- Java并发学习之玩转线程池
- Java & PhantomJs 实现html输出图片
- 干货 | React Native实践之携程Moles框架
- Java并发学习之ThreadLocal使用及原理介绍
- ibeacon蓝牙技术简介
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux: 添加一个IP地址
- Nginx简易防CC策略规则
- 如何编写和优化WordPress网站的Robots.txt
- 如何处理WordPress网站404状态死链
- (三)RecyclerView简单滑动场景分析
- AWS EC2实例开启IPv6方法 阅读模式
- centos7宝塔环境安装VeryNginx waf系统实现高级防火墙功能
- 腾讯云中关于授权子用户QCloudResourceFullAccess权限后使用api接口创建购买cvm没有支付权限的解决办法
- centos7中systemctl系统服务和资源限制故障
- centos7 安装zabbix并监控windows服务器
- 宝塔面板插件-shadowsocks可视化管理
- Android面试知识笔记:那些年面试官常问的知识点...(附详细解析)
- 聊聊dubbo-go的failbackCluster
- Docker环境准备
- js实现HTML页面时钟动态显示