Linux例行性工作排程

1.例行性排程有两中方式:

1)每隔一定周期就要来办的事项,用crontab指令实现

2)突发性的,就是这次做完后,就没有了用at指令实现,不过这个需要atd服务的支持

2.Linux常见的例行性任务有:

1)进行登录档的轮替:Linux会将系统所发生的各种信息都记录下来,这就是登录档,随着系统的运行这些登录档会越来越大,导致系统读写效能下降,因此就需要将这些数据按时间的新旧分别存放,这就是登录档的轮替任务

2)登录文件分析:如果系统发生了软件问题,硬件错误,资源安全问题等,绝大部分的错误都会被记录到登录文件中,因此系统管理员的重要任务之一就是分析登录档。但你不可能手动透过vim等软件去监视登录文件,因为数据太复杂了,因此系统提供了logwatch这只程序,来主动分析登录信息。

3)locate数据库的建立:存放在/var/lib/mlocate中,系统会主动在规定时间调用updatedb这条指令,更新这个数据库

3)whatis数据库的建立

4)RPM软件登录文件的建立:RPM是一种软件管理机制。由于系统可能会常常变更软件,包括软件的新安装,非经常性更新等,都会造成软件文件名的差异。为了方便未来追踪,系统也帮我们将文件名做个排序的记录。有时候系统也会透过排程来帮忙RPM数据库的重新建置

5)移除暂存档:软件运行会产生一些临时文件,但软件关闭后,这些临时文件可能还存在,如果超出一定的时间后,这个暂存盘就没有效用了,此时移除这些暂存盘就是一件重要的工作。否则磁盘会很快被耗光。

6)与网络服务相关的分析行为:如果安装了www网站服务软件,那么Linux通常会主动分析该软件的登录文件。同时某些凭证与认证的网络信息是否过期问题,我们的Linux系统也会帮我们自行检查

3.atd的启动与at的运行方式:

1)启动方式:/etc/init.d/atd restart(start ,stop)

2)at的运行方式:

a)先找寻/etc/at.allow这个档案,写在这个档案中的使用者才能使用at,没有在这个档案中的使用者则不能使用at

b)如果/etc/at.allow不存在,就寻找/etc/at.deny这个档案,若写在这个at.deny的使用者则不能使用at,而没有在这个at.deny档案中的使用者,就可以使用at这个指令了

c)如果两个档案都不存在,那么只有root可以使用at这个指令

3)通常系统默认所有的用户都是可信任的,因此系统通常会保留一份空的/etc/at.deny档案,不过万一你不希望某些使用者使用at指令,将那个使用者的账号写入/etc/at.deny即可,一个账号一行

4.at [-mldv] TIME;at -c 工作号码:单一工作排程,参数,

1)at的工作完成后,及时没有输出信息,也要给使用者发邮件,告知使用者该工作已完成

2)-l:atq的别名,列出目前系统上面的所有该用户的at排程

3)-d:at -d相当于atrm ,可以取消一个在at排程中的工作

4)-v:可以使用较明显的时间格式列出at排程中的任务栏表

5)-c:可以列出后面接的该项工作的实际指令内容。

6)TIME:时间格式,这里可以定义出设么时候要进行at这项工作的时间,格式有

HH:MM,在今日的HH:MM时刻进行,若该时刻已超过,则明天的这个点进行此工作

HH:MM YYYY-MM-DD,强制规定在某年某月的某一天的特殊时刻进行该工作

HH:MM[ap|pm] [Month][Date],强制在当前年,指定月日进行

HH:MM[ap|pm]+number[minutes|hours|days|weeks],可以用now指代当前时间,即在某个时刻后的多久执行该操作。

7)当我们使用at时会进入一个atshell的环境来让用户下达工作指令,此时,建议你最好使用绝对路径来下达你的指令,比较稳定,因为指令的下达与PATH变量有关,同时与当时的工作目录还有关。at在运行时,会跑到当时下达at指令的那个工作目录去执行指令

8)在at指令中下达echo "Hello"。不会显示到屏幕上,因为at的执行与终端机环境有关,而与标准输出或标准错误输出无关,如果想在终端机上看到信息可以通过echo "Hello" > /dev/tty1这个指令来实现。

9)由于at工作排程的使用上,系统会将该项at工作独立出你的bash环境中,直接交给系统的atd程序来接管,因此,当你下达了at的工作之后就可以立刻脱机了,剩下的工作交给Linux管理即可。如果有长时间的网络管理工作时,使用at可以让你免除网络断线的困扰。

5.batch:系统有空时才进行背景任务。batch是利用at来进行指令的下达。只是加入了一些控制参数。这个batch会在CPU工作负载小于0.8的时候,才进行工作你所下达的工作任务。负载是指CPU在单位时间所负责的工作数量(进程数),不同于CPU利用率,比如有一只程序他需要一直使用CPU的运算功能,那么此时CPU的使用率可能达到100%,但是CPU的工作负载则是趋近于1,如果同时执行两只程序,则负载是2

所以CPU的负载反映的是CPU需要在多少个不同工作之间切换。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/17052.html