Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5705181
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类: LINUX

2007-04-19 15:25:46

    今天在改otter的时候,发现了一个crontab的问题。一直以为我们的脚本没有问题,但是在vilab
跑的时候总是出问题。
    手工运行脚本没有问题,但是crontab却有问题。不解!
我的脚本是每半个小时去统计流量的信息,但是半个小时之后,我发现那个文件是空的,不解!
手工运行脚本,统计没有问题,文件有内容。
    但是半个小时之后,我发现按照脚本运行,那个文件会备份。结果备份文件有内容,但是新生成的文件
大小还是0。郁闷!
    思考中。。。。。。
    就是脚本中iptables-save这一句有问题,问题在那里呢?没有执行,不可能后面的语句都执行了。
难道是执行出错了~~~
    肯定是运行出错了。问题在哪里呢?难道是路径问题?
crontab下面的脚本中有时候,需要以全路径来指定命令。iptables-save换成/sbin/iptables-save就OK了。

实际上,这个问题是因为crontab指定的人物是由cron这个系统用户来运行的,她找不到一些系统命令,是因为它的
$PATH的问题。
解决这个问题下面几种方法:
1、在脚本中使用全路径
2、在crontab中指定任务的时候,使用/bin/sh xxx.sh
3、修改代码,给cron用户的$PATH增加一些路径

下面是从ChinaUnix上面摘录的一段话:
crontab -e 与修改 /etc/crontab 所用的格式不一样,后者需要指定执行身份,但是前者不用。
另外一般不会鼓励去改 /etc/crontab,而会使用 crontab -e 来管理比较单纯方便。
一般用crontab -e改用户的cron,或者直接编辑/var/spool/cron/用户
具体的任务一般不放在/etc/crontab中的

阅读(1510) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~