shell實例--更新ing

1、批量增加用戶並隨機生成用戶密碼
for x in $(seq 1 10);do
echo "adding test$x"
(
        echo -ne "test$x\t"
        useradd test$x 2>&1 > /dev/null && mkpasswd test$x
)  >> /tmp/userlog
done
echo 'cat /tmp/userlog to see new paswords'
 
2、這個腳本測試IPv6版本的ping命令是否存在。如果存在,就使用ping6來給系統的IPv6的環回接口發送一個測試包。如果不存在,該腳本就會檢查IPv4版本的ping命令。如果它存在,就使用ping來給系統的IPv4的環回接口發送一個測試包。如果都不存在,可能什麼地方就出錯了,返回一個非零的退出狀態並同時發送一條警告消息
 
if test -x /bin/ping6; then
    ping6 -c1 ::1 &> /dev/null && echo "IPv6 stack is up"
elif test -x /bin/ping; then
    ping -c1 127.0.0.1 &> /dev/null && echo "No IPv6, but IPv4 stack is up."
else
    echo "Oops! This should not happen."
    exit 255
fi
 
3、創建一個reach.sh的腳本。該腳本會在它接受的第一個參數所指定的主機上運行
(1)
#!/bin/bash
TARGET=$1
ping -c1 -w2 $TARGET &> /dev/null; echo $?
 
運行此腳本:
如上圖所示,RHEL5主機能ping通,所以echo $?返回值爲0
 
如上圖所示,RHEL1的主機不能ping通,所以echo $?的返回值爲2
 
(2)修改上述腳本:
ping命令的返回值($?)被保存在一個叫做RESULT變量中;
如果這個變量的值不是零,就會顯示“$TARGET is down”這條消息
否則顯示“$TARGET is up”這條消息
腳本在推出時返回$RESULT
 
#!/bin/bash
TARGET=$1
ping -c1 -w2 $TARGET &> /dev/null
RESULT=$?
 
if [ $RESULT -ne 0 ]
then
        echo "$TARGET is down"
else
       echo "$TARGET is up"
fi
echo $RESULT
 
腳本運行結果如下:
 
4、創建一個更加靈活的備份腳本
#!/bin/bash
#backup.sh
 
ORIG=$1
BACK=~/backup/$(basename $ORIG)-$(date +%Y%m%d)
 
if [ -e $BACK ]
then
        echo "$BACK exits"
        read -p "Press Ctrl-c to exit or Enter to prossed:"
fi
 
cp -av $ORIG $BACK
echo "Backup of $ORIG to $BACK completed at:$(date)"
 
腳本運行:
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章