crontab定时运行命令答题.doc
文本预览下载声明
linux 定时运行程序 转
crontab,无论root还是user都可以用。基本用法:?1. crontab -l???? 列出当前的crontab任务?2. crontab -d???? 删除当前的crontab任务?3. crontab -e (solaris5.8上面是 crontab -r)???? 编辑一个crontab任务,ctrl_D结束?4. crontab filename???? 以filename做为crontab的任务列表文件并载入
crontab file的格式:??? crontab 文件中的行由 6 个字段组成,不同字段间用空格或 tab 键分隔。前 5 个字段指定命令要运行的时间?????? 分钟 (0-59)?????? 小时 (0-23)?????? 日期 (1-31)?????? 月份 (1-12)?????? 星期几(0-6,其中 0 代表星期日)?????? 第 6 个字段是一个要在适当时间执行的字符串
例子:????? #MIN HOUR DAY MONTH DAYOFWEEK COMMAND ????? #每天早上6点10分 ????? 10 6 * * * date ????? #每两个小时 ????? 0 */2 * * * date??? (solaris 5.8似乎不支持此种写法)????? #晚上11点到早上8点之间每两个小时,早上8点 ????? 0 23-7/2,8 * * * date ????? #每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 ????? 0 11 4 * mon-wed date ????? #1月份日早上4点 ????? 0 4 1 jan * date
[例7] # crontab -l #列出用户目前的crontab。 10 6 * * * date 0 */2 * * * date 0 23-7/2,8 * * * date # 在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。每个域之间使用空格或者制表符分隔。格式如下: minute hour day-of-month month-of-year day-of-week commands 第一项是分钟,第二项是小时,第三项是一个月的第几天,第四项是一年的第几个月,第五项是一周的星期几,第六项是要执行的命令。这些项都不能为空,必须填入。如果用户不需要指定其中的几项,那么可以使用*代替。因为*是统配符,可以代替任何字符,所以就可以认为是任何时间,也就是该项被忽略了。在表4-1中给出了每项的合法范围。 表4-1 指定时间的合法范围 时间 合法值 minute 00-59 hour 00-23,其中00点就是晚上12点 day-of-month 01-31 month-of-year 01-12 day-of-week 0-6,其中周日是0 这样用户就可以往crontab 文件中写入无限多的行以完成无限多的命令。命令域中可以写入所有可以在命令行写入的命令和符号,其他所有时间域都支持列举,也就是域中可以写入很多的时间值,只要满足这些时间值中的任何一个都执行命令,每两个时间值中间使用逗号分隔。 除了数字还有几个个特殊的符号就是*、/和-、,,*代表所有的取值范围内的数字,/代表每的意思,*/5表示每5个单位,-代表从某个数字到某个数字,,分开几个离散的数字。几个例子:每天早上6点 0 6 * * * echo Good morning. /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。 每两个小时 0 */2 * * * echo Have a break now. /tmp/test.txt 晚上11点到早上8点之间每两个小时,早上八点 0 23-7/2,8 * * * echo Have a good dream:) /tmp/test.txt 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * 1-3 com
显示全部