linux下的计划任务

Linux 计划任务
    --cron介绍

    cron是linux下的计划任务工具,类似于windows的计划任务。

基本原理
    守护进程cron加载crontab,并按时执行其中的命令。

crontab格式

minute   hour   day   month   dayofweek   command
  • 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把环境变量指定一下。

 

 

更详细的可以参见 http://www.linuxsir.org/main/?q=node/209

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值