índice
1. Uso de comandos de estatísticas de recursos do Linux
1.1. Taxa de utilização do disco do sistema
1.2. Taxa de utilização do disco de dados
1.5. A carga do sistema nos últimos 15 minutos
1.6. Tempo de operação contínua do sistema
2. Shell implementa aquisição de informações de recursos e gravação no banco de dados
2.1. Gravar o arquivo de configuração do banco de dados table.ini
2.2. Shell realiza sincronização de informações de recursos do sistema
1. Uso de comandos de estatísticas de recursos do Linux
1.1. Taxa de utilização do disco do sistema
[root@datanode01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_datanode01-lv_root
44G 17G 26G 40% /
tmpfs 2.9G 12K 2.9G 1% /dev/shm
/dev/sda1 477M 28M 425M 7% /boot
/dev/sdb1 1.1T 190G 863G 19% /hadoop
[root@datanode01 ~]# df -h | sed -n '3p' ==========>> # sed取出第三行
44G 17G 26G 40% /
[root@datanode01 ~]# df -h | sed -n '3p' | awk -F ' ' '{print $4}' ==========>> # awk 取出
40%
[root@datanode01 ~]#
1.2. Taxa de utilização do disco de dados
[root@datanode01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_datanode01-lv_root
44G 17G 26G 40% /
tmpfs 2.9G 12K 2.9G 1% /dev/shm
/dev/sda1 477M 28M 425M 7% /boot
/dev/sdb1 1.1T 190G 863G 19% /hadoop
[root@datanode01 ~]# df -h | grep "/hadoop"
/dev/sdb1 1.1T 190G 863G 19% /hadoop
[root@datanode01 ~]# df -h | grep "/hadoop" | awk '{print $5}' # awk 空格拆分 取出百分比
19%
[root@datanode01 ~]#
1.3. Uso da CPU
[root@datanode01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 81100 1220896 148912 1124204 0 1 272 89 333 58 5 1 94 0 0
[root@datanode01 ~]# vmstat | sed -n '3p' =============>> #取出第三行
1 0 81100 1221888 148920 1123260 0 1 272 89 333 58 5 1 94 0 0
[root@datanode01 ~]# vmstat | sed -n '3p' | awk '{print $15}' # CPU的空闲率
94
[root@datanode01 ~]#
- swpd: memória swap usada (memória)
- livre: memória física livre (memória)
- buff: a quantidade de memória usada como buffer (memória)
- cache: livro de memória usado como cache (memória)
- cs: o tempo usado pelo processo do usuário. Expresso como uma porcentagem (sistema);
- us: o tempo do processo do usuário usando a CPU (CPU);
- sy: O tempo usado pelo processo do sistema. Expresso como uma porcentagem (CPU);
- id: O tempo ocioso da unidade central de processamento. Expresso como uma porcentagem (CPU);
1.4. Uso de memória
[root@datanode01 ~]# free -m
total used free shared buffers cached
Mem: 5852 4663 1188 0 146 1099
-/+ buffers/cache: 3417 2434
Swap: 5119 79 5040
[root@datanode01 ~]# free -m | grep Mem
Mem: 5852 4664 1187 0 146 1100
[root@datanode01 ~]# free -m | grep Mem | awk '{print $2}' =======>> # 取出 total
5852
[root@datanode01 ~]# free -m | grep Mem | awk '{print $3}' =======>> # 取出 used
4663
[root@datanode01 ~]#
1.5. A carga do sistema nos últimos 15 minutos
[root@datanode01 ~]# uptime
21:15:43 up 6:11, 6 users, load average: 0.40, 0.64, 0.73 # 1,10,15 分钟负载
[root@datanode01 ~]# uptime | awk -F ',' '{print $5}' # 逗号分隔 取出15分钟
0.72
[root@datanode01 ~]#
1.6. Tempo de operação contínua do sistema
# cut 剪切内容,根据 -d 指定的分隔符和 -f 列出的字段来提取内容
[root@datanode01 ~]# uptime
22:06:25 up 7:02, 6 users, load average: 0.53, 0.64, 0.73
[root@datanode01 ~]# uptime | cut -d ',' -f 1
22:06:39 up 7:02
[root@datanode01 ~]# uptime | cut -d ',' -f 1 | awk -F ' ' '{print $3}'
7:04
[root@datanode01 ~]#
2. Shell implementa aquisição de informações de recursos e gravação no banco de dados
2.1. Gravar o arquivo de configuração do banco de dados table.ini
[kangll@client ~]$ cat /hadoop/datadir/script/hadoop/table.ini
[xxx_CONNECT]
url=xxx
port=1433
username=PCS.Support
password=321@win#
dbname=HDP_TEST
customer=xxx_
2.2. O Shell realiza a sincronização de informações de recursos do sistema
set -x
# 系统盘的使用率
get_sys_used_ratio(){
ration=`ssh $1 "df -h |grep centos-root | awk '{print $5}'"`
ration=`echo $ration | awk -F' ' '{print $5}'`
echo $ration
}
# 数据盘的使用率
get_data_used_ratio(){
ration=`ssh $1 "df -h | grep "/app" | awk '{print $5}'"`
ration=`echo $ration |awk '{print $5}'`
echo $ration
}
# cpu的使用率
get_cpu_used_ratio(){
ration=`ssh $1 "vmstat |sed -n '3p'|awk '{print $2}' "`
ration=`echo $ration |awk '{print $13}'`
echo "${ration}%"
}
# 内存使用率
get_mem_used_ratio(){
total=`ssh $1 "free -m | grep Mem | awk '{print $2}'"`
total=`echo $total |awk '{print $2}'`
used=`ssh $1 "free -m | grep Mem | awk '{print $3}'"`
used=`echo $used |awk '{print $3}'`
ratio=`echo "scale=2;($used/$total)*100"|bc`
echo "${ratio}%"
}
# 系统最近15分钟的负载
get_load_avg_last15min(){
value=`ssh $1 "uptime | awk -F ',' '{print $6}'"`
value=`echo $value |awk -F ',' '{print $6}'`
echo $value
}
# 系统连续运行时长
get_sys_running_time(){
running_time=`ssh $1 "uptime | cut -d ',' -f 1 | awk -F' ' '{print $3}'"`
running_time=`echo ${running_time} |awk -F' ' '{print $3}'`
echo $running_time
}
function ReadConnect(){
ReadINI=`awk -F '=' '/\['$2'\]/{a=1}a==1&&$1~/^'$3'$/{print $2;exit}' $1`
}
batchCustomer=xxx_
table_ini=/hadoop/datadir/script/hadoop/ipvaSum/table.ini
ReadConnect $table_ini "${batchCustomer}CONNECT" url
server=$ReadINI
ReadConnect $table_ini "${batchCustomer}CONNECT" port
port=$ReadINI
ReadConnect $table_ini "${batchCustomer}CONNECT" dbname
database=$ReadINI
ReadConnect $table_ini "${batchCustomer}CONNECT" username
user=$ReadINI
ReadConnect $table_ini "${batchCustomer}CONNECT" password
paw=$ReadINI
for i in client namenode snamenode ;
do
datebatch=`date +'%Y-%m-%d %H:%M:%S'`
hostname=$i
running_time=`get_sys_running_time $i`
echo "服务器持续运行时间:$running_time days"
load_avg=`get_load_avg_last15min $i`
echo "近15min的平均负载为:$load_avg"
sys_reatio=`get_sys_used_ratio $i`
echo "系统盘使用率:$sys_reatio"
data_ratio=`get_data_used_ratio $i`
echo "数据盘的使用率:$data_ratio"
cpu_used=`get_cpu_used_ratio $i`
echo "服务器cpu的使用率:$cpu_used"
mem_ratio=`get_mem_used_ratio $i`
echo "内存使用率:$mem_ratio"
/opt/mssql-tools/bin/sqlcmd -S $server -U $user -P $paw -d ${database} -Q "
INSERT INTO dbo.os_monitor(hostName,sysDiskUsedReatio,dataDiskUsedReatio,memUsedReatio,cpuUsedReatio,last15minLoadAvg,sysRunningTime,createTime,modifyTime)
VALUES('${hostname}','${sys_reatio}','${data_ratio}','${mem_ratio}','${cpu_used}','${load_avg}','${running_time}','${datebatch}','${datebatch}');
"
done