最近一直在Mac上寫公司代碼,有時(shí)候需要在服務(wù)器上去拉取報(bào)文(一些xml文件)算途,一直堅(jiān)持著能少裝軟件就少裝軟件芍耘,所以就用Mac自帶的終端咯沃琅,然后自己寫了一個(gè)腳本用于從服務(wù)器上去拉取文件
集群的服務(wù)器上如何集中報(bào)文
需要使用rsync命令刀诬,直接上腳本了:
#!/bin/sh
if [ $# -lt 2 ];then
echo '[Usage]: tools/collect_pkts.sh $company $session_id'
echo 'e.g.: tools/collect_pkts.sh tianan b3e11ccae69643df8630faabb2cc40c0'
exit
fi
basedir=/app/web/car_ins_server/pkts
SESSION_ID=$2
COMPANY=$1
if [ ! -d "$basedir/$COMPANY" ]; then
mkdir $basedir/$COMPANY
fi
#echo "company:$COMPANY, session_id:$SESSION_ID"
for host in `cat /app/web/car_ins_server/tools/tomcat_servers`; do
rsync -avz $host:/app/web/car_ins_server/pkts/$COMPANY/*$SESSION_ID* $basedir/$COMPANY/ 2> /dev/null
done
cd $basedir
tar -czf $COMPANY.tar.gz $COMPANY
rm -rf $COMPANY
腳本的作用:采用遍歷的方式搜尋每臺(tái)服務(wù)器上指定文件夾下的 文件名包含 $SESSION_ID的文件,找到之后把它同步到中心服務(wù)器屋灌,然后打壓成一個(gè)gz包
本地與服務(wù)器上文件同步
#!/bin/bash
if [ $# -lt 2 ];then
echo '[Usage]: ./get_pkts.sh $company $session_id'
echo 'e.g.: ./get_pkts.sh tian b3e11ccae69643df8630faabb2cc40c0'
exit
fi
pktsdir=~/Documents/work/pkts/
if [ ! -d "$pktsdir"]; then
mkdir "$pktsdir"
fi
echo "start collecting......"
SESSION_ID=$2
COMPANY=$1
echo "### company:$COMPANY, session_id:$SESSION_ID ###"
ssh -t web@121.41.109.204 "/app/web/car_ins_server/tools/collect_pkts.sh $COMPANY $SESSION_ID"
scp web@121.41.109.204:/app/web/car_ins_server/pkts/$COMPANY.tar.gz ~/Documents/work/pkts/
ssh -t web@121.41.109.204 "rm -f /app/web/car_ins_server/pkts/$COMPANY.tar.gz"
echo "end collecting......"
cd ~/Documents/work/pkts/
tar -zvxf $COMPANY.tar.gz
#rm -f $COMPANY.tar.gz
腳本作用:通過ssh去執(zhí)行遠(yuǎn)端服務(wù)器上的腳本洁段,然后通過scp命令把上一步中得到的gz包復(fù)制到本地,再解壓共郭。
注意
我的Mac的公鑰已經(jīng)加到服務(wù)器的公鑰庫(kù)了祠丝,否則上面腳本的ssh命令是無法連接到服務(wù)器的.