Linux系统管理之 crond 与 crontab
来源:互联网 发布:mac versions 破解版 编辑:程序博客网 时间:2024/05/29 15:32
cron是任务的意思,tab 表示table。crontab 可以理解为,任务时间表。 crontab 命令是用来让计算机替我们执行周期性任务,比如要在每周二的凌晨五点重启服务器,每天凌晨执行一次备份任务。主要管理以分钟、小时、日、月、周,为周期来执行定期任务。守护进程 crond 为 crontab 命令提供服务。
准备工作
在使用命令之前,首先要确保服务已安装并启动。
1、查看 crond 服务是否安装(守护进程 crond 为 crontab 命令提供服务)
[root@www time]# chkconfig --list | grep crondcrond 0:off 1:off 2:on 3:on 4:on 5:on 6:off[root@www time]# # 3 和 5 级别是字符界面和图像界面这两个 on就表示已经安装并开机自启动
2、查看服务是否在运行
[root@www time]# service crond statuscrond (pid 2187) is running...[root@www time]#
显示服务正在运行,如果没有运行可以执行service crond restart
重新启动一下服务。
认识命令
1、crontab 的白名单与黑名单
像 at 命令一样,在系统的 /etc
目录下可能会有两个使用 crontab 的限制文件。
一个可以叫做白名单/etc/cron.allow
,用来记录那些用户可以使用 crontab。另一个叫做黑名单 /ect/cron.deny
,用来限制那些不用户不能使用 crontab黑名单对root 是无效的。
当两个文件都存在时,以 白名单为准。当两个文件都不存在时,只有root可以。一般系统中只有黑名单文件,因为每个用户所执行的定时任务都与他自身的用户权限有关。
2、命令介绍以及命令格式说明
[root@www time]# crontab [选项]# 选项:-e :使用 vim 编辑 crontab 定时任务,可添加或删除,默认为空,只需按照格式写入即可-l :查询 crontab 任务,以打印的方式-r :删除当前用户所有的 crontab 任务
如果要设定定时任务,在命令行下输入 crontab -e 进入vim 编辑页面,默认是空白文件,此时需要按照下面的格式去书写定时任务:
* * * * * 执行的任务
crontab 任务格式一共有六项,前五个“ * ” 指定时间,分别是分钟、小时、日、月、周。最后一项是要执行的任务。
3、五个 “*”
的具体含义:
# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * command to be executed
还有几个特殊符号需要注意:
4、crontab 时间的练习:
1、 30 21 * * * 任务
是什么意思?
答:每天的 21 点 30 执行任务。
2、0 20 * * 1 任务
是什么意思?
答:每周一的 20 点 00 分执行任务。
3、0 8 1,15,25 * * 任务
是什么意思?
答:每月1 号 ,15 号,25号的8 点 00 分 执行任务。
4、 */10 3 * * * 任务
是什么意思?
答:每天凌晨 3 点钟 每个十分钟执行一次任务。
5、0 1 1,10 * 2 任务
是什么意思?
答:每月的周二或每月的 1号 ,10号 的凌晨 1点00分执行任务。这里并不是每月的1号 ,10号并且还要是周二才执行。
使用及注意事项
1、使用实例
食材已经准备好了,现在开始做菜吧。
要求:
- 要在每周二的凌晨三点重启服务器
- 每月的1,10,30号的凌晨五点执行
/root/sh/autobackup.sh
自动备份脚本 - 每五分钟向
/tmp
目录下的test.log
文件写入一行 “hello world
演示:
(1)、命令行下输入 crontab -e
进入编辑页面
第一个要求:
0 3 * * 2 /sbin/shutdown -r now
第二个要求写入
0 5 1,10,30 * * /root/sh/autobackup.sh
第三个要求写入
*/5 * * * * /bin/echo "hello world" >> /tmp/test.log
然后保存退出,查看:
此时已经生效,如果需要删除单条任务,再次编辑删除单行即可,如果需要都删除,加参数 -r:
2、 crontab 注意事项
一、六个选项都不能为空,必须填写,如果不确定可以使用 * 表示任意时间。
二、crontab 定时任务,最小时间是分钟,最大是月,不能指定多少秒或多少年。
三、在写时间时,尽量不要把日期和星期写在一起,都是用天表示单位,容易混乱。
四、定时任务中,最好使用绝对路径,因为 进程可能有自己的环境变量。
扩展
如果需要指定用户执行定时任务,可以在配置文件/etc/crontab
中添加内容,需要在上面的格式命令之前加上用户名。
如果服务器可能出现故障,需要确保定时任务的执行,可以使用服务 anacron,将需要按照日、周、月执行的的脚本放到目录/etc/cron.{daily | weekly | monthly}
中。在配置文件/ect/anacrontab
中可以配置,执行时间的范围,以及强制延时时间。
- Linux系统管理之 crond 与 crontab
- Linux--crond与crontab详解
- Linux中crond服务与crontab用法
- Linux中crond服务与crontab用法
- Linux中crond服务与crontab用法
- Linux中crond服务与crontab用法
- linux的定时任务crond与crontab
- Linux下浅谈crond与crontab
- Linux下浅谈crond与crontab
- Linux下的crond与crontab
- Linux中crond服务与crontab用法
- Linux定时任务之crond/crontab
- linux之浅谈crond和crontab
- Linux---crond && crontab
- crond与crontab
- crond与crontab调研
- Crond 与 Crontab
- crond与crontab调研
- js学习170709
- Python 七段数码管绘制
- 爬虫简介
- ML实践-Adaptive Linear Neurons(Adaline)
- 如何用通过C++11提供的std::condition_variable实现主线程控制子线程的启动和停止
- Linux系统管理之 crond 与 crontab
- 采购订单执行情况表
- 工厂模式
- spring使用FreeMarker模板发送邮件及附件笔记
- linux定时任务crontab命令和crond服务详解
- js学习1707091223
- UnhookWindowsHookEx
- Mysql学习历程基本语法(5)--中文数据问题
- Unity射线检测的方向是 世界坐标系还是自身坐标系