admin 管理员组文章数量: 1086019
linux下的计划任务
Linux 计划任务
--cron介绍
cron是linux下的计划任务工具,类似于windows的计划任务。
基本原理
守护进程cron加载crontab,并按时执行其中的命令。
crontab格式
-
minute — 分钟,从 0 到 59 之间的任何整数
-
hour — 小时,从 0 到 23 之间的任何整数
-
day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)
-
month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)
-
dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)
-
command — 要执行的命令(命令可以是 ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。)
在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。
整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。
用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。
正斜线(/)可以用来指定间隔频率。在范围后加上 /<integer > 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。
开头为井号(#)的行是注释,不会被处理。
操作
crontab -l
列出所有计划任务
crontab -e
编辑计划任务
实例
$ crontab -e
输入:
0-59/1 * * * * date >> ~/tmp.txt
#每分钟将日期写到文件~/tmp.txt
例2:
1.#touch /usr/local/bin/clear
#chmod 777 clear
新建一个可执行文件clear
2.vi clear
编辑clear文件如下:
#!/bin/sh
find /usr/local/backups -mtime +10 -name "*.*" -exec rm -rf {} /;
ok,保存退出
3.#crontab -e
将clear文件加入到系统计划任务,到点自动执行
输入:
* 2 * * */usr/local/bin/clear
这里的设置是每天凌晨2点执行clear文件进行数据清理,可以研究一下cron,制定自己需要的计划任务
备注
在 /etc/crontab 文件中,它使用 run-parts 脚本来执行 /etc/cron.hourly 、/etc/cron.daily 、/etc/cron.weekly 和 /etc/cron.monthly 目录中的脚本,这些脚本被相应地每小时、每日、每周、或每月执行。这些目录中的文件应该是 shell 脚本。
cron不直接支持GUI程序。
-----------------------------
crontab 命令有三种形式的命令行结构:
crontab [-u user] [file]
crontab [-u user] [-e|-l|-r]
crontab -l -u [-e|-l|-r] 第一个命令行中,file是命令文件的名字。如果在命令行中指定了这个文件,那么执行crontab 命令,则将这个文件拷贝到crontab s目录下;如果在命令行中没有制定这个文件,crontab 命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab 目录下。
命令行中-r选项的作用是从/usr/spool/cron/crontab s目录下删除用户定义的文件crontab ;
命令行中-l选项的作用是显示用户crontab 文件的内容。
使用命令crontab -u user -e命令编辑用户user的cron(c)作业。用户通过编辑文件来增加或修改任何作业请求。
执行命令crontab -u user -r即可删除当前用户的所有的cron作业。
作业与它们预定的时间储存在文件/usr/spool/cron/crontab s/username里。username使用户名,在相应的文件中存放着该用户所要运行的命令。命令执行的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。文件里的每一个请求必须包含以spaces和tabs分割的六个域。前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,称为命令字段,其中包括了crontab 调度执行的命令。
第一道第五个字段的整数取值范围及意义是:
0~59 表示分
1~23 表示小时
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
/usr/lib/cron/cron.allow表示谁能使用crontab 命令。如果它是一个空文件表明没有一个用户能安排作业。如果这个文件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用户才可以使用crontab 命令。如果它是一个空文件表明任何用户都可安排作业。两个文件同时存在时cron.allow优先,如果都不存在,只有超级用户可以安排作业。
注意:crontab支持的环境变量很少 ,并且不会加载用户环境变量, 如果跑脚本需要用到环境变量,需要在脚本里面用export把环境变量指定一下。
更详细的可以参见 /?q=node/209
本文标签: linux下的计划任务
版权声明:本文标题:linux下的计划任务 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1686731961a30515.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论