之前为了做数据库备份,了解了一些关于crontab的知识,现在将其总结一下。
一、什么是crontab?(以下参考百度)
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
二、crond服务
安装crontab:
yum install crontabs
服务操作说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
查看crontab服务状态:
service crond status
手动启动crontab服务:
service crond start
查看crontab服务是否已设置为开机启动,执行命令:
ntsysv
加入开机自动启动:
chkconfig –level 35 crond on
三、常用方法:
1). 创建一个新的crontab文件
创建一个名为 cron的文件,其中是用户名,例如, chensmcron。在该文件中加入如下的内容。
# (put your own initials here)echo the date to the console every
# 15minutes between 6pm and 6am
0,15,30,45 18-06 * * * /bin/echo 'hello world'
保存并退出。确信前面5个域用空格分隔。
$ crontab chensmcron
在上面的例子中,系统将每隔1 5分钟向终端输出一次“hello world”,关于crontab格式,我在某个博客里看到了一张好用(好记)的图:
这里就不过多赘述格式的问题
2). 列出crontab文件
为了列出crontab文件,可以用:
$ crontab -l
3). 编辑crontab文件
$ crontab -e
此处需要注意,可能需要在E D I TO R环境变量设置,大多数默认设置为vi,如果没有设置需要自行设置环境变量。
编辑$ HOME目录下的. profile文件,在其中加入这样一行:
EDITOR=vi; export EDITOR
4). 删除crontab文件
$ crontab -r
5). 注意事项
新创建的cron job,可能不会马上执行,需要过几分钟才执行。如果重启cron则马上执行。
当crontab突然失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。
千万别乱运行crontab -r。它从crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了,crontab文件夹有T文件属性,感兴趣可以去了解一下哈哈。
在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’。