運維技術指導【5】Shell腳本練習

1、 統計/var/log下文件的個數。

find /var/log -type f  | wc -l

2、如何將F1.txt文件的運行結果輸出到F2.txt裏?

./F1 > F2.txt

3、寫一個腳本實現判斷192.168.1.0/24 網絡裏,當前在線的ip有哪些,能ping通則認爲在哪

#!/bin/sh
CMD="ping -w 2 -c 2"	#ping -c 2,表示只發送一個icmp echo_request 包,-w 2 表示等待2s,在2s的等待時間中,如果收到目標地址返回的icmp echo_response, 則ping命令的exit code是0, 否則exit code是1
Ip="192.168.1."
for n in $(seq 254)
  do
    {
     $CMD $Ip$n &> /dev/null	
     if [ $? -eq 0 ];then		#ping命令狀態爲0,即ping通了
     	echo "$Ip$n 在線"
     fi
    }&
done
wait;

4、根據以下信息:

	    IP_Address		MAC_Address 		Interface 	Static
		10.66.10.250 	80:71:7A:33:CA:A7 	br 			on
		10.66.10.249 	5C:50:15:7F:3B:F5 	br 			on

要求:將以上文件名稱test.txt文件中IP_Address,MAC_Address, Interface三項下的內容取出來,值以“:”分割,並呈格式顯示出來。注:
10.66.10.250:80:71:7A:33:CA:A7:br
10.66.10.249:5C:50:15:7F:3B:F5:br

awk 'NR!=1{OFS=":";print $1,$2,$3}' test.txt;

5、在shell中變量的賦值有四種方法,其中採用name=oupeng.com的方法稱:

直接賦值 使用read命令 使用命令行傳參 使用命令輸出

6、編寫一個腳本,5分鐘檢查一次日誌,發現有暴力SSH破解現象的,提取此類IP地址,並去重,並按降序排序。

要求:同一個IP暴力破解超過10次,自動屏蔽IP地址,指定辦公室IP地址(192.168.100.100)爲可信任IP地址,不受屏蔽規則限制,以下爲日誌格式:

日誌樣式:
May 4 03:43:07 tz-monitor sshd{14003}: Failed password for root from 124.232.135.84 port 25251 ssh2
Myy 4 03:43:07 tz-monitor sshd{14082}: invalid user postgres from 124.232.135.84
// #!/bin/bash
awk '/Failed password/{count[$(NF-3)]++}END{for (ip in count) if(count[ip]>=10){print count[ip],ip}}' /var/log/secure > /tmp/count_ip.txt
while read line
do
  IP=$(echo $line |awk '{print $2}')
  if [ "$IP" != "192.168.100.100" ];then
    if ! grep -w $IP /tmp/drop_ip.txt &> /dev/null;then
      iptables -I INPUT -s $IP -j DROP
      echo $IP >> /tmp/drop_ip.txt
    fi
  fi
done < /tmp/count_ip.txt;

7、檢查IP地址合規,請用shell編寫代碼,列出不以199或200開頭的IP地址,如199.x.x.x 或200.x.x.x

Interface Physical Protocol IP Adderss
Eth1/0/1 up up 199.11.250.1
Eth1/0/2 up up 200.11.250.5
Loop0 up up(s) 199.11.250.1
Vlan1 *down down unassigned
Vlan500 down down 139.100.1.157
Vlan900 up up 140.11.250.41

得到如下結果:
	域名的出現次數 域名
	3 www.baidu.com
	2 post.baidu.com
	1 mp3.baidu.com
An highlighted block
var foo = 'bar';

9、在單臺服務器Linux操作系統環境下,寫一行命令,將所有該機器的所有以“.log.bak“爲後綴的文件,打包壓縮並上傳到ftp上,FTP地址爲123.234.25.130的/home/bak文件夾

cd / find -type f -name "*.log.bak" |xargs tar zcf /tmp/all.tar.gz
ftp -i -n <<FTPIT
open 123.234.25.130
user username_xxx password_xxx
bin
passive
hash
cd /home/bak
lcd /tmp
put all.tar.gz
quit
FTPIT;

10、Linux腳本:現在要刪除本機中若干文件,/root/file.list中記錄了這些文件的絕對路徑,請用腳本實現。/root/file.list內容範例:/tmp/1.file

// #!/bin/bash
while read line
do
  rm $line -f
done < /root/file.list;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章