Linux定时任务系统Cron使用总结

本文介绍Linux下的定时执行工具Cron的使用方法,包括服务的启动、停止与重启,以及如何通过配置文件执行特定任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原帖地址:http://www.roboticfan.com/blog/user_2005/104/2010129213113.shtml

 

Linux定时任务系统Cron使用总结

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

  /sbin/service crond start //启动服务

  /sbin/service crond stop //关闭服务

  /sbin/service crond restart //重启服务

  /sbin/service crond reload //重新载入配置

  你也可以将这个服务在系统启动的时候自动启动:

  在/etc/rc.d/rc.local这个脚本的末尾加上:

  /sbin/service crond start

/etc/crontab 文件配置cron cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还要每分钟读一次/etc/crontab,因此我们配置这个文件也能运用 cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。

每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。

不能直接编辑修改文件/etc/crontab,要用 crontab -e 编辑/安装,而不是直接修改 /etc/crontab 。安装好的 crontab 可以用 crontab -l 查看,并不在 /etc/crontab 里面(在 debian 系统里是在 /var/spool/cron/crontabs/ 下面,每个用户都可以有自己的

如果直接编辑,就会遇到如下的问题,ant 命令在cron里无效,但在命令行里有作用

我在/etc/crontab里面写了这么一段:
00 20 * * * root ant -file /home/ant/antcvs/build.xml
用来自动运行ant命令,可是没有反应,第二天一看,并没有运行

/etc/crontab

00 21 * * * root perl /home/devtest/work/deploy.pl -r WebServer/branch -d WebDesign/GagmeData/DevGameData -b 1.2.10 >> /home/devtest/work/deploy.log 2>&1

记住2>&1很有用,会打印出一些标准输入输出中的异常信息

新增内容:crontab -e ,不需要再加root 账户名

00 21 * * * perl /home/devtest/work/deploy.pl  -r WebServer/branch -d WebDesign/GagmeData/DevGameData -b 1.2.10 >> /home/devtest/work/deploy.log 2>&1

为21点去执行这个命令行,执行打印结果追加到deploy.log 需要改动的是大分支版本号1.2.10

. tail -f /var/log/cron 查看crontab的运行日志

如果加入cron任务的命令行或者程序有用到环境变量的,比如ant,perl,svn,则需要在最开始加入环境变量

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/j2sdk1.4//bin [最好把全部的从环境变量中拷贝过来]
MAILTO=root
HOME=/root
发现SVN在cron里也无效,但命令行中有效,查得原因如下:

1.需要在svn 命令里加password username

svn up $root/$branch --username jiangguilong --password 6543244

2.编码的问题,则需要在环境变量中LANG=zh_CN.UTF-8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值