亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
奇怪了,為啥cron里面執(zhí)行的結(jié)果和手動(dòng)執(zhí)行的不一樣
[打印本頁(yè)]
作者:
338378WN8
時(shí)間:
2012-07-13 10:17
標(biāo)題:
奇怪了,為啥cron里面執(zhí)行的結(jié)果和手動(dòng)執(zhí)行的不一樣
一個(gè)腳本,用于檢查日志里面是否有報(bào)錯(cuò)的
#!/bin/bash
HOMEDIR=/home/oracle
WORKDIR=$HOMEDIR/archive_check
FILE_CHECK=/u01/app/oracle/diag/rdbms/sfg/SFG/trace/alert_SFG.log
FILELN_CHECKED=$WORKDIR/checked_line
LINE_CHECKED=`cat $FILELN_CHECKED`
TMP=$WORKDIR/tmpfile
maillist=administrator
LINE_TOTAL=`wc -l $FILE_CHECK |awk '{print $1}'`
((LINE_TOTAL++))
echo $LINE_CHECKED >tmp1file
more +$LINE_CHECKED $FILE_CHECK|grep -e "ORA_" -e "error" -e "failure" -e "shutdown" -e "offline" > $TMP
test -s $TMP && (cat $TMP|mailx -s "database on `hostname` need be check" $maillist)
echo $LINE_TOTAL> $FILELN_CHECKED
現(xiàn)在的情況是手工執(zhí)行很正常,每次檢查時(shí)從上次檢查之后的行數(shù)開始。
但是放在cron里面就不行,每次檢查都是從頭開始,因此每次到會(huì)檢測(cè)到大量的報(bào)錯(cuò),然后發(fā)出郵件。
附上crontab
*/5 * * * * . .bash_profile;/home/oracle/archive_check/check_oracle_file.sh
作者:
chen_xun
時(shí)間:
2012-07-13 10:47
在contable中, 最后寫這個(gè)文件$FILELN_CHECKED, 在那個(gè)目錄中?
作者:
338378WN8
時(shí)間:
2012-07-13 11:19
chen_xun 發(fā)表于 2012-07-13 10:47
在contable中, 最后寫這個(gè)文件$FILELN_CHECKED, 在那個(gè)目錄中?
這個(gè)文件就在archive_check中
而且每次cron之后,我都檢查這個(gè)文件的,確認(rèn)該文件里面寫入正確。只是不知道為什么執(zhí)行的時(shí)候沒有從該行開始。
作者:
waker
時(shí)間:
2012-07-13 11:26
http://72891.cn/forum.p ... &fromuid=467748
作者:
MYSQLER
時(shí)間:
2012-07-13 11:31
crontab的環(huán)境和os的環(huán)境path是不一樣的,你在crontab里面輸出錯(cuò)誤日志到一個(gè)文件去看下error是什么就清楚了
作者:
338378WN8
時(shí)間:
2012-07-13 13:44
本帖最后由 338378WN8 于 2012-07-13 13:46 編輯
我在cron中加了 log
*/5 * * * * . .bash_profile;bash -x /home/oracle/archive_check/check_oracle_file.sh >> /home/oracle/archive_check.log 2>&1
日志情況如下
Fri Jul 13 13:35:01 CST 2012
+ HOMEDIR=/home/oracle
+ WORKDIR=/home/oracle/archive_check
+ FILE_CHECK=/u01/app/oracle/diag/rdbms/sfg/SFG/trace/alert_SFG.log
+ FILELN_CHECKED=/home/oracle/archive_check/checked_line
++ cat /home/oracle/archive_check/checked_line
+ LINE_CHECKED=4414342
+ TMP=/home/oracle/archive_check/tmpfile
+ maillist=zhoujm@coscon.com
++ wc -l /u01/app/oracle/diag/rdbms/sfg/SFG/trace/alert_SFG.log
++ awk '{print $1}'
+ LINE_TOTAL=4414351
+ (( LINE_TOTAL++ ))
++ echo 4414352 - 4414342
++ bc
+ LINE_NEED=10
+ echo 4414342
+ grep -e ORA_ -e error -e failure -e shutdown -e offline
+ more +4414342 /u01/app/oracle/diag/rdbms/sfg/SFG/trace/alert_SFG.log
+ grep -e ORA_ -e error -e failure -e shutdown -e offline
+ test -s /home/oracle/archive_check/tmpfile
+ cat /home/oracle/archive_check/tmpfile
++ hostname
+ mailx -s 'database on lxbsdb01 need be check' $maillist
+ echo 4414352
之后log中就沒有其他信息了
而且我把最后一句 more +4414342 /u01/app/oracle/diag/rdbms/sfg/SFG/trace/alert_SFG.log手工執(zhí)行了一下,執(zhí)行結(jié)果只有幾行正常運(yùn)行的信息。
但是這次cron執(zhí)行的結(jié)果依舊把整個(gè)日志里所有有錯(cuò)誤的信息全部發(fā)送了出來(lái)。
作者:
338378WN8
時(shí)間:
2012-07-13 14:02
發(fā)現(xiàn)more +num命令在cron和手工輸入時(shí)效果不同
*/5 * * * * more +4414375 /u01/app/oracle/diag/rdbms/sfg/SFG/trace/alert_SFG.log|wc -l >/home/oracle/archive_check/tmp2file
然后查看結(jié)果
[oracle@lxbsdb01 archive_check]$ more tmp2file
4414384
手工執(zhí)行
[oracle@lxbsdb01 archive_check]$ more +4414375 /u01/app/oracle/diag/rdbms/sfg/SFG/trace/alert_SFG.log|wc -l
7
有誰(shuí)知道這是為什么嗎
作者:
338378WN8
時(shí)間:
2012-07-13 16:03
把more改成tail了,然后把總行數(shù)減去當(dāng)前行數(shù),然后就可以了
不過這個(gè)只能說是臨時(shí)解決方法,因?yàn)槿绻詣?dòng)作業(yè)執(zhí)行過程的同時(shí),有大量日志寫入,就會(huì)有大量的行會(huì)沒有讀到。
看來(lái)要用sed了處理了。
sed -n $LINE_CHECKED',$p' $FILE_CHECK
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2