首页 > 编程知识 正文

linux定时任务每天8点,linux定时任务 每天执行

时间:2023-05-06 08:15:57 阅读:164864 作者:1973

一. crond命令

crond是linux定期执行程序时使用的命令。 操作系统安装完成后,缺省情况下会启动任务调度命令。 crond命令检查是否有每分钟定期执行的工作,如果有要执行的工作,它会自动执行。

/s无言世界/service crond start //服务开始

/s无言世界/service crond stop //终止服务/s无言世界/service crond restart//重新启动服务

/s无言世界/service crond reload //重新装入配置

/s无言世界/service crond status //查看服务状态

crond读取一个或多个配置文件,包括命令行及其调用时间。

crond的轮廓称为“crontab”,是“cron table”的简称。

crond在三个地方保存在配置文件1,/dqdc/spool/cron/目录下的是每个用户包含root的crontab任务,每个任务都以作者的名字命名。 例如,与tom构建的crontab任务相对应的文件是/dqdc/spool/cron/tom,典型用户最多只能有一个crontab文件。 2、/etc/crontab文件负责安排系统管理员编制的维护系统和其他任务的crontab。 3,名为/etc/cron.d/的目录用于存储要执行的crontab文件或脚本。

3 .权限crontab权限问题/从/dqdc/adm/cron/来看,文件cron.allow和cron.deny的用法如下: 1、如果两个文件都不存在,则只有root用户可以使用crontab命令。 2、如果cron.allow存在,而cron.deny不存在,则只有cron.allow文件中列出的用户才能使用crontab命令,如果没有root用户,root用户也将使用crontab 3 .当cron.allow不存在且cron.deny存在时,只有cron.deny文件中的用户不能使用crontab命令,并且可以由其他用户使用。 4、如果这两个文件都存在,则cron.allow文件中列出而cron.deny中未列出的用户可以使用crontab。 如果两个文件中有相同的用户,则可以使用cron.allow中的crontab,具体取决于cron.allow文件中是否存在该用户

四. crontab命令

crond服务提供crontab命令来设置crond服务。 以下是这个命令的参数和说明:

crontab -u //为某个用户设置crond服务。 典型的root用户在执行此命令时需要

crontab -l //列出某个用户的crond服务详细信息

crontab -r //删除某个用户的crond服务

crontab -e //编辑某个用户的crond服务

例如,root查看其crond设置:crontab -u root -l

例如,root想删除fred的crond设置:crontab -u fred -r

crontab的构成

可以使用crontab -e命令进行编辑,方法是编辑/dqdc/spool/cron下相应用户的cron文件或直接修改/etc/crontab文件

具体格式如下。

minutehourdaymonthdayofweekcommand

分钟、小时、日、月、周的命令

每个字段的含义如下。

Minute在一小时的第几分钟执行此任务? 0-59

Hour每天第几个小时执行这个任务? 0-23

Day每月第几天执行这个任务,1-31

Month每年第几个月执行这个任务,1-12

DayOfWeek每周的第几天执行这个任务? 0-6,0表示星期天,也可以用英语表达。 sun表示星期天,mon表示星期一

Command指定要执行的程序

请记住几个特殊符号的意思:

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

“/”表示“每”,

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

“,”将几个离散的数字分开

例如以下所示。

5***ls指定在第5分钟每小时运行ls命令

35***ls指定每日5:30运行ls命令

378**ls指定在每月8日7:30运行ls

命令

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

30     6       *           *     0     ls            指定每星期日的6:30执行ls命令

30     3     10,20     *     *     ls              每月10号及20号的3:30执行ls命令

25     8-11  *           *     *     ls            每天8-11点的第25分钟执行ls命令

*/15   *       *           *     *     ls            每15分钟执行一次ls命令

30      6     */10    *     *     ls               每个月中,每隔10天6:30执行一次ls命令

50      7       *      *     *     root     run-parts   /etc/cron.daily

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

六.crontab中的输出配置

以上的定时任务执行结果都被输出到对应用户的email中,crond支持将执行结果输出到指定文件中

crontab中经常配置运行脚本输出为:>/dev/null   2>&1,来避免crontab运行中有内容输出。

shell命令的结果可以通过‘> ’的形式来定义输出

/dev/null 代表空设备文件

> 代表重定向到哪里,例如:echo     "123"     > /home/123.txt

1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"

2 表示stderr标准错误

& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

那么重定向输出语句的含义:

1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。

2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

例1:每天5:30执行ls命令,并把结果输出到/jp/test.log文件中

30     5     *     *     *     ls     >/jp/test.log     2>&1

七.crontab与环境变量不要假定crond知道所需要的特殊环境,它其实并不知道。所以你要保证在要执行的shelll脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。所以注意如下3点:

1、脚本中涉及文件路径时写全局路径;

2、脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如:    cat start_cbp.sh#!/无语的世界/sh

source /etc/profile

export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf

/usr/local/jboss-4.0.5/无语的世界/run.sh -c mev &

3、当手动执行脚本OK,但是crontab死活不执行时。这时必须大胆怀疑是环境变量惹的祸,并可以尝试在crontab中直接引入环境变量解决问题。如:0     *     *     *     *     . /etc/profile;/无语的世界/sh     /dqdc/www/java/audit_no_count/无语的世界/restart_audit.sh

八.其他应该注意的问题1、新创建的crond job,不会马上执行,至少要过2分钟才执行。如果重启crond则马上执行。2、

每条 JOB 执行完毕之后,系统会自动将输出发送邮件给当前系统用户。日积月累,非常的多,甚至会撑爆整个系统。所以每条 JOB

命令后面进行重定向处理是非常必要的: >/dev/null  2>&1 。前提是对 Job

中的命令需要正常输出已经作了一定的处理,

比如追加到某个特定日志文件。3、当crontab突然失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行报错    tail -f /dqdc/log/cron。4、千万别乱运行crontab -r。它从Crontab目录(/dqdc/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。5、在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+%Y%m%d’。

附录:

http://www.blogjava.net/freeman1984/archive/2010/09/23/332715.html

http://blog.csdn.net/dancen/article/details/24355287

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。