文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>例行性命令解析

例行性命令解析

时间:2010-09-16  来源:cup

例行性命令就是任务计划,在计算机中设置一些任务计划,告诉计算机在某个时间自动执行哪些命令,设置例行性命令可以有效的减少系统管理员繁琐的工作,例行性命令使用举例如下:

程序分析:每隔一段时间,就自动对系统中的进程进行分析,查看是否有僵尸进程,如果有,将其删除,保证内存空间的有效使用。

Locate数据库的建立:locate搜索的速度非常快,是因为linux将文件和路径都记录在数据库中,使用locate命令的时候,直接指向数据库/var/lib/slocate/slocate.db,所以要定时更新此数据库,不然刚刚更新的一些文件,没有被更新到数据库中,有可能找不到。

例行性命令有两种:at和cron

At:仅执行一次就从linux系统任务分配中消失。

Cron:工作将周期性的持续执行,每隔一段时间就会执行一次。

执行例行性命令之前需将atd和crond服务开启,#chkconfig –list|grep atd(crond)查看,

#/etc/init.d/atd start开启服务

At:仅执行一次的任务

首先查看/etc/at.allow和/etc/at.deny文件,在/etc/at.allow中的帐号才可以使用at命令,如没有/etc/at.allow则查看/etc/at.deny在此文件中的帐号则不能使用at命令。

[root@localhost ~]# at 15:20 2010-9-16    #设置at任务

at> /bin/sync

at> reboot

at> <EOT>                        #at任务输入完毕后,ctrl+d退出

job 2 at 2010-09-16 15:20

[root@localhost ~]# atq                #使用atq查看当前有哪些at任务分配

2 2010-09-16 15:20 a root            #2010/9/16 15:20有一项工作,该工作的执行者为root,该工作的工作号为2

如果发现命令输入错误,如想取消上述关机命令,则可以:

[root@localhost ~]#atrm 2            #取消工作号为2的工作

[root@localhost ~]#atq                #查看当前有哪些任务在执行,没有则表明已经取消该工作

Crontab:例行性周期执行的任务

首先查看/etc/cron.allow和/etc/cron.deny文件,在/etc/cron.allow文件中的账户可以使用crontab命令,如没有/etc/cron.allow则查看/etc/cron.deny在此文件中的账号则不能使用cron命令。

针对用户的例行性任务

[root@localhost ~]#crontab [-u username] [-l|-e|-r]

-u:只有root才能执行这个命令,即帮助其他用户创建/删除crontab。

-e:编辑crontab,即进入crontab编辑模式。

-l:查看crontab文件的内容

-r:删除crontab文件的内容;注:要是删除某一项的内容,只能使用crontab –e手动删除

基本格式:

*      *      *      *      *      command
分      时      日      月      周      命令

0~59    0~23    1~31    1~12    0~7

*表示任何时间都接受;任何时间都可以执行该命令

,表示分隔时段;0 2,4 * * * command 表示2点和4点都会执行该命令

-表示一段时间范围内;5 2-4 * * * command 表示2点和4点内的每小时5分钟都会执行该命令

/n表示每隔多长时间单位;*/5 * * * *command表示每隔5分钟执行一次该命令

[root@localhost ~]# cat hello

#!/bin/bash

#hello

echo hello

[root@localhost ~]# crontab -l

0 21 * * * /root/./hello> /root/a        #每天21点将hello脚本信息输出到/root/a中,默认情况屏幕上看不到任何输出,cron把任何输出都email到root的信箱中。

针对系统的例行性任务

使用root对/etc/crontab进行编辑,可以设置系统的例行性任务。

设置完/etc/crontab文件需要重启crond服务才能使设置生效 /etc/init.d/crond restart

[root@localhost bin]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

 

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

MAILTO=root:当/etc/crontab文件中的例行性命令发生错误或执行结果有STDOUT/STDERR时,默认由系统发送一封邮件给root,可以将MAILTO=后面的地址改成自己邮箱地址,如[email protected],以随时了解系统情况。

PATH=/sbin:/bin:/usr/sbin:/usr/bin:输入执行文件的搜索路径,保持默认即可。

HOME=/:使用者运行的路径,此处为根目录

01 * * * * root run-parts /etc/cron.hourly:

root表示执行命令的身份为root,可以改成其他用户。

run-parts后面接/etc/cron.hourly目录中所有可执行文件;即每小时01分,系统会以root身份在/etc/cron.hourly下执行所有的可执行文件。

可以将每天需要执行的命令放置到/etc/cron.daily中,无需使用crontab –e。

/etc/crontab文件中的命令支持两种执行命令的方式;

直接执行命令:

0 1 * * *root /root/./hello> /root/a            #以root身份每天1点执行hello脚本,将其输出到文件a中

目录规划:

*/5 * * * *root run-parts /root/five            #建立/root/five目录,将每隔五分钟执行一次的执行文件放置在此目录中,每隔五分钟执行目录中的所有可执行文件

run-parts,如果去掉此参数,后面就可以写要运行的某个脚本名,而不是目录名

30 21 * * * /etc/init.d/network restart    每晚21:30重启network服务

30 21 * * */usr/local/etc/rc.d/atd restart每晚21:30重启network服务

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载