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)"
腳本運行:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.