首页 新闻 会员 周边 捐助

关于shell脚本 crontab

0
[待解决问题]

为什么这个文件我执行下面这个文件没有生成 我想要的动态日期日志(也就是这一句)?

TEMP_FILE="temp.$$"

TEMP_FILE1="test.txt"

#set -x

if [ $# -ne 4 ];

then

    echo "USAGE: $0 dbserver dbname username passwd"

    exit 1

fi

   DBSERVER=$1

   DBNAME=$2

   USERNAME=$3

   PASSWD=$4

LOGDIR="./Log"

        if [ ! -e "$LOGDIR" ];

        then

                mkdir "$LOGDIR"

        fi

LOGFILE="$LOGDIR/DMEXE_`date +%Y%m%d`.log"

/opt/sybase/OCS-12_5/bin/isql -U$USERNAME -P$PASSWD -S$DBSERVER -D$DBNAME  LOGFILE<<SQLa

exec pro_tongji

go

SQLa

#rm $TEMP_FILE

 #set +x

 

还是说上面这样写是不正确的?

我的需求是:

每天用crontab 执行一个存储过程 并写入日志yyyymmdd.log .有人能指教一下吗?最好说一下思路,小妹感激不尽

小蜜的主页 小蜜 | 初学一级 | 园豆:0
提问于:2011-09-06 16:47
< >
分享
所有回答(1)
0

shell脚本感觉没啥大问题吧,sql我也没经验,我就说一下crontab怎么用。
crontab -e写入流程,会打开默认编辑器,用不惯可以用export EDITOR='foo'暂时修改环境变量,其中foo是自己想要的编辑器。
往文件里写入:

MAILTO = ""
0 0 * * * /usr/local/bin/bash log.sh

0 0 * * *表示每天午夜执行
/usr/local/bin/bash是Shell路径,填自己的安装路径,可以用where bash查看安装路径。我也最近才学,发现有时候不用绝对路径会报错,所以写上。
log.sh是脚本路径,也是填自己的路径就行。
MAILTO = ""表示不发邮件。使用时发现crontab会发系统内部邮件汇报执行情况,挺烦的,但是前几次执行可以先不加这一行调试用,报错会在系统mail里,具体自己查一下吧。
更多可以参考Runoob Crontab

SueXY | 园豆:206 (菜鸟二级) | 2025-06-30 12:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册