cron任务详解--持续更新
来源:互联网 发布:淘宝类目大全2017 编辑:程序博客网 时间:2024/05/15 00:38
常遇问题:
1. cron任务配置了, 可没有效果, 日志中也没有报错.
这种情况, 很可能是因为crond服务没起来. 执行命令/etc/init.d/crond start, 启动服务后, cron任务就能顺利执行了. 如果没有crond, yum安装.
2. cron的格式错误, 详见下面分解.
Linux有一个常用的功能, 就是cron定时任务. 在cron任务制定的时候, 遇到过不少琐碎的问题, 现在就从cron任务的格式, 到遇到的各式问题, 做一个总结. 该文章将持续更新, 希望可以帮助到朋友们…
cron任务的格式:
# man cronNAME crontab - maintain crontab files for individual usersSYNOPSIS crontab [-u user] file crontab [-u user] [-l | -r | -e] [-i] [-s]
- -u: 指定要编辑的cron用户, 如root下指定编辑lius用户, 就是crontab -u lius; 不指定, 默认是当前用户.
- -l: 列出指定用户, 或当前用户的cron任务列表;
- -r: 清空指定用户或当前用户所有的cron任务列表;
- -e: 编辑指定用户或当前用户所有的cron任务列表;
- -i: 在-r执行的时候, 加-i后, 选Y/y才能执行操作, 避免误操作而引起cron列表被清空.
上面参数里面的两个文件:
FILES- /etc/cron.allow /etc/cron.deny
普通用户同root一样,可以执行cron程序, 但受到配置文件的限制: /etc/cron.allow和/etc/cron.deny
1. root通过上面两个配置文件分配cron权限; 如果用户的名字出现在cron.allow文件中,他就有权使用crontab命令;
2. 如果cron.allow文件不存在,系统会检查/etc/cron.deny, 确定是否这个用户被拒绝使用cron;
3. 如果两个文件都存在,cron.allow有优先权;
4. 如果两个文件都不存在, 那么只有超级管理员有权限使用cron命令;
5. 如果cron.deny文件为空文件,所有的用户都可以使用crontab.
cron任务的撰写:
1. cron任务的撰写, 可以通过vim修改配置文件的形式. 配置文件的地址在/var/spool/cron/目录下面, 以用户名命名的文件, 如/var/spool/cron/root就是root用户的cron任务配置文件. 可以用vim来编辑, 保存后自动生效.
2. cron任务可以用crontab -e的命令来编辑当前用户的cron计划. 如当前用户为root, 执行crontab -e命令, 自动打开/var/spool/cron/root文件, 在里面用vim相关的操作, 即可进行快速编辑和保存.
crontab -e编辑的优点: 保存任务计划的时候, 如果cron任务里面有语法错误, 是无法顺利进行保存的, 这样方便我们及时修改, 避免cron任务的错误. 而直接编辑配置文件的方法, 并不能实现这一功能…
cron任务的格式:
crontab -e打开root用户的cron任务配置文件并编写, 实例如下:
* * * * * COMMAND >[FILE | /dev/null] 2> [FILE | &1]
注解: 五个星号分别代表: 分, 时, 日, 月, 周; 各个时间的取值范围:
分钟 (0-59)小時 (0-23)日期 (1-31)月份 (1-12)星期 (0-6)//0代表星期天
cron任务实例:
# crontab -e0 2 * * * /bin/bash /root/bak.sh > /root/bak.log 2> /root/bak_err.log
注解: 如上的意思, root用户编辑一个cron任务, 每天凌晨02:00, 执行/root目录下的bak.sh脚本, 标准输出存入/root/bak.log; 出现任何错误信息导出到/root/bak_err.log里面.
: 表示每, 5个都是”“的时候, 表示每月的每周的每天的每小时的每分钟都执行一次cron任务.
每隔N小时执行一次的任务:
0 */N * * * /bin/bash /root/bak.sh > /root/bak.log 2> /root/bak_err.log
注意, 这里的N, 24必须能被其整除, 数值分别是1, 2, 3, 4, 6, 8, 12; 如N=8, 表示每隔8小时的整点, 进行后面的任务, 即00:00, 08:00, 16:00执行cron任务.
每N分钟执行一次任务:
*/N * * * * /bin/bash /root/bak.sh > /root/bak.log 2> /root/bak_err.log
注意, N要能被60整除, 因为这里分钟的取值是0-59, 而区间是整点60分钟; 如N=5, 表示每5分钟, 执行一次cron任务. 其余都是”“, 意思上面有介绍, 就不详述了. *N=1的时候, 与”*”的意思一样, 可以省略.
- cron任务详解--持续更新
- cron表达式详解 定时任务
- Linux cron 任务 不执行/cron 任务详解
- Linux cron 任务 不执行/cron 任务详解
- Linux计划任务工具cron用法详解
- Linux计划任务工具cron用法详解
- Linux定时任务Cron命令详解
- quartz定时任务cron表达式详解
- Linux计划任务工具cron用法详解
- spring定时任务 Cron表达式配置详解
- Linux/UNIX 定时任务 cron 详解
- @Scheduled注解 定时任务 cron表达式详解
- Linux/UNIX 定时任务 cron 详解
- Linux中的cron计划任务配置详解
- Linux/UNIX 定时任务 cron 详解
- Scheduled注解 定时任务 cron表达式详解
- 定时任务Cron表达式详解和案例
- SpringBoot定时任务及Cron表达式详解
- SQL SERVER 2005 DBCC IND命令说明
- 微信连WIFI认证、微信支付、支付宝支付需配置的白名单
- Java NIO Channel to Channel Transfers
- E: Unable to locate package
- 编程中如何避免if(object!=null)判空语句
- cron任务详解--持续更新
- python学习之(一)python crontab的使用
- microsoft project professional 2010密钥
- RelativeLayout相对布局和LinearLayout线性布局属性
- Android Studio NDK正确配置
- MapKit之地理编码和反向地理编码(CLGeocoder、CLPlacemark)
- JAVA之旅【第一天】 计算机概率 常用的DOS命令 下载安装JDK 环境配置
- 异步io解决c10k问题
- org.hibernate.AnnotationException: No identifier specified for entity