免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: sickcat2004
打印 上一主题 下一主题

crontab 问题 谢谢 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-04-26 16:13 |只看该作者
原帖由 johnny_jiang 于 2006-4-26 15:25 发表
看看文件权限有没有问题, 把你的时间社定写在/etc/crontab里面试试看
试试不用sh调用呢, 本身在crontab里面的SHELL变量就是bash啊

一点建议, 希望有用

谢谢,我放在 /etc/crontab 里面就好啦,但是我不知道为什么那???

论坛徽章:
0
22 [报告]
发表于 2006-04-27 11:55 |只看该作者
最近遇到过一次在CRON中PHP脚本不执行的问题,希望能有点帮助.
在SHELL中的所有命令在/bin/都存在吗,如果没有的话,就在这个目录下做一个软链接.

论坛徽章:
0
23 [报告]
发表于 2006-04-27 13:10 |只看该作者
我也遇到个问题,我想让我的脚本一分钟执行一次,执行一次之后,就成一个僵尸进程了
[rt-invoker.sh] <defunct>,一直在ps -ef里挂着,并且cron也不能再执行了。。
这个脚本单独执行是没问题的。。
大家帮我看看是脚本还是crontab的问题,

不好意思,抢楼主的人气了。。。:)

crontab内容为:
# Execute rt-invoker.sh every minute.
* * * * * /usr/local/rt-vasp/bin/rt-invoker.sh

脚本为:
#!/bin/sh
# description: Invorke all rt-vasp's excutable file when they died.
#              This shell is executed by cron every one minute.
#
# filename:/usr/local/rt-vasp/bin/rt-invoker.sh
# config  :/usr/local/rt-vasp/conf/rt-config

RT_CONFIG=/usr/local/rt-vasp/conf/rt-config

if [ -f "$RT_CONFIG" ];then
        . $RT_CONFIG
        if [ -z "$error_file" ];then
                error_file="error.log"
        fi
else
        timestamp=`date +"%Y-%m-%d %H:%M:%S"`
        echo "${timestamp} $RT_CONFIG not found when executing rt-invoker.sh" >> ${log_path}/${error_file}
        exit 1
fi

export RT_VASP=${rt_vasp}

for prog in $bins
do
        ps -ef | grep "${prog}" | grep -v grep 2>&1 >/dev/null
        ret=$?
        if [ ${ret} = 0 ];then
                continue
        else
                # write log info to error.log
                timestamp=`date +"%Y-%m-%d %H:%M:%S"`
                 ${bins_path}/${prog} & > /dev/null 2>&1
                sleep 5
                ps -ef | grep "${prog}" | grep -v grep 2>&1 >/dev/null
                ret=$?
                if [ ${ret} = 0 ];then
                        echo "${timestamp} Restart ${bins_path}/${prog} successfully" >> ${log_path}/${error_file}
                else
                        echo "${timestamp} Restart ${bins_path}/${prog} failed" >> ${log_path}/${error_file}
                fi
        fi
done
exit 0

论坛徽章:
0
24 [报告]
发表于 2006-04-27 14:05 |只看该作者
原帖由 sickcat2004 于 2006-4-26 16:13 发表

谢谢,我放在 /etc/crontab 里面就好啦,但是我不知道为什么那???


你是通过root来crontab -e的吗?

论坛徽章:
0
25 [报告]
发表于 2006-04-27 14:25 |只看该作者
我是通过root来提交的,通过root有问题吗??

论坛徽章:
0
26 [报告]
发表于 2006-04-27 15:44 |只看该作者
是不是你没有用
chmod ugo+x $yourshell.sh??

论坛徽章:
0
27 [报告]
发表于 2006-04-27 16:49 |只看该作者
我的问题,那位高手能帮我看看啊。。。
实在不好意思楼主,借你的光。。。

论坛徽章:
0
28 [报告]
发表于 2006-04-28 06:24 |只看该作者
原帖由 sickcat2004 于 2006-4-25 14:01 发表
[code]

      1 #!/bin/sh
      2 #Setting
      3 #
      4 #
      5 DBName=web
      6 DBUser=root
      7 DBPasswd=
      8 BackupPath=/root/
      9 LogFile=/root/db.log
     10 DBP ...



mysqldump -u $DBUser --opt $DBName > $DumpFile
=========================
在cron里找不到mysqldump 的路径的

可以试试加上debug,就是隔几行输出些不同信息到一个文件,以便于查找执行到哪个位置

论坛徽章:
0
29 [报告]
发表于 2006-04-28 09:21 |只看该作者

----我也说两句

——手工可行而cron不可行,我的经验是以下二:
1、环境变量——手工运行的环境在crontab调度执行时不存在,所以脚本中应包含环境
2、相对路径——实际上也是环境的问题,哪怕是最常用命令最好也写成绝对路径

——另外,服务是否启动,是否限制该用户使用cron

论坛徽章:
0
30 [报告]
发表于 2006-04-28 13:15 |只看该作者
楼上总结得很好,除错的时候按照这个思路进行基本上就能解决问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP