天天看點

shell腳本正常技巧

發送郵件:

<a></a>

用法:python ./send_mail.py $MAIL_HOST $MAIL_USER $MAIL_PASS $MAIL_FROM $MAIL_TO "$MAIL_SUBJECT" "$MAIL_CONTENT"

帶附件版本:

發送腳本:

生成表格郵件:

1、傳遞外部shell參數(-v)、同時處理多檔案(getline) 示例:

字典過濾

分析日志,計算平均時間

awk統計tomcat android機型:

awk平均分拆檔案:

awk '{hash=int(NR % 10 ); print $0 &gt;&gt; "outfile_tmp_"hash }' weiboid.txt

基于時間的循環:date指令

typeset readonly START_DATE=$(date --date="$1" +%Y%m%d);

for ((CUR_DATE=START_DATE; CUR_DATE&lt;=END_DATE; CUR_DATE=$(date --date="${CUR_DATE} 1 days" +%Y%m%d) ))

Linux時鐘分為系統時鐘(System Clock)和硬體(Real Time Clock,簡稱RTC)時鐘。系統時鐘是指目前Linux Kernel中的時鐘,而硬體時鐘則是主機闆上由電池供電的時鐘,這個硬體時鐘可以在BIOS中進行設定。當Linux啟動時,硬體時鐘會去讀取系統時鐘的設定,然後系統時鐘就會獨立于硬體運作。Linux中的所有指令(包括函數)都是采用的系統時鐘設定。在Linux中,用于時鐘檢視和設定的指令主要有date、hwclock和clock。其中,clock和hwclock用法相近。

date 010318242008.30(月日時分年.秒)

date 010318242008(月日時分年)

date -s 20080103

date -s 18:24

clock -w

hwclock --set --date="07/07/06 10:19" (月/日/年 時:分:秒)

硬體時鐘與系統時鐘同步:# hwclock --hctosys(hc代表硬體時間,sys代表系統時間)或者# clock --hctosys

系統時鐘和硬體時鐘同步:# hwclock --systohc或者# clock --systohc

echo "FILE.txt" | grep -v '^$' \

| xargs -L 1 -I {} find . -maxdepth 1 -type f -name "{}" \

| sort | xargs -L 1 basename | xargs md5sum

 somecommand | xargs -s 50000 echo | xargs -I '{}' -s 100000 rm '{}'

LOCALIP=`/sbin/ifconfig eth1 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`

LOCALIP="$(/sbin/ifconfig eth1 | sed -n '/inet addr/s/.*inet addr:\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/gp')"

LOCAL_IP="$(/sbin/ifconfig | sed -n 's/^.*inet addr\:\([[:digit:]\.]\{7,14\}\).*$/\1/gp' | head -1)";

solr:

cat shards | awk -F "QTime=" '{sum+=$2; cnt++; if($2&gt; 500) slow++;} END{print cnt; print slow++; print sum/cnt; print slow/cnt}'

dc:

cat dc.log | grep -o "spending time:[0-9]\+" | awk -F: '{sum+= $2; cnt++; if($2 &gt; 500) slow++ } END{print cnt; print slow; print sum/cnt; print slow/cnt}'

rts:

cat dc.log | grep -o "search rts used: [0-9]\+" | awk -F: '{sum+= $2; cnt++; if($2 &gt; 20) slow++ } END{print cnt; print slow; print sum/cnt; print slow/cnt}'

searchserver:

cat searchserver.log.2013-07-08.log | grep -o "totalTime=[0-9]\+" | awk -F= '{sum+= $2; cnt++; if($2 &gt; 500) slow++ } END{print cnt; print slow; print sum/cnt; print slow/cnt}'

appserver:

cat userTime-appserver-2013-07-25_* | awk '{sum+= $5; cnt++; if($5 &gt; 500) slow++ } END{print cnt; print slow; print sum/cnt; print slow/cnt}'

solr core資料對比

solr查詢參數提取

 日常資料備份腳本