linux 例行性工作,走进Linux_例行性工作(crontab)

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

引:系统常常会主动进行一些任务,这依靠的就是设置了例行性工作。

根据单词crontab(定时任务)就可以知道 例行性工作 其实就是每天都会干的事。

Linux工作调度的种类例行性的,就是每隔一定的周期要来办的事,利用crontab实现,这个命令所设置的工作将会循环一直进行下去,可循环的时间为分钟,小时,每周,每月或每年等,crontab除了可以使用命令执行外,也可编辑/etc/crontab来支持。至于让crontab可以生效的后台服务是crond这个服务。

突发性的,就是这次做完以后就没有的事,利用at实现,但是这个必须要有atd后台服务支持才行。

Linux上常见的例行性工作进行日志文件的轮替,让旧的数据和新的数据分开存放

日志文件分析logwatch的任务

新建locate的数据库,系统会主动进行updatedb

whatis数据库的建立

删除临时文件

仅执行一次的工作调度:at

at的运行方式

我们使用at这个命令来生成所要进行的工作,并将这个工作以文本文件的方式写入/var/spool/at目录中,该工作便能等待atd这个服务的取用与执行了。但是并不是所有的人都可以进行at工作调度工作的,因为安全。我们可以利用/etc/at.allow与/etc/at.deny这两个文件进行at的使用限制,加上这两个文件后,at的工作情况其实是这样的:先寻找/etc/at.allow这个文件,写在这个文件中的用户才能使用at,没有在这个文件中的用户则不能使用at(即时没有写在at.deny当中)

如果/etc/at.allow不存在,就寻找/etc/at.deny这个文件,若卸载这个at.deny的用户则不能使用at,而没有在这个文件中的用户就可以使用at了

如果这两个文件都不存在,那么就只有root可以使用at这个命令

实际运行单一工作调度

单一工作调度的进行就使用at这个命令,这个命令的运行十分简单!将at加上一个时间即可!范例入下:1

2

3

4

5// 1. at [-mldv] TIME

at noe + 5 minutes // 再过五分钟执行,接下来输入执行的命令,使用ctrl + d 结束。

// 2. at -c 工作号码 // 将第几号工作调出来查看

at -c 1 // 将第一号工作调出来

事实上,当我们使用at时会进入一个at shell的环境来让用户执行工作命令,此时,建议你最好使用绝对路径来执行你的命令,比较不会有问题。

at还有一个很棒的优点就是后台执行的功能,和nohup类似。

at的工作管理 主要是利用下面的命令:1

2

3

4

5# 查询目前主机上面有多少的at工作调度

atq

# 将第3个工作删除

atrm 3

循环执行的例行性工作调度

相对于at是仅执行一次的工作,循环执行的例行性工作调度室友crond这个系统服务来控制的,由于Linux系统上原本就有很多的例行性工作,所以这个系统服务是默认开启的。另外,由于用户自己也可以进行例行性工作调度,所以,Linux可提供用户控制例行性工作调度的命令(crontab)。

用户的设置与使用

为了安全性的问题,与at类似,我们可以限制使用crontab的用户账号。使用的限制数据有:/etc/cron.allow:将可以使用crontab的账号写入其中,若不在这个文件内的用户则不可使用crontab。

/etc/cron.deny:将不可以使用crontab的账号写入其中,若为记录到这个文件中的用户,就可以使用crontab。

以优先级来说,/etc/cron.allow比/etc/cron.deny要优先,而判断上面,两个文件只选择一个来限制而已,因此,建议你只要保留一个即可。

当用户使用crontab这个命令来新建工作调度之后,该项工作就会被记录/var/spool/cron/里面,而且是以账号来区分的。另外,cron执行的每一项工作都会被记录到/var/log/cron这个日志文件中,所以,如果你的Linux不知道是否被植入密码,也可以查询一下这个日志文件。

下面是它的使用范例:1

2

3

4

5

6

7

8

9

10

11

12

13// 1. 用root的身份在每天的12:00和14:00查看主文件夹目录ß

# 编辑crontab的工作内容

crontab -e

# 进入vi界面,每项工作都是一行

0 12,14 * * * ls / // 解释各列含义:

// 1. 分;2. 小时;3. 日期;4. 月份; 5. 周; 6. 命令

// 其中“,”表示分割时段,“-”表示一段时间范围,/n 表示每隔n单位间隔

// 2. 查询crontab任务

crontab -l

// 3. 若要删除一项工作,必须要用crontab -e去编辑,如果想要删除全部工作,如下:

crontab -r

系统的配置文件:/etc/crontab

crontab -e是针对用户的例行性工作来设计的,如果我们要修改系统的例行性任务,就需要编辑/etc/crontab了。

基本上,cron这个服务的最低检测限制是“分钟”,所以cron会每分钟去读取一次/etc/crontab与/var/spool/cron里面的数据内容。

可唤醒停机期间的工作任务

如果例行性工作是在凌晨4点运行的,但是刚好关机了, 你7点开机了,你总不能不管它吧,这就需要用到anacron。

什么是anacron

anacron存在的目的 是处理非24小时一直启动的linux系统的crontab的执行。

anacron也是通过crontab来运行的,因此anacron的运行的时间通常有两个,一是系统开机期间运行,一个是写入crontab的调度中。

anacron使用

anacron的语法如下:1anacron [-sfn] [job]

参考《鸟哥的Linux私房菜》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值