linux定时运行命令脚本——crontab

4 篇文章 0 订阅
不久前,用lxr 搭建了android 源码的索引平台,需要定时更新分支代码,于是采用linux 定时运行命令脚本来实现的。

Linux中,周期执行的任务一般由cron这个守护进程来处理 ps -ef | grep cron
cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。

我的环境是ubuntu 10.10 ,cron配置文件在 [b]/var/spool/cron/crontabs[/b]目录,目录下存放的是每个用户(包括root)的crontab任务,每个任务以创建者的名字命名,比如我的用户名beaver建的crontab任务对应的文件就是[b]/var/spool/cron/crontabs/beaver[/b]。

编辑crontab文件,crontab 文件格式是
[b]minute hour day-of-month month-of-year day-of-week commands[/b],合法值是 00-59 00-23 01-31 01-12 0-6 (0 is sunday)

例如 每天早上6点打印 Good morning.
[b]0 6 * * * echo "Good morning." >> /tmp/test.txt[/b] //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

另外一个很重要的点:[b]如何避免绝对路径复杂的设置?[/b]
例如我想执行某个路径下的sh 脚本,如果我设置为:
30 * * * * /home/beaver/indexed-scr/branch_name/fresh.sh
[color=red]在日志文件中提示找不到 xxx.sh 路径[/color]
这是因为在crontab中使用了绝对路径执行脚本 fresh.sh,因此在脚本 fresh.sh 中引用的其它脚本也都需要使用绝对路径,才能被crontab找到并执行

而采用如下设置可以避免该错误
[b]30 * * * * cd /home/beaver/indexed-scr/branch_name && ./fresh.sh[/b](建议使用此方式,先进入该目录,然后在执行脚本;否则,执行脚本中的其它脚本都需要加绝对路径)

以上是我工作中用到的几点,关于crontab 的更多设置 请参考如下链接:
[url]http://blog.csdn.net/sunboy_2050/article/details/6817019[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值