linux下的周期性任务(任务计划)-阅linux系统管理技术整理
2015-06-14 11:54
603 查看
周期性进程(任务计划)
任务计划:在未来的某个时间点,执行某个或一系列任务。执行结果会以邮件的形式发送给管理员
当cron启动的时候,他会读取配置文件,把它们保存在内存中,然后,转入睡眠状态。每一分钟,croon会醒来一次,检查crontab文件的修改时间。重新载入任何被改过的文件,然后在返回睡眠状态,执行这一分钟安排的任务。
1、配置文件:crontab,是cron table的缩写
cron在三个地方查找文件,/var/spool/cron,/etc/cron.d,/etc/crontab,每个用户的crontab文件都存放在/var/spool/cron目录下。一个用户对应一个文件。而系统用户的则放在/etc/cron.d或/etc/crontab下
2、系统的cron任务
在/etc/cron,/etc/cron.d下配置,这是有系统管理员分配的,这两个目录时平行的关系。
3、其他普通用户的任务
会在/var/spool/cron下生成该普通用户的用户名对应的一个以用户名命名的文件。
4、crontab文件的格式
minute hour day month weekday [username] command
分钟 小时 天 月 周 用户 所执行的命令
分钟:1-59
小时:1-23
天:1-31
月:1-12
周:0-6(0为星期天)
每个和时间相关的字段可以有(时间通配符):
* :可以代表所有的
- :[1-5]分钟,可以代表一个范围
, :逗号隔开,表示不连续的多个时间点
整数 :则精确匹配
/# :对应的范围内每多久一次,20 /2 * * 1,周一的每两个小时,每隔20分钟执行一次
实例:
1、45 10 * * 1-5
从周一到周五,上午10.45
2、0,30 * 13 * 5
weekday和day都指定,满足两个条件中的一个即可。
上面的则代表:星期五的每半个小时,也可以为每月13号的每半个小时
3、30 2 * * 1 (cd /users/joe/project; make)
每周一的凌晨2.30,会在/users/joe/project目录下运行make
4、20 1 * * * find /tmp -atime +3 -exec rm -f { } ';'
每天的1.20,删除/tpm目录下,3天没有被访问的文件
crontab管理
crontab的所有操作都是对当前用户而言:
crontab -l:列出当前用户的任务
crontab -e:编辑某个任务(以当前用户的身份),也可用于新建任务
crontab -r:移除所有任务
crontab -u username:管理其他用户
用/etc/cron.allow和/etc/cron.deny这两个配置文件可以指定哪些用户可以提交crontab文件。
cron的常见用途
1、清理文件系统
-xdev:确保find命令不会执行到根文件系统以外的文件系统中去。
-type f:linux内核源代码包括一个目录也叫做core,不应该删除它。
其他的日程安排程序:ANACRON
anacron:cron的补充,弥补了cron应系统当机或机器时间出现不连续的情况而没有执行到相应的命令。
任务计划:在未来的某个时间点,执行某个或一系列任务。执行结果会以邮件的形式发送给管理员
当cron启动的时候,他会读取配置文件,把它们保存在内存中,然后,转入睡眠状态。每一分钟,croon会醒来一次,检查crontab文件的修改时间。重新载入任何被改过的文件,然后在返回睡眠状态,执行这一分钟安排的任务。
1、配置文件:crontab,是cron table的缩写
cron在三个地方查找文件,/var/spool/cron,/etc/cron.d,/etc/crontab,每个用户的crontab文件都存放在/var/spool/cron目录下。一个用户对应一个文件。而系统用户的则放在/etc/cron.d或/etc/crontab下
2、系统的cron任务
在/etc/cron,/etc/cron.d下配置,这是有系统管理员分配的,这两个目录时平行的关系。
3、其他普通用户的任务
会在/var/spool/cron下生成该普通用户的用户名对应的一个以用户名命名的文件。
4、crontab文件的格式
minute hour day month weekday [username] command
分钟 小时 天 月 周 用户 所执行的命令
分钟:1-59
小时:1-23
天:1-31
月:1-12
周:0-6(0为星期天)
每个和时间相关的字段可以有(时间通配符):
* :可以代表所有的
- :[1-5]分钟,可以代表一个范围
, :逗号隔开,表示不连续的多个时间点
整数 :则精确匹配
/# :对应的范围内每多久一次,20 /2 * * 1,周一的每两个小时,每隔20分钟执行一次
实例:
1、45 10 * * 1-5
从周一到周五,上午10.45
2、0,30 * 13 * 5
weekday和day都指定,满足两个条件中的一个即可。
上面的则代表:星期五的每半个小时,也可以为每月13号的每半个小时
3、30 2 * * 1 (cd /users/joe/project; make)
每周一的凌晨2.30,会在/users/joe/project目录下运行make
4、20 1 * * * find /tmp -atime +3 -exec rm -f { } ';'
每天的1.20,删除/tpm目录下,3天没有被访问的文件
crontab管理
crontab的所有操作都是对当前用户而言:
crontab -l:列出当前用户的任务
crontab -e:编辑某个任务(以当前用户的身份),也可用于新建任务
crontab -r:移除所有任务
crontab -u username:管理其他用户
用/etc/cron.allow和/etc/cron.deny这两个配置文件可以指定哪些用户可以提交crontab文件。
ls /etc/cron* cron.hourly/ cron.weekly/ cron.daily/ cron.monthly/这四个目录下有相应的程序,它们会在相应的时间运行(有后缀名可知),这是系统自己的周期性任务
cron的常见用途
1、清理文件系统
find / -xdev -type f '(' -name core -o name 'core.[0-9]*' ')' -atime +7 -exec rm -f { } ';'删除一个星期中都没有被访问的core映像文件。
-xdev:确保find命令不会执行到根文件系统以外的文件系统中去。
-type f:linux内核源代码包括一个目录也叫做core,不应该删除它。
find / -xdev -atime + 3 '(' -name '#*' -o -name '.#*' -o -name '*.CKP' -o -name '*~' -o -name '.nfs*' ')' -exec rm -f { } ';'删除哪些用#、.#或者.nfs开头的文件或以~以及.CKP结尾且三天没有被访问的文件
cd /tmp; find . ! -name . ! -name lost+found -type d -mtime +3 -exec /bin/rm -rf { } ';'递归删除/tmp下在72小时内没有被修改过的所有子目录
其他的日程安排程序:ANACRON
anacron:cron的补充,弥补了cron应系统当机或机器时间出现不连续的情况而没有执行到相应的命令。
相关文章推荐
- ruby中执行周期性任务(定时任务)的3种方法
- 解析Ubuntu下crontab命令的用法
- PHP cron中的批处理
- linux crontab实例分析
- 关于crontab的使用详解
- WinRAR 任务计划 免费定时备份
- PowerShell脚本实现添加、修改任务计划的例子
- Oracle数据库设置任务计划备份一周的备份记录
- php版本的cron定时任务执行器使用实例
- Web服务器日志统计分析完全解决方案
- MySQL定时备份之使用Linux下的crontab定时备份实例
- 使用cwRsync实现windows下服务器文件定时同步备份(附错误处理方法)
- 让Linux下的cron以秒为单位执行shell脚本的3种方法
- linux下使用crontab实现定时PHP计划任务失败的原因分析
- 解析crontab php自动运行的方法
- linux使用crontab实现PHP执行计划定时任务
- Linux中使用Crontab定时监测维护Tomcat应用程序的方法
- linux下用cron定时执行任务的方法
- 如何让django方法自动地定期执行
- 任务调度的使用crontab