linux定时执行脚本

11/28 04:13:02 来源网站:268辅助卡盟网

sh -x strangescript

这将执行该脚本并显示所有变量的值。

shell还有一个不需要执行脚本只是检查语法的模式。可以这样使用:

sh -n your_script

这将返回所有语法错误。

RedhatlinuxAS 3 下定时执行任务

二、cron调度进程

c r o n是系统主要的调度进程,可以在无需人工干预的情况下运行作业。有一个叫做

c r o n t a b的命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个c r o n t a b文件

来保存调度信息。可以使用它运行任意一个s h e l l脚本或某个命令,每小时运行一次,或一周

三次,这完全取决于你。每一个用户都可以有自己的c r o n t a b文件,但在一个较大的系统中,

系统管理员一般会禁止这些文件,而只在整个系统保留一个这样的文件。系统管理员是通过

c r o n . d e n y和c r o n . a l l o w这两个文件来禁止或允许用户拥有自己的c r o n t a b文件。

3.1.1 crontab的域

为了能够在特定的时间运行作业,需要了解c r o n t a b文件每个条目中各个域的意义和格式。

下面就是这些域:

第1列分钟1~5 9

第2列小时1~2 3(0表示子夜)

第3列日1~3 1

第4列月1~1 2

第5列星期0~6(0表示星期天)

第6列要运行的命令

crontab的范例格式:

下面是c r o n t a b的格式:

分< >时< >日< >月< >星期< >要运行的命令

其中< >表示空格。

C r o n t a b文件的一个条目是从左边读起的,第一列是分,最后一列是要运行的命令,它位

于星期的后面。

在这些域中,可以用横杠-来表示一个时间范围,例如你希望星期一至星期五运行某个作

业,那么可以在星期域使用1 - 5来表示。还可以在这些域中使用逗号“,”,例如你希望星期一

和星期四运行某个作业,只需要使用1 , 4来表示。可以用星号*来表示连续的时间段。如果你

对某个表示时间的域没有特别的限定,也应该在该域填入*。该文件的每一个条目必须含有5

个时间域,而且每个域之间要用空格分隔。该文件中所有的注释行要在行首用#来表示。

crontab条目举例

这里有c r o n t a b文件条目的一些例子:

30 21* * * /apps/bin/cleanup.sh

上面的例子表示每晚的2 1 : 3 0运行/ a p p s / b i n目录下的c l e a n u p . s h。

45 4 1,10,22 * * /apps/bin/backup.sh

上面的例子表示每月1、1 0、2 2日的4 : 4 5运行/ a p p s / b i n目录下的b a c k u p . s h。

10 1 * * 6,0 /bin/find -name "core" -exec rm {} ;

上面的例子表示每周六、周日的1 : 1 0运行一个f i n d命令。

0,30 18-23 * * * /apps/bin/dbcheck.sh

上面的例子表示在每天1 8 : 0 0至2 3 : 0 0之间每隔3 0分钟运行/ a p p s / b i n目录下的d b c h e c k . s h。

0 23 * * 6 /apps/bin/qtrend.sh

上面的例子表示每星期六的11 : 0 0 p m运行/ a p p s / b i n目录下的q t r e n d . s h。

你可能已经注意到上面的例子中,每个命令都给出了绝对路径。当使用c r o n t a b运行s h e l l

    暂无相关资讯
linux定时执行脚本