-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcollect.sh
103 lines (94 loc) · 3.11 KB
/
collect.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/bin/bash
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin;
#### TRAP
# trap ctrl-c and call ctrl_c()
# trap ctrl_c INT
# function ctrl_c() {
# echo "** Trapped CTRL-C"
# }
# for i in `seq 1 5`; do
# sleep 1
# echo -n "."
# done
# trap ctrl-c and call ctrl_c()
# trap ctrl_c INT
# function ctrl_c() {
# echo
# echo "Ctrl-C by user"
# do the jobs
# exit
# }
#####
## Dir check & old log files cleanup
WD=/var/tmp/os_patch_val;
##
## Functions to take precheck & postcheck outputs
function precheck {
###
echo "----------------------------------------------------"
if [ -d $WD ]
then
rm $WD/*.out;
else
mkdir -p $WD;
echo -e "'$WD'- created for collecting data\n";
fi
echo -e "Saving $WD/pre_Name-IP.out .......";
#
ip addr show |awk '/inet /{print $NF,$2;}' |while read iface IP ;do AIP=$IP;IP=${IP%/*};HOST=$(nslookup $IP|awk '/name =/{print $NF;}');printf "%-20s %-20s %-20s\n" "$iface" "$AIP" "$HOST" >> $WD/pre_Name-IP.out;done;
###
echo -e "Saving $WD/pre_FS-Mount.out ......";
#
df -hPT | egrep -vi '/\nas/\common|/\nas/\usr|/\nas/\orasoft|/\nas/\util|/\nas/\CDs|/\nas/\images|Mounted on' | awk '{print $1,"\t",$2,"\t",$3,"\t",$7}' | sort > $WD/pre_FS-Mount.out;
###
echo -e "Saving $WD/pre_IP-Link.out .......";
#
ip -o link show | grep -v loop | grep UP | cut -d':' -f 2-20 | sort -n > $WD/pre_IP-Link.out;
###
echo -e "Saving $WD/pre_IP-Addr.out .......";
#
ip -o addr show | cut -d':' -f 2-20 | cut -d'\' -f1| sort -n > $WD/pre_IP-Addr.out;
###
echo -e "Saving $WD/pre_IP-Route.out ......";
#
ip route show | sort -n > $WD/pre_IP-Route.out;
#
echo -e "\nCollection completed under '$WD'.."
echo "----------------------------------------------------"
}
function postcheck {
echo "----------------------------------------------------"
if [ -d $WD ] && [[ `ls $WD/pre*.out 2>/dev/null|wc -l` -eq 5 ]]
then
echo -e "'$WD' and preout files exists.....\n"
###
echo -e "Saving $WD/post_Name-IP.out ......";
#
ip addr show |awk '/inet /{print $NF,$2;}' |while read iface IP ;do AIP=$IP;IP=${IP%/*};HOST=$(nslookup $IP|awk '/name =/{print $NF;}');printf "%-20s %-20s %-20s\n" "$iface" "$AIP" "$HOST" >> $WD/post_Name-IP.out;done;
###
echo -e "Saving $WD/post_FS-Mount.out .....";
#
df -hPT | egrep -vi '/\nas/\common|/\nas/\usr|/\nas/\orasoft|/\nas/\util|/\nas/\CDs|/\nas/\images|Mounted on' | awk '{print $1,"\t",$2,"\t",$3,"\t",$7}' | sort > $WD/post_FS-Mount.out;
###
echo -e "Saving $WD/post_IP-Link.out ......";
#
ip -o link show | grep -v loop | grep UP | cut -d':' -f 2-20 | sort -n > $WD/post_IP-Link.out;
###
echo -e "Saving $WD/post_IP-Addr.out ......";
#
ip -o addr show | cut -d':' -f 2-20 | cut -d'\' -f1| sort -n > $WD/post_IP-Addr.out;
###
echo -e "Saving $WD/post_IP-Route.out .....";
#
ip route show | sort -n > $WD/post_IP-Route.out;
###
echo -e "\nCollection completed under '$WD'.."
echo "----------------------------------------------------"
else
echo -e "Cannot execute Post Collection.
Check the $WD for Preout files.... "
echo "----------------------------------------------------"
fi
}
precheck; sleep 10;
postcheck;