要使用crontab定时器工具,必须要启动cron服务:
service cron start
crontab的语法,以备日后救急。先上张超给力的图:
crontab各参数说明:
-e : 执行文字编辑器来编辑crontab,内定的文字编辑器是VI
-r : 删除目前的crontab
-l : 列出目前的crontab(查看专用)
-i : 会和-r 配合使用,在删除当前的crontab时询问,输入y 则删除
注意crontab是分用户的,以谁登录就会编辑到谁的crontab
crontab特殊的符号说明:
""代表所有的取值范围内的数字。特别要注意哦!
"/"代表每的意思,如"/5"表示每5个单位
"-"代表从某个数字到某个数字
","分散的数字
**crontab文件的使用示例:
**30 21 * * * 表示每晚的21:30
45 4 1,10,22 * * 表示每月1、10、22日的4 : 45
10 1 * * 6,0 表示每周六、周日的1 : 10
0,30 18-23 * * * 表示在每天18 : 00至23 : 00之间每隔30分钟
0 23 * * 6 表示每星期六的11 : 00 pm
- */1 * * * 每一小时
- 23-7/1 * * * 晚上11点到早上7点之间,每隔一小时
- 8,13 * * 1-5 从周一到周五的上午8点和下午1点
0 11 4 * mon-wed 每月的4号与每周一到周三的11点
0 4 1 jan * 一月一号的4点
-------------------------------- 如何启动crontab的日志服务 --------------------------------------------------------
发现UBuntu下居然没有自动打开cron的日志服务功能,解决方法如下
cron的日志功能使用syslogd服务,不同版本Linux可能装了不同的软件,这里介绍常见的两种:
sysklogd>>>>>>
- 编辑 /etc/syslog.conf,并且打开以cron.*开始的那行注释。 2. 运行 /etc/init.d/sysklogd restart 。 3. 运行 /etc/init.d/cron restart 。
rsyslog>>>>>> - 修改rsyslog文件,将/etc/rsyslog.d/50-default.conf 文件中的#cron.*前的#删掉;2. 重启rsyslog服务service rsyslog restart3. 重启cron服务service cron restart
-------------------------------- 如何查看crontab的日志记录 --------------------------------------------------------
昨天crontab中的同步任务没有执行,不知道是什么原因没有执行,貌似任务hang住了,想查询一下crontab到底问题出在哪里,或者hang在了什么地方。1. linux看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察2. unix在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。3. mail任务在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。