Mac终端不可以使用szrz咋办?

最近一直在Mac上写公司代码,有时候需要在服务器上去拉取报文(一些xml文件),一直坚持着能少装软件就少装软件,所以就用Mac自带的终端咯,然后自己写了一个脚本用于从服务器上去拉取文件

集群的服务器上如何集中报文

需要使用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

脚本的作用:采用遍历的方式搜寻每台服务器上指定文件夹下的 文件名包含 $SESSION_ID的文件,找到之后把它同步到中心服务器,然后打压成一个gz包

本地与服务器上文件同步

#!/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 [email protected] "/app/web/car_ins_server/tools/collect_pkts.sh $COMPANY $SESSION_ID"

scp [email protected]:/app/web/car_ins_server/pkts/$COMPANY.tar.gz ~/Documents/work/pkts/

ssh -t [email protected] "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去执行远端服务器上的脚本,然后通过scp命令把上一步中得到的gz包复制到本地,再解压。

注意

我的Mac的公钥已经加到服务器的公钥库了,否则上面脚本的ssh命令是无法连接到服务器的.

你可能感兴趣的:(Mac终端不可以使用szrz咋办?)