1. 程式人生 > >shell應用4

shell應用4

在線的 反饋 cas file index 否則 html users 編寫

1、編寫一個名為getarp.sh 的小腳本,記錄局域網中各主機的MAC地址:
1、編寫getarp.sh腳本文件
(1)通過arping命令發送ARP請求,根據反饋結果記錄MAC地址。
(2)將網段地址(如192.168.4.)賦值給變量NADD,作為檢測地址的前綴。
(3)使用while循環語句,重復檢測目標並記錄MAC地址,主機地址從1-254。

[root@localhost ~]# vi getarp.sh
#!/bin/bash

  1. 定義網段地址、MAC列表文件
    NADD="192.168.4."
    FILE="/etc/ethers"
  2. 發送ARP請求,並記錄反饋結果
    [ -f $FILE ] && /bin/cp -f $FILE $FILE.old //備份原有文件
    HADD=1 //定義起始掃描地址
    while [ $HADD -lt 128 ]
    do
    arping -I ens33 -c 2 ${NADD}${HADD} &> /dev/null
    if [ $? -eq 0 ] ; then
    arp -n | grep ${NADD}${HADD} | awk ‘{print $1,$3}‘ >> $FILE
    fi
    let HADD++
    done
    [root@localhost ~]# chmod +x getarp.sh
    [root@localhost ~]# ./getarp.sh //執行檢測程序
    [root@localhost ~]# cat /etc/ethers
    2.編寫一個名為 scanhost.sh 的掃描腳本,檢查有哪些主機開起來匿名FTP服務,掃描對象為 /etc/ether 文件中的所有IP地址,掃描端口為21.

(1)有很多方法可以檢測一個主機是否開啟匿名FTP服務,這裏采取以wget下載工具訪問FTP根目錄的方式,若能夠成功列表,則視為匿名FTP已開啟,否則視為關閉。

(2)通過awk命令過濾出/etc/ethers文件中的所有IP地址,賦值給變量TARGET。
(3)使用for循環語句,讀取TARGET變量中的IP地址,重復探測FTP開啟情況。

[root@localhost ~]# vi scanhost.sh
#!/bin/bash
TARGET=$(awk ‘{print $1}‘ /etc/ethers)
echo "以下主機已開放匿名FTP服務:"
for IP in $TARGET
do
wget ftp://$IP/ &> /dev/null
if [ $? -eq 0 ] ; then
echo $IP
rm -rf index.html //刪除測試產生的臨時文件
fi
done

3、利用for循環批量創建用戶

#!/bin/bash
ULIST=$(cat /root/users.txt)
for UNAME in $ULIST
do
useradd $UNAME
echo "123456" | passwd --stdin $UNAME &>/dev/null
done

4、利用while循環判斷在線的主機

#!/bin/bash
HLIST=$(cat /root/a.txt)
i=130
while [ $i -le 135 ]
do
for IP in $HLIST
do
ping -c 3 -i 0.2 $IP
if [ $? -eq 0 ]
then
echo "host 192.168.8 $i is up">>/1.txt
else
echo "host 192.168.8$i is down">>/2.txt
fi
done
let i++
done

5、利用腳本判斷服務是否啟動,沒有啟動則啟動
#!/bin/bash
case "$1" in
start)
echo -n "qidong"
if sleep 7200 &
then
echo "ok"
fi
;;
stop)
echo -n "tingzhi"
pkill "sleep" &> /dev/null
echo "ok"
;;
status)
if pgrep "sleep" &> dev/null ; then
echo "sleepqidong"
else
echo "sleeptingzhi"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "yongfa: $0 {start|stop|status|restart}"
esac

shell應用4