亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
求助
[打印本頁]
作者:
princeduan
時(shí)間:
2012-01-29 18:32
標(biāo)題:
求助
本帖最后由 princeduan 于 2012-01-30 20:12 編輯
#! /bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/contrib/bin
#awinfo.sh ?<output directory>?
BASEDIR=${BASEDIR:-/home/nbc01/pfm}
EXECDIR=${EXECDIR:-/home0500/ms/user/ms/unei/shell}
NEXECDIR=${NEXECDIR:-/home0500/ms/user/ms/unei/exec}
DEBUG=${DEBUG:-''}
#1.debugging function
run () {
if [ ”${DEBUG}” ]; then
echo $@
else
eval $@ > /dev/null 2>&1
fi
}
#2.logging function
logging () {
FILE=$1
shift
CMD=S@
if [ ! "${CMD}" -o !"${FILE}" ]; then
return
fi
cat << _EOT_ >> ${FILE}
`date +'%Y/%m/%d %H:%M:%S'`
-----
`eval ${CMD}`
-----
_EOT_
}
#$1: output directory
case $# in
1)
BASEDIR=$1
;;
0)
# use default basedir
;;
*)
echo "usage: awinfo.sh [output directory]" 1>&2
exit 1
;;
esac
#3.local commands
if [ ${EXECDIR} -a -d ${EXECDIR} ]; then
PS_CMD=${EXECDIR}/ps.pl
fi
if [ ${NEXECDIR} -a -d ${NEXECDIR} ]; then
SEGSZ_CMD=${NEXECDIR}/getsegsz
fi
#4.get current date and time
set `date +'%Y%m%d %H:%M'`
DATE=$1
HOURE=$2
#5.logging files name
OUTPUT_SWAPINFO=swapinfo.out
OUTPUT_PS=ps.out
OUTPUT_SEGSZ=getsegsz.out
OUTPUT_VMSTAT=vmstat.out
OUTPUT_BDF=bdf.out
OUTPUT_NETSTAT=netstat.out
#6.logging directory
DIR=${BASEDIR}/${DATE}
if [ "${BASEDIR}" -a ! -d "${BASEDIR}" ]; then
mkdir ${BASEDIR}
fi
if [ "${DIR}" -a ! -d "${DIR}" ]; then
mkdir ${DIR}
fi
#7.get some information
logging ${DIR}/${OUTPUT_SWAPINFO} swapinfo -tm
if [ ${PS_CMD} -a -x ${PS_CMD} ]; then
logging ${DIR}/${OUTPUT_PS} $PS_CMD
fi
if [ ${SEGSZ_CMD} -a -x ${SEGSZ_CMD} ]; then
logging ${DIR}/${OUTPUT_SEGSZ} $SEGSZ_CMD
fi
logging ${DIR}/${OUTPUT_VMSTAT} vmstat -S
if [ ! -f ${DIR}/${OUTPUT_BDF} ]; then
logging ${DIR}/${OUTPUT_BDF} bdf
fi
logging ${DIR}/${OUTPUT_NETSTAT} netstat -i
#8.archiving other days log
for d in ${BASEDIR}/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
do
if [ "$a9ur7n9vt" = "${DIR}" ]; then
continue
elif [ -d "$a9ur7n9vt" ]; then
dpfx=`dirname $a9ur7n9vt`
dsfx=`basename $a9ur7n9vt`
cd ${dpfx}
run tar cvf ${dsfx}.tar $dsfx}
run gzip -f9 ${dsfx}.tar
run rm -rf ${dsfx}
find ${BASEDIR} -mtime +60 -exec rm {} \;
fi
done
復(fù)制代碼
終于完成了。我分成了8個(gè)段落,懇求高手能分段進(jìn)行說明,簡(jiǎn)答幾句話也可以。
補(bǔ)充說明,這個(gè)shell腳本是通過crontab自動(dòng)執(zhí)行的。DEBUG這個(gè)參數(shù)究竟做什么用?
先謝謝了!
作者:
jason680
時(shí)間:
2012-01-29 20:10
回復(fù)
1#
princeduan
置頂文
shell基礎(chǔ)十二篇
shell 十三問?
作者:
princeduan
時(shí)間:
2012-01-29 21:04
感謝回復(fù),不過沒有看到類似的說明。
能否幫忙簡(jiǎn)單解釋一下?
作者:
zooyo
時(shí)間:
2012-01-29 21:18
提示:
作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者:
princeduan
時(shí)間:
2012-01-29 21:35
DEBUG=${DEBUG
:-''
}
這句中賦值方式怎么解釋?是不是知道這個(gè)就好辦了?
作者:
jason680
時(shí)間:
2012-01-29 22:01
本帖最后由 jason680 于 2012-01-29 22:05 編輯
回復(fù)
3#
princeduan
1. PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/contrib/bin
2. DEBUG=${DEBUG:-''}
1.沒問題, 2有問題....
請(qǐng)看 shell 十三問, 8) $(( )) 與 $( ) 還有${ } 差在哪?
if [”${DEBUG}”]; then
明顯語法錯(cuò)誤,請(qǐng)先練好基礎(chǔ)
shell基礎(chǔ)十二篇, shell基礎(chǔ)學(xué)習(xí)第十七篇-條件測(cè)試
eval $@ > /dev/null 2>&1
shell 十三問 , 11) > 與 < 差在哪?
eval ==>
http://blog.chinaunix.net/space. ... =blog&id=105530
作者:
princeduan
時(shí)間:
2012-01-29 22:10
if [”${DEBUG}”]; then
明顯語法錯(cuò)誤,請(qǐng)先練好基礎(chǔ)
這個(gè)是從服務(wù)器抄下來的,應(yīng)該是正常工作的。
作者:
zooyo
時(shí)間:
2012-01-30 10:27
提示:
作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者:
wsxedcer
時(shí)間:
2012-01-30 10:32
本帖最后由 wsxedcer 于 2012-01-30 11:00 編輯
我擦,是我錯(cuò)了
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/contrib/bin
DEBUG=${DEBUG:-''}
#debugging function
run () {
if [ "${DEBUG}" ]; then
echo $@
else
eval $@ > /dev/null 2>&1
fi
}
復(fù)制代碼
DEBUG=${DEBUG:-''}
定義DEBUG的值,若 $DEBUG 沒設(shè)定或?yàn)榭罩,輸出但不取?。(保留非空值)
if [ "${DEBUG}" ]; then
怎么沒有看到你的有空格呢? 測(cè)試條件咯,測(cè)試是否為空值,
eval $@ > /dev/null 2>&1
這個(gè)比較長(zhǎng),eval 的用法自己查
作者:
Shell_HAT
時(shí)間:
2012-01-30 10:34
回復(fù)
7#
princeduan
你們的服務(wù)器上第一行是用的中文輸入法狀態(tài)下的感嘆號(hào)?
作者:
princeduan
時(shí)間:
2012-01-30 17:24
>你們的服務(wù)器上第一行是用的中文輸入法狀態(tài)下的感嘆號(hào)?
呵呵,這個(gè)是我個(gè)人輸入錯(cuò)誤。謝謝
等我把所有的內(nèi)容都拿過來,請(qǐng)高手們給分析下啊@!
作者:
princeduan
時(shí)間:
2012-01-31 10:50
已經(jīng)講完正版的腳本文件更新完畢,請(qǐng)大家再幫我看看吧。
)
作者:
princeduan
時(shí)間:
2012-01-31 18:06
還請(qǐng)大家繼續(xù)幫忙啊
作者:
princeduan
時(shí)間:
2012-02-01 15:19
等待中。。。
作者:
princeduan
時(shí)間:
2012-02-01 23:58
熱心人趕快幫忙啊
作者:
cooluncle
時(shí)間:
2012-02-03 16:54
對(duì)于一些比較復(fù)雜的腳本,編寫過程中往往要確定一些比較重要的步驟是否被運(yùn)行。雖然有些命令在運(yùn)行時(shí)會(huì)在終端的標(biāo)準(zhǔn)輸出運(yùn)行信息,但其他一些卻未必如此。本例中run()是用于腳本調(diào)試的函數(shù),作用是如果"DEBUG"變量非空變打印參數(shù)所有參數(shù)到標(biāo)準(zhǔn)輸出并執(zhí)行。以第114行“run tar cvf ${dsfx}.tar $dsfx}”為例,此處傳遞給run函數(shù)的參數(shù)為" tar cvf ${dsfx}.tar $dsfx}",腳本運(yùn)行過程時(shí),如果DEBUG非空,會(huì)在終端打印一條“ tar cvf ${dsfx}.tar $dsfx}(變量對(duì)應(yīng)進(jìn)行替換)”信息。把第114行直接寫成 tar cvf ${dsfx}.tar $dsfx},對(duì)實(shí)際應(yīng)用一點(diǎn)影響都沒有。當(dāng)然,此處由于tar使用了“v”參數(shù),腳本運(yùn)行時(shí)還是很容易判斷tar命令是否按要求在打包文件,如果改成“ tar cf ${dsfx}.tar $dsfx}”就不行了。如果想用調(diào)試模式運(yùn)行,改腳本應(yīng)該在命令提示符下用“DEBUG=“on” ./script.sh”模式執(zhí)行,當(dāng)然run只檢查DEBUG是否是空值,給DEBUG賦任意非空值都可以讓腳本以調(diào)試模式運(yùn)行
作者:
princeduan
時(shí)間:
2012-02-05 19:48
解釋很有深度,謝謝!{:3_200:}
作者:
princeduan
時(shí)間:
2012-02-05 20:03
能再幫忙解釋一下這段嗎?
#logging function
logging () {
FILE=$1
shift
CMD=S@
if [ ! "${CMD}" -o !"${FILE}" ]; then
return
fi
cat << _EOT_ >> ${FILE}
`date +'%Y/%m/%d %H:%M:%S'`
-----
`eval ${CMD}`
-----
_EOT_
}
復(fù)制代碼
作者:
waker
時(shí)間:
2012-02-05 21:34
CMD=S@
還是
CMD=$@
?
作者:
princeduan
時(shí)間:
2012-02-05 21:48
不好意思,CMD=$@
作者:
cooluncle
時(shí)間:
2012-02-08 10:37
從代碼來看,如果以 “l(fā)ogging <logfile> <command string>"調(diào)用函數(shù)則return 0;如果以”logging <logfile>,logging <command string>“這兩種方式調(diào)用函數(shù),則把命令的執(zhí)行時(shí)間,命令的執(zhí)行過程中打印到終端的信息以追加重定向模式到指定的文件。解釋下函數(shù)的執(zhí)行過程:logging接受<logfile>,logging <command string>兩種類型的參數(shù),執(zhí)行時(shí)將<logfile>也就是日志文件的位置賦值給FILE變量,再用shift指令將<logfile>從參數(shù)列表中刪除,余下的參數(shù)統(tǒng)一賦給CMD變量;if判斷如果CMD變量非空或者FILE變量非空,就return零值結(jié)束函數(shù),否則繼續(xù)執(zhí)行后續(xù)命令。11-16行被稱為【here文檔】,用于將腳本文件中指定位置的命令輸出,以追加模式重定向到FILE變量指定的文件中。`date +'%Y/%m/%d %H:%M:%S'`指令記錄執(zhí)行時(shí)間,`eval ${CMD}`指令將<command string>的內(nèi)容以shell指令執(zhí)行,執(zhí)行的輸出重定向到FILE變量指定的文件中。
作者:
princeduan
時(shí)間:
2012-02-08 15:04
>if判斷如果CMD變量非空或者FILE變量非空,就return零值結(jié)束函數(shù),否則繼續(xù)執(zhí)行后續(xù)命令。
!表示相反意思,是不是應(yīng)該為CMD變量
為空
或者FILE變量
為空
??
作者:
ywlscpl
時(shí)間:
2012-02-08 15:14
CMD=S@
還是
CMD=$@
?
不好意思,CMD=$@
樓主不會(huì)是看著顯示器屏幕把服務(wù)器上的腳本抄下來,再一個(gè)一個(gè)字母打出來發(fā)帖吧?
作者:
cooluncle
時(shí)間:
2012-02-08 15:34
回復(fù)
22#
princeduan
不好意思,的確是我理解錯(cuò)了,這里應(yīng)該是if判斷CMD變量或FILE變量為空就結(jié)束函數(shù),否則繼續(xù)執(zhí)行...
以logging <logfile>或loging <command string>的方式調(diào)用函數(shù)會(huì)退出函數(shù),以logging <logfile> <command string>方式調(diào)用會(huì)記錄<command string>運(yùn)行時(shí)間和輸出到FILE變量指定的文件中
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2