定时获取linux服务器信息

功能简单描述:

客户端(222.73.250.228) crontab每5分钟调用getdata.sh 把生成本机服务器信息,保存在data.properties文件

服务端(222.73.250.153) crontab每5分钟调用aaab把客户端的data.properties文件scp到服务端,并通过java代码解析

 

注:机器自动scp文件,省去密码输入,需要配置sra密钥

参考:linux sra密钥 (服务器之间交互不需要输入密码) 

 

服务端目录结构

/root/synch

        |--data

                | --data-222.73.250.228.properties      //复制过来的客户端信息,

                | --data-222.73.250.*.properties           //如果有多个客户端,则多个

        |--lib       //java所需jar包

        |--logs

                | --synchLogs

                        | --serverSynch.log

        |--serverSynch.sh

        |--synch.jar         //java 功能jar包

        |--synchLogs

                | --serverSynch.log

 

客户端目录结构

/root/client

        |--data

                | --data.properties  

                | --getdata.log

        |--getdata.sh

        |--get.pl

 

 

服务端文件

1.serverSynch.sh

#bin/bash

LOGFILE="/root/synch/logs/getdatalog.log"
echo "Starting getdata for `date`" >> "$LOGFILE"

DIR="/root/synch/data/"
SERVER228="222.73.250.228"
#SERVER37="192.168.10.37"
RDIR="/root/client/data"
cd "$DIR"
echo "getdata from $SERVER228" >> "$LOGFILE"
scp -r root@$SERVER228:$RDIR/data.properties data-$SERVER228.properties

#echo "getdata from $SERVER31" >> "$LOGFILE"
#scp -r root@$SERVER31:$RDIR/data.properties data-$SERVER31.properties


echo -e "Complete getdata `date` SUCCESS\n" >> "$LOGFILE"

cd /root/synch/
echo -e "begin to synch  31 data to DB ...\n" >> "$LOGFILE"
/usr/jdk1.6.0_22/bin/java -cp .:./synch.jar:./lib/c3p0-0.9.1-pre9.jar:./lib/commons-lang.jar:./lib/commons-logging.jar:./lib/hessian-3.0.13.jar:./lib/jdom.jar:./lib/jtds-1.2.jar:./lib/junit.jar:./lib/log4j-1.2.8.jar:./lib/nlscharset12.jar:./lib/ojdbc14.jar:./lib/servlet.jar:./lib/spring-aop.jar:./lib/spring-beans.jar:./lib/spring-core.jar:./lib/spring.jar:./lib/standard.jar:./lib/commons_t2cn.jar com.t2cn.synch.StartSynch $SERVER228

#echo -e "begin to synch  37 data to DB ...\n" >> "$LOGFILE"
#/usr/jdk150/bin/java -cp .:./synch.jar:./lib/c3p0-0.9.1-pre9.jar:./lib/commons-lang.jar:./lib/commons-logging.jar:./lib/hessian-3.0.13.jar:./lib/jdom.jar:./lib/jtds-1.2.jar:./lib/junit.jar:./lib/log4j-1.2.8.jar:./lib/nlscharset12.jar:./lib/ojdbc14.jar:./lib/servlet.jar:./lib/spring-aop.jar:./lib/spring-beans.jar:./lib/spring-core.jar:./lib/spring.jar:./lib/standard.jar:./lib/commons_t2cn.jar com.t2cn.tester.StartSynch $SERVER37

echo -e "Complete synch data to DB --- `date` SUCCESS\n---------------------------------------------------------------------" >> "$LOGFILE"

 

 

客户端文件

1.getdata.sh

#/bin/bash
LOGFILE="/root/client/data/getdata.log"

#echo $LANG
#export LANG=zh_CN.GBK

#echo 'path0-->'$PATH

source /root/.bash_profile

#export PATH=/usr/bin:/bin:/usr/sysstat-10.0.3
#echo 'path1-->'$PATH

DIR="/root/client/data/"
echo -e "Begin to getdata\n">>"$LOGFILE"
cd "$DIR"
#/root/client/get.pl >/root/client/data/data-192.168.10.37-`date +%Y-%m-%d-%H-%M`.properties
/root/client/get.pl >/root/client/data/data.properties
echo -e "Complete getdata `date` SUCCESS\n--------------------------------------------" >>"$LOGFILE"

 

 

2.get.pl

#!/usr/bin/perl
#INFO
print("SERVER_IP=222.73.250.228","\n");
print("SERVER_NAME=friends","\n");
print("SERVICE_ID=1","\n");
print("DRISTRICT_ID=3","\n");
print("PROCESS_NUM=1","\n");

#print("lang_ ",$LANG);

#PROCESS
print "\n#PROCESS\n";

$process=` ps auxf |grep tomcat_login |grep root |grep Xmx1024m |grep -v grep`;
#$process=` ps -auxf |grep tomcat_login |grep root |grep Xmx1024m |grep -v grep`;
#process=` ps -auxf |grep proxy_1 |grep root |grep Xmx256m |grep -v grep`;
@array = split(/ +/,$process);
print ("USER_1=" , @array[0] , "\n");
print ("PID_1=" , @array[1] , "\n");
print ("%PCPU_1=" , @array[2] , "\n");
print ("%MEM_1=" , @array[3] , "\n");
#print ("COMMAND_1=" , @array[10] , "\n");
print("PROCESS_NAME_1=friends","\n");
print("PROCESS_DESC_1=friends","\n");


#mem
print "\n#mem\n";
$mem=`  free |grep Mem`;
@array = split(/ +/,$mem);
print ("memtotal=" , @array[1] , "\n");
print ("memused=" , @array[2] , "\n");
print ("memfree=" , @array[3] , "\n");
$swap=`  free |grep Swap`;
@array = split(/ +/,$swap);
print ("swaptotal=" , @array[1] , "\n");
print ("swapused=" , @array[2] , "\n");
print ("swapfree=" , @array[3] , "\n");

 

#CPU
print "#CPU\n";
$cpu=` sar -u 2 5 |grep 平均时间`;

#$cpu=` sar -u 2 5 |grep Average`;
#$cpu1=` sar -u 2 5`;
#$cpu2=` sar -u 2 5 |grep 平均时间`;
#print ("cpu1=" , $cpu1 , "\n");
#print ("cpu2=" , $cpu2 , "\n");


@array = split(/ +/,$cpu);
print ("%cpu=" , @array[2] , "\n");
print ("%iowait=" , @array[5] , "\n");


#disk
print "\n#disk\n";
$ret = `df  | grep -v Filesystem`;
$ret =~ s/($ARGV[0])(.* )(.*[0-9])(.* )(.*[0-9])(.* )(.*[0-9])(.* )(.*[0-9])%(.* )//;
print "total=$3\n";
print "used=$5\n";
print "free=$7\n";
print "percent=$9%\n";

#ping
print "\n#ping\n";
#$ping = `ping -c 1 222.73.250.228 | grep icmp_seq`;
#$ping =~ m/(.*time=)(.*) (ms|usec)/;
#print "time=$2\n";
print "time=0\n";

#watch_time
print ("WATCH_TIME=" , `date +%Y-%m-%d\\ %T`);


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值