免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1649 | 回复: 5
打印 上一主题 下一主题

关于crontab不能正常运行的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-25 14:26 |只看该作者 |倒序浏览
小弟刚学习shell没几天,请高手们指教。
小弟编了个shell,用bash可以运行:
bash -x filename
然后添加到crontab里:
30 8,10,11* * * bash -x /path/filename
却发现运行的结果跟手动的不一样,天哪,怎么回事?而且我用sh -x filename会有提示失败。请高手们看看我这个新手卡在哪里了~拜谢!~急啊 搞了快一天了!~

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-01-25 14:29 |只看该作者
你在 /path/filename
裡面多加一行在前頭:
source ~/.bash_profile
再看看?

论坛徽章:
0
3 [报告]
发表于 2007-01-25 14:33 |只看该作者
您是说变成:
30 8,10,11* * * bash -x source ~/.bash_profile/path/filename
这样子吗?

论坛徽章:
0
4 [报告]
发表于 2007-01-25 14:34 |只看该作者
刚试了下,这样就无法运行了。
我是solaris 9系统的。
困惑啊~

论坛徽章:
0
5 [报告]
发表于 2007-01-25 14:40 |只看该作者
以下是我昨天写的shell
#
#发送邮箱满的警告邮件给对应的用户 V1.0
#

repeated_ID=/etc/mail/warning_mail/repeated_id              #重复的username
report=/etc/mail/warning_mail/ununiq_report                    #有重复username的report
report_bak="/etc/mail/warning_mail/ununiq_report.bak"    #副本
warning=/etc/mail/warning_mail/warning                          #邮箱爆的警告邮件
userName=/etc/mail/warning_mail/username                   #邮箱爆的username
message=/etc/mail/warning_mail/message                      #邮箱爆的原始资料

userNames=$(cat "$userName")
postMaster=vinciho@sinomos.com
userIDs=/etc/mail/warning_mail/userIDs
sysUser=/etc/passwd

repquota -a -v | grep "+-" | cut -c0-10 > "$message"
more $message | sed 's/ //g' > "$userName"
sort -o "$userName" "$userName"
sort $userName | uniq -d > "$repeated_ID"

if [ -s $repeated_ID ]
then
        echo "有重复username"
        cp "$report" "$report_bak"
        more "$repeated_ID" >> "$report_bak"
        mail $postMaster < "$report_bak"
        > "$report_bak"
else
        echo "username is unique"
        > "$userIDs"

        for id in $userNames
        do
                a=$(more $sysUser | grep "^$id" | wc -l)
                a=$(echo $a | sed 's/ //g')

                if [ "$a" -eq 0 ]
                then
                        echo "disc quota exceed program error1" | mail $postMaster
                elif [ "$a" -eq 1 ]
                then
                        more $sysUser | grep "^$id" | cut -d: -f1 >> $userIDs
                else
                        b=$(more $sysUser | grep "^$id:" | wc -l)
                        b=$(echo $b | sed 's/ //g')

                        if [ "$b" -eq 1 ]
                        then
                                more $sysUser | grep "^$id:" | cut -d: -f1 >> $userIDs
                        else
                                echo "$id 有问题,请查看!" | mail $postMaster
                        fi
                fi
        done
        mail $(cat "$userIDs") < "$warning"
        echo "以下用户的警告邮件(邮箱爆)已发送完毕: $(cat "$userIDs")" | mail $postMaster
        echo $(date) >> warning.log
        echo "以下邮箱帐号已被警告:" >> warning.log
        echo "$userIDs" >> warning.log
        echo "----------------------------------------" >> warning.log
fi
echo "run over"

论坛徽章:
0
6 [报告]
发表于 2007-01-25 15:20 |只看该作者
找到原因了,只是不知道为什么会这样。
我把前几句中的more改成cat,就OK了,真是奇怪了~我一直以为这两个命令在查看的时候都一样的。汗~
唱独角戏一样 ~。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP