定时任务crond
1.什么是crond
crond就是计划任务,类似于我们平时生活中的闹钟.定点执行.
2.为什么要使用crond
crond主要是做一些周期性任务,比如: 凌晨3点定时备份数据。比如:11点开启网站抢购接口,12点关闭网站抢购接口。
3.计划任务主要分为以下两种使用情况:
1.系统级别的定时任务: 临时文件清理、系统信息采集、日志文件切割
2.用户级别的定时任务: 定时向互联网同步时间、定时备份系统配置文件、定时备份数据库的数据
4.crond的使用
1.定时任务crontab的安装与启动相关
安装crontab:
yum install crontabs
service crond start #启动服务
service crond stop #关闭服务
service crond restart #重启服务
service crond reload #重新载入配置
service crond status #crontab服务状态
查看crontab服务是否已设置为开机启动,执行命令:
ntsysv (图形界面,慎用)
加入开机自动启动:
chkconfig –level 35 crond on
2.命令格式说明
crontab -e 进入定时任务,使用 vim 编辑 crontab 定时任务,可添加或删除,默认为空,只需按照格式写入
crontab -l 查看该用户下的crontab服务是否创建成功
crontab -r 删除当前用户所有的 crontab 任务
crontab file 用指定的文件替代目前的crontab
crontab -d 删除用户目前的crontab
crontab -c 指定crontab的目录
查看服务是否已经运行用 ps -ax | grep cron
3.定时任务的格式
crontab 格式:
基本格式 :
分 时 日 月 周 命令
* * * * * *
第1列表示分钟1~59 每分钟用*或者 */1表示 每5分钟用*或者 */5表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~7(0和7都代表周日)
第6列要运行的命令
记住几个特殊符号的含义:
“*”表示任意时间的意思
“/”代表”每”,
短杠“-” 代表连续的时间范围。
“,”分开几个离散的数字,代表不连续的时间
*/n 代表每隔多久执行一次
例:
[root@root test]# crontab -l
00 02 * * * sh /home/admin/optbash/dailyBackup.sh
00 02 * * * sh /home/admin/optbash/deleteDebugSql.sh
* * * * * sh /home/admin/test/test.sh
使用者权限文件:
文件:
/etc/cron.deny
说明:
该文件中所列用户不允许使用crontab命令
文件:
/etc/cron.allow
说明:
该文件中所列用户允许使用crontab命令
文件:
/var/spool/cron/root
说明:
所有用户crontab文件存放的目录,以用户名命名
5.提醒
$ crontab
其中,
我建议你在自己的$ H O M E目录中保存一个该文件的副本。容易误删(因为r键紧挨在e键的右边)。这就是为什么有些系统文档建议不要直接编辑crontab文件,而是编辑该文件的一个副本,然后重新提交新的文件。
有些crontab的变体有些怪异,所以在使用crontab命令时要格外小心。如果遗漏了任何选项,crontab可能会打开一个空文件,或者看起来像是个空文件。这时敲delete键退出,不要按<Ctrl+D>,否则你将丢失crontab文件。
6.crond注意的事项
-
给定时任务注释
-
将需要定期执行的任务写入Shell脚本中,避免直接使用命令无法执行的情况tar date
-
定时任务的结尾一定要有&>/dev/null或者将结果追加重定向>>/tmp/date.log文件
-
注意有些命令是无法成功执行的 echo "123" >>/tmp/test.log &>/dev/null
5)如果一定要是用命令,命令必须使用绝对路径