linux定时任务文件修改,linux 定时任务

1. linux的定时任务设置在/etc/crontab文件中,使用命令查看

cat /etc/crontab

22526d39a1b4b77a29de2b28141ce37b.png

在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。

2. 定时任务的用户设置在/etc/cron.deny 和 /etc/cron.allow 文件中

be6502474b58d36b0bd33c96686aeb5c.png

本机没有设置,因此打印结果如上图所示。

每个用户都会生成一个自己的crontab 文件。这些文件在/var/spool/cron目录下:

b89bedfcb7eca535c5623bee4e8cad53.png

本机的定时任务是root用户,打印出root后的内容如下:

bdbf1b50cf7767501deb7c9e08475264.png

这里要解释某些shell命令的意思:

0 0 * * * find /opt/app/log/ -type f -mtime +30 -exec rm {} \;就是每天0点0分的时候找到/opt/app/log/ 文件下面所有时间大于30天的文件,然后删除它们。

相关的主要知识点:find命令:

find pathname -options [-print -exec -ok] find命令有很多选项或表达式,每一个选项前面跟随一个横杠-。让我们先来看一下该命令的主要选项,然后再给出一些例子。

-name 按照文件名查找文件。

-perm 按照文件权限来查找文件。

-prune 使用这一选项可以使f i n d命令不在当前指定的目录中查找,如果同时使用了-depth选项,那么-prune选项将被find命令忽略。

-user 按照文件属主来查找文件。

-group 按照文件所属的组来查找文件。

-mtime -n or +n按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime选项,但它们都和-mtime选项相似,所以我们在这里只介绍-mtime选项。

-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

-nouser 查找无有效属主的文件,即该文件的属主在/etc/password中不存在。

-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。

-type 查找某一类型的文件,诸如:

b - 块设备文件。

d - 目录。

c - 字符设备文件。

p - 管道文件。

l - 符号链接文件。

f - 普通文件。

-size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。

-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount 在查找文件时不跨越文件系统mount点。

-follow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio 对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

exec命令:

-exec 参数后面跟的是 command命令,注意点如下:

command命令的终止,使用 ';' (分号)来判定,在后面必须有一个 ';'

'{}',使用{}来表示文件名,也就是find前面处理过程中过滤出来的文件,用于command命令进行处理

特别强调,对于不同的系统,直接使用分号可能会有不同的意义, 使用转义符 '\'在分号前明确说明,对于前面我们遇到的问题,主要就是这个原因引起的!

3.cron的语法:

cron文件语法:

分     小时    日       月       星期     命令

0-59   0-23   1-31   1-12     0-6     command     (取值范围,0表示周日一般一行对应一个任务)

记住几个特殊符号的含义:

“*”代表取值范围内的数字,

“/”代表”每”,

“-”代表从某个数字到某个数字,

“,”分开几个离散的数字 4.任务调度设置文件的写法

可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件

具体格式如下:

Minute Hour Day Month Dayofweek   command

分钟     小时   天     月       天每星期       命令

每个字段代表的含义如下:

Minute             每个小时的第几分钟执行该任务

Hour               每天的第几个小时执行该任务

Day                 每月的第几天执行该任务

Month             每年的第几个月执行该任务

DayOfWeek     每周的第几天执行该任务

Command       指定要执行的程序

在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选

字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。

举例如下:

5       *       *           *     *     ls             指定每小时的第5分钟执行一次ls命令

30     5       *           *     *     ls             指定每天的 5:30 执行ls命令

30     7       8         *     *     ls             指定每月8号的7:30分执行ls命令

30     5       8         6     *     ls             指定每年的6月8日5:30执行ls命令

30     6       *           *     0     ls             指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,

以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

30     3     10,20     *     *     ls     每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]

25     8-11 *           *     *     ls       每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]

*/15   *       *           *     *     ls         每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]

306     */10         *     *     ls       每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]

每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件

50   7       *             *     *     root     run-parts     /etc/cron.daily   [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]

5. 新增调度任务

新增调度任务可用两种方法:

1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。

2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

3) 在/var/spool/cron目录下对应的用户文件中添加相关的shell调度命令:

c20f135db23e38dd726b1b23f04e5c3c.png

6. 查看调度任务

crontab -l //列出当前的所有调度任务

crontab -l -u jp   //列出用户jp的所有调度任务

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值