Crontab使用详解(包括问题)
来源:互联网 发布:小学生编程大赛 编辑:程序博客网 时间:2024/05/29 18:04
http://blog.163.com/hevensun@126/blog/static/201533632009230770510/
一句话总结crontab(指这个应用、这个机制)的作用:”run this command at this time on this day”,在指定的日期、时间,运行指定的命令。下面是Linux 上crontab手册中的知识点,小结如下:
1. crontab文件“正式行”的开始
空行、以空格或者“tab”开行的行,被cron(daemon)忽略。
以#开始的行,作为注释被cron(daemon)忽略。
“注释”不允许与“命令”放在同一行(作为命令的注释),会被作为“第六段”,被cron(daemon)执行。
同样的,也不能放在设置环境变量的同一行。
2. 在crontab文件中指定环境变量
设置变量使用
name = value
这样的格式,”=”号左右的空格不是必须的。
几个变量默认已经被设置,比如:
SHELL=/bin/sh
HOEM=/home/nnix
LOGNAME=nnix
其中SHELL和HOME可以重新设定,LOGNAME则不可(大概跟确定crontab文件的位置有关)。
默认,crontab会把执行的输出发送给crontab的所有者,除非重新设定变量:
MAILTO=other_or_email
另外,当crontab发送输入时的邮件编码,可以通过设置变量?CONTENT_TYPE 和 CONTENT_TRANSFER_ENCODING 来使用正确的编码来发送邮件。
3. crontab 文件的分段
依次分别是
- 分(0-59)
- 时(0-23)
- 日(1-31)
- 月(1-23,或者英文名)
- 周(0-7,或者英文名,0和7均表示周日)
- 要执行的内容 ??
4. 前五段:时间和日期
1)表示任意:* 号表示 “任意”(first-last)。
2)指定数字,表示指定的时间。
3)指定段,表示“开始-结束”内包含的数:比如3-6,表示3,4,5,6
4)指定列表:比如 “1,2,3,4″,”0-4,8-12″
5)指定“步长”:8-14/2 表示8,10,12,14
5. 模糊的第六段:
1)除去前五段,从第六段开始到换行符或者“%”为止,为要执行的命令。
2)默认第六段将被/bin/sh执行,除非在crontab文件中指定了非/bin/sh的SHELL变量。
3)第六段中的”%”号,除非前面加”\”号转交,否则,“%”号将结束命令行、换行的意义,并且其后的内容会被做为标准输入发送给前面的命令。
6. 冲突的逻辑
日期可以用月限定,也可以用“星期”指定,如果两个段有冲突(比如这两段不同时为“*”),那么,第六段的命令将在匹配任何一个的情况下运行,比如
“30 4 1,15 * 5″,将在每月的1号和15号 加 每个周五,上午4:30运行。
7. crontab文件中的神密符号“%”
可能会遇到的一个问题是,在第六段中需要使用date生成日志文件名,比如:
0 ? 4 ? * ? * ? * ? /opt/cron/mysql_dump.sh ? ?> /srv/logs/`date +%y-%m-%d`.dump.log
这时会发现crontab怎么也不运行这个mysql_dump.sh,也看不到有日志生成。这是因为在crontab文件中,”%”是有特殊含义 的。假如不需要“%”的特殊作用,需要使用转义符转义。上面应该写成:
0 ? 4 ? * ? * ? * ? /opt/cron/mysql_dump.sh ? ?> /srv/logs/`date +\%y-\%m-\%d`.dump.log
“%”在crontab文件中,有“结束命令行”、“换行”、“重定向”的作用,比如:
0 ?22 ?* * 1-5 ?mail -s “It’s 10:00 pm” joe%Joe,%%Where are your kids?%
将会在周一至周五的22:00发送一分内容为:
Joe,<换行>
<换行>
Where are your kids?<换行>
8. 不能理解的特殊用法
?? ? ? @reboot ? ?: ? ?Run once, at startup.
为了达到在开机后运行,且只运行一次的目的,除了这个,恐怕无法通过前五段的设置来实现吧?
- Crontab使用详解(包括问题)
- Linux crontab使用详解(转载)
- crontab使用详解
- Crontab使用详解
- crontab使用详解
- crontab使用详解
- linux crontab使用详解
- Crontab使用详解
- crontab使用详解
- Linux crontab使用详解
- crontab使用注意问题
- crontab使用问题
- crontab 定时器(包括执行shell)
- crontab定时器(包括执行shell)
- crontab定时器(包括执行shell)
- crontab命令设置使用详解
- crontab命令设置使用详解
- linux 中Crontab 使用详解
- 关于信息加密测试代码(MD5)
- 分享一款C#解数独的算法
- PhoneGap for iOS 平台开发环境搭建
- Flash Media Server直播时声音断续的问题
- 记录几个VIM的常用命令
- Crontab使用详解(包括问题)
- SecureCRT超时问题
- 获取系统运行进程信息——PSAPI介绍使用 .
- [VBScript]: Command 命令输入
- HibernateTemplate 中的查询方法
- 在Chrome插件中访问原始网页中的变量
- 密码和Java中的加解密之对称加密(一)
- c# 获取网页源码,自动判断编码格式新方法
- 分手快乐,祝你快乐,你找不到比我更好的。