天天看點

viewer.sh 20150320

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 ] &amp;&amp; echo "Running...." &amp;&amp; exit 0</code>

<code>LOCK=</code><code>/var/lock/viewer</code><code>.lock</code>

<code>[ -f $LOCK ] &amp;&amp; {</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>&gt;&gt;$LOCK</code>

<code>    </code><code>[ `</code><code>awk</code> <code>'END{print NR}'</code> <code>$LOCK` -gt 20 ] &amp;&amp; </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 ] &amp;&amp; </code><code>mkdir</code> <code>-p $TMPDIR</code>

<code>[ ! -d $BAKDIR ] &amp;&amp; </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 ] &amp;&amp; $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 ] &amp;&amp; $mysql </code><code>"delete from $db.Software where id='$name'"</code>

<code>#get Software &amp; 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 ] &amp;&amp; $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 &amp; 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 ] &amp;&amp; $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

繼續閱讀