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
104
105
106
107
<code>#!/bin/bash</code>
<code>##########################################################</code>
<code># This Script For Get HardSoft Information To MySQL #</code>
<code>#[ `ps aux|grep $0 |grep -v grep|wc -l` -gt 2 ] && echo "Running...." && exit 0</code>
<code>LOCK=</code><code>/var/lock/viewer</code><code>.lock</code>
<code>[ -f $LOCK ] && {</code>
<code> </code><code>echo</code> <code>"$(date +'%Y-%m-%d %H:%M:%S') Running..."</code>
<code> </code><code>echo</code> <code>"1"</code><code>>>$LOCK</code>
<code> </code><code>[ `</code><code>awk</code> <code>'END{print NR}'</code> <code>$LOCK` -gt 20 ] && </code><code>rm</code> <code>-f $LOCK </code>
<code> </code><code>exit</code> <code>0</code>
<code>}</code>
<code>touch</code> <code>$LOCK</code>
<code>LC_ALL=C</code>
<code>HSVDIR=</code><code>/data/hardfile</code>
<code>TMPDIR=</code><code>/data/tmp</code>
<code>BAKDIR=</code><code>/data/hdbak</code>
<code>[ ! -d $TMPDIR ] && </code><code>mkdir</code> <code>-p $TMPDIR</code>
<code>[ ! -d $BAKDIR ] && </code><code>mkdir</code> <code>-p $BAKDIR</code>
<code>MYSQLBIN=</code><code>'/usr/bin/mysql'</code>
<code>DBHOST=</code><code>'localhost'</code>
<code>DBUSER=</code><code>'HardSoft'</code>
<code>DBPWD=</code><code>'HardSoft-Viewer'</code>
<code>mysql=</code><code>"$MYSQLBIN -h$DBHOST -u$DBUSER -p$DBPWD -e "</code>
<code>db=HardSoft</code>
<code>for</code> <code>file</code> <code>in</code> <code>`</code><code>ls</code> <code>$HSVDIR`</code>
<code>do</code>
<code>cp</code> <code>-f $HSVDIR/$</code><code>file</code> <code>$BAKDIR</code>
<code>lang=`</code><code>grep</code> <code>"Language:"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>':'</code> <code>'{print $2}'</code><code>`</code>
<code>iconv -f $lang -t utf-8 -o $HSVDIR/$</code><code>file</code> <code>$HSVDIR/$</code><code>file</code>
<code>#name=$file</code>
<code>name=`</code><code>grep</code> <code>'Computer Name'</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>' = '</code> <code>'{print $2}'</code><code>|</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>os=`</code><code>grep</code> <code>"OS Type"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>grep</code> <code>"Type"</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>sed</code> <code>'s#(.*)##g'</code><code>|</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>cpu=`</code><code>grep</code> <code>"CPU"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>model=`</code><code>grep</code> <code>"System Model"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>#get RAM</code>
<code>ram</code><code>=`</code><code>grep</code> <code>"RAM Size"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>sed</code> <code>'s# RAM##g'</code><code>||</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>#get DisplayCard</code>
<code>display=`</code><code>grep</code> <code>"Display Card"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>#get MotherBoard</code>
<code>mf=`</code><code>grep</code> <code>"Manufacturer"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>mb=`</code><code>grep</code> <code>"MotherBoard Model"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>#get Hard Information</code>
<code>starthd=`</code><code>grep</code> <code>-n </code><code>"Hard Disk:"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>':'</code> <code>'{print $1}'</code><code>`</code>
<code>endhd=`</code><code>grep</code> <code>-n </code><code>"Network Card:"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>':'</code> <code>'{print $1}'</code><code>`</code>
<code>#hdinfo=`awk "NR==$starthd+1,NR==$endhd-1 {print}" $HSVDIR/$file`</code>
<code>#hd=`echo $hdinfo |awk -F'=' '{print $2}'|awk '{print $1}'`</code>
<code>#echo $hdinfo</code>
<code>#hd=`grep "Model" $hdinfo |awk -F'=' '{print $2}'|sed 's/Size//g'|tr -d '\n\r' `</code>
<code>hd=`</code><code>awk</code> <code>"NR==$starthd+1,NR==$endhd-1 {print}"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>grep</code> <code>"Model"</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>sed</code> <code>'s#\r\r##g'</code><code>`</code>
<code>#hd=`echo $hdinfo |sed 's/Size//g' `</code>
<code>size=`</code><code>awk</code> <code>"NR==$starthd+1,NR==$endhd-1 {print}"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>grep</code> <code>"Size"</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>sed</code> <code>'s#\r\r##g'</code><code>`</code>
<code>#size=`grep "Size" $hdinfo |awk -F'=' '{print $2}'|tr -d '\n\r'`</code>
<code> </code>
<code>#get Network</code>
<code>net=`</code><code>grep</code> <code>"NetCard Model"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>mac=`</code><code>grep</code> <code>"MAC Address"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>ip=`</code><code>grep</code> <code>"IP Address"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>'='</code> <code>'{print $2}'</code><code>|</code><code>sed</code> <code>'s/(.*)//g'</code><code>|</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>#ip=`cat $HSVDIR/$file |grep "IP Address"|awk -F'=' '{print $2}'|sed 's/(.*)//g'|sed 's#\n\r##g'`</code>
<code>#echo $ip</code>
<code>#Check Hardware Table</code>
<code>hunum=`$mysql </code><code>"select count(*) from $db.Hardware where id='$name'"</code><code>`</code>
<code>hnum=`</code><code>echo</code> <code>$hunum|</code><code>awk</code> <code>'{print $2}'</code><code>`</code>
<code>[ $hnum -</code><code>ne</code> <code>0 ] && $mysql </code><code>"delete from $db.Hardware where id='$name'"</code>
<code>#Insert Hardware Data</code>
<code>$mysql </code><code>"insert into $db.Hardware(id,ScanTime,OS,CPU,Computer_Type,Ram,Display_Card,MotherBoard_Vendor,MotherBoard_Type,HardDisk_Type,HardDisk_Size,NetCard_Type,Mac_Address,IP_Address) values (trim('$name'),now(),trim('$os'),trim('$cpu'),trim('$model'),trim('$ram'),trim('$display'),trim('$mf'),trim('$mb'),trim('$hd'),trim('$size'),trim('$net'),trim('$mac'),trim('$ip'))"</code>
<code>######################################################################</code>
<code>#get Software</code>
<code>startsw=`</code><code>grep</code> <code>-n </code><code>"Software Information:"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>':'</code> <code>'{print $1}'</code><code>`</code>
<code>endsw=`</code><code>grep</code> <code>-n </code><code>"USB Information:"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>':'</code> <code>'{print $1}'</code><code>`</code>
<code>#Check Software Table</code>
<code>sunum=`$mysql </code><code>"select count(*) from $db.Software where id='$name'"</code><code>`</code>
<code>snum=`</code><code>echo</code> <code>$sunum|</code><code>awk</code> <code>'{print $2}'</code><code>`</code>
<code>[ $snum -</code><code>ne</code> <code>0 ] && $mysql </code><code>"delete from $db.Software where id='$name'"</code>
<code>#get Software & Insert Software Data</code>
<code>awk</code> <code>"NR==$startsw+1,NR==$endsw-1 {print}"</code> <code>$HSVDIR/$</code><code>file</code><code>| </code><code>sed</code> <code>-e </code><code>'/^$/d'</code> <code>| </code><code>sed</code> <code>"s/'//g"</code> <code>|</code><code>sed</code> <code>'s</code><code>#^\s##g'|while read line</code>
<code>soft=`</code><code>echo</code> <code>$line|</code><code>tr</code> <code>-d </code><code>'\n\r'</code><code>`</code>
<code>$mysql </code><code>"insert into $db.Software(id,ScanTime,SoftName) values('$name',now(),trim('$soft'))"</code>
<code>done</code>
<code>#######################################################################</code>
<code>#get USB</code>
<code>usb=`</code><code>grep</code> <code>'USB is Open'</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>wc</code> <code>-l`</code>
<code>#get Admins</code>
<code>startad=`</code><code>grep</code> <code>-n </code><code>"Admin Users:"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>':'</code> <code>'{print $1}'</code><code>`</code>
<code>endad=`</code><code>grep</code> <code>-n </code><code>"Power Users:"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>':'</code> <code>'{print $1}'</code><code>`</code>
<code>ad=`</code><code>awk</code> <code>"NR==$startad+1,NR==$endad-1 {print}"</code> <code>$HSVDIR/$</code><code>file</code> <code>| </code><code>sed</code> <code>-e </code><code>'/^$/d'</code><code>|</code><code>sed</code> <code>'/Administrator/d'</code><code>|</code><code>sed</code> <code>'/Domain Admins/d'</code><code>`</code>
<code>#get PowerUser</code>
<code>startpw=`</code><code>grep</code> <code>-n </code><code>"Power Users:"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>':'</code> <code>'{print $1}'</code><code>`</code>
<code>endpw=`</code><code>grep</code> <code>-n </code><code>"FileShare Information:"</code> <code>$HSVDIR/$</code><code>file</code><code>|</code><code>awk</code> <code>-F</code><code>':'</code> <code>'{print $1}'</code><code>`</code>
<code>pw=`</code><code>awk</code> <code>"NR==$startpw+1,NR==$endpw-1 {print}"</code> <code>$HSVDIR/$</code><code>file</code> <code>| </code><code>sed</code> <code>-e </code><code>'/^$/d'</code><code>`</code>
<code>#Check Access Table</code>
<code>aunum=`$mysql </code><code>"select count(*) from $db.Control where id='$name'"</code><code>`</code>
<code>anum=`</code><code>echo</code> <code>$aunum|</code><code>awk</code> <code>'{print $2}'</code><code>`</code>
<code>[ $anum -</code><code>ne</code> <code>0 ] && $mysql </code><code>"delete from $db.Control where id='$name'"</code>
<code>#Insert Access Data</code>
<code>$mysql </code><code>"insert into $db.Control(id,ScanTime,Admin,Poweruser,Usb) values('$name',now(),trim('$ad'),trim('$pw'),trim('$usb'))"</code>
<code>#Check User Table & Insert ID</code>
<code>unum=`$mysql </code><code>"select count(*) from $db.Computers where Computers.id='$name'"</code><code>`</code>
<code>num=`</code><code>echo</code> <code>$unum|</code><code>awk</code> <code>'{print $2}'</code><code>`</code>
<code>[ $num -</code><code>eq</code> <code>0 ] && $mysql </code><code>"insert into $db.Computers(id) values('$name')"</code>
<code>mv</code> <code>$HSVDIR/$</code><code>file</code> <code>$TMPDIR</code>
<code>rm</code> <code>-f $LOCK</code>
<code>exit</code> <code>0</code>
本文轉自 rong341233 51CTO部落格,原文連結:http://blog.51cto.com/fengwan/1620323