Linux操作系统定时调度系统Cron深入介绍
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业,本文档不讲cron实现原理,主要讲一下cron的具体使用及简单介绍。
新增调度任务
推荐使用crontab-e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cron文件),退出后重启crond进程,虽然官方文档描述为“crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。”,但我曾经遇到不重启无法运行任务的情况(也许因为某些系统crontab是读到内存中的,修改完/etc/crontab后并没有马上执行),可以使用如下方式重新启动cron服务或重新加载cron配置
/etc/rc.d/init.d/crond restart
servicecronreload
同样,我们也可以直接修改/etc/crontab文件来新建任务,/etc/crontab文件内容默认如下:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root//如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=///使用者运行的路径,这里是根目录
#run-parts
01 * * * * rootrun-parts/etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * rootrun-parts/etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 rootrun-parts/etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * rootrun-parts/etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
•/etc/cron.hourly/,/etc/cron.daily/、cron.weekly/、/cron.monthly/ 存放着系统预先制定的cron任务
/etc/crontab文件语法如下:
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令
每个字段代表的含义如下:
•Minute 每个小时的第几分钟执行该任务
•Hour 每天的第几个小时执行该任务
•Day 每月的第几天执行该任务
•Month 每年的第几个月执行该任务
•DayOfWeek 每周的第几天执行该任务
•Command 指定要执行的程序
在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
同时,cron支持类似正则表达式的书写,支持如下几个特殊符号定义:
•"*"代表取值范围内的数字,
•"/"代表"每",
•"-"代表从某个数字到某个数字,
•","分开几个离散的数字
举例如下:
5 * * * * ls 指定每小时的第5分钟执行一次ls命令
30 5 * * * ls 指定每天的5:30执行ls命令
30 7 8 * * ls 指定每月8号的7:30分执行ls命令
50 7 * * * root run-parts /etc/cron.daily 每天7:50以root身份执行/etc/cron.daily目录中的所有可执行文件[注:run-parts参数表示,执行后面目录中的所有可执行文件,如果单独执行某个脚本的话,是不需要增加run-parts参数的。]
服务管理
servicecronstart//启动服务
servicecronstop//关闭服务
servicecronrestart//重启服务
servicecronreload//重新载入配置
命令选项
-u指定一个用户,
-l列出某个用户的任务计划
-r删除某个用户的任务
-e编辑某个用户的任务
如:
crontab-u//设定某个用户的cron服务
crontab-l//列出某个用户cron服务的详细内容
crontab-r//删除没个用户的cron服务
crontab-e//编辑某个用户的cron服务
任务分类
•系统工作:系统周期性所要执行的工作,如备份系统数据、清理缓存,系统工作一般都定义在/etc/crontab文件中
•个人工作:某个用户定期要做的工作,如清理3天前的文件
cron用户限制
我们可以对不同用户设置限制,比如允许user1使用cron服务,而user2不允许使用cron服务;可以通过编辑如下两个文件实现这个策略:
•/etc/cron.deny 被记录在此的用户不能使用cron任务
•/etc/cron.allow 被记录在此的用户可以使用cron任务
注意:如果两个文件都不存在,则默认所有用户均可以使用cron服务
其它:
•/var/spool/cron/ 该目录下存放所有用户的cron服务
•/var/log/cron 记录cron运行的日志信息
相关文章
- 3A服务器Linux系统安装FTP服务
- 熟练掌握Linux操作系统:走上成功之路(精通linux)
- 如何检查Linux系统是32位还是64位(怎么看linux是32位还是64位)
- 表查看Linux系统路由表指南(查看linux路由)
- Linux日志清理:让系统运行更顺畅(linux日志清理)
- Linux系统下网络管理软件应用(网络管理软件linux)
- 注意事项Linux系统装机:需要注意的事项(linux系统装机)
- Linux 系统的日志发送方式研究(linux发送日志)
- 深入探索——学习Linux系统(熟悉linux系统)
- 工具Linux系统下网卡探测利器——ifconfig(linux网卡检测)
- 制作Linux系统镜像:一步一步的指导(如何制作linux镜像)
- 发掘Linux行情软件之旅(行情软件linux)
- 形化Linux 系统快速启动,实现图形化用户界面体验(linux启动图)
- 正版 Linux:让系统更安全、可靠(linux正版)
- 从零开始:Linux编程必备软件(linux编程用什么软件)
- Linux系统:开启一个新世界的图标之门(linux系统图标)
- Linux下安装NS2系统指南(linux安装ns2)
- 关闭 Linux 系统防火墙的步骤(关闭linux的防火墙)
- 开启新世界:Linux U盘启动(linux的u盘启动)
- Linux加固:确保系统安全性的新方法(linux加壳)
- 操作系统Linux开启虚拟机的新时代(linux开启虚拟化)
- 学习使用Linux脚本echo输出(linux脚本echo)
- Linux系统使用情况实时查看(linux查看使用情况)
- 命令探索Linux系统中的Touch命令(linux的touch)
- Linux输入输出错误处理方案(linux输入输出错误)
- 开启Linux系统驱动之旅(linux系统驱动开发)
- 降低Linux功耗,打造高效节能系统(linux功耗)
- Linux系统本地端口管理入门(linux 本地端口)
- 如何查看Linux系统下的所有进程(查看linux所有进程)
- 利用Windows操作远程Linux系统(windows远程linux)