1. 程式人生 > >用shell開發跳板機

用shell開發跳板機

應用案例 mark alt color vpd hang 常見命令 uip ctr

信號列表:

在linux中和信號相關的常見命令為kill及trap命令,下來如何利用trap控制跳板機腳本來使用命令:

命令:kill -l 和 trap -l

技術分享圖片

企業實戰中linux系統的重要信號及說明

HUP(1) 掛起

INT(2) 中斷

OUIT(3) 退出

ABRT(6) 中止

ALRM(14) 報警

TERM(15) 終止

TSTP(20) 停止進程的運行,但該信號可能被處理或忽略


17.2使用trap控制信號

trap命令用戶指定在接收到信號後采取行動,trap常見的一種用途是在腳本程序被中斷時完成清理工作,或者屏蔽用戶非法使用某些信號,在使用信號名時需要省略SIC前綴。

#trap '命令;命令' 信號編號

或者

#trap '命令' 信號名

測試:

此處的信號名為2(INT),在使用crtl+c時就是出現echo後面的結果

技術分享圖片

命令處如果使用 ' ' 表示屏蔽ctrl+c功能,':' 表示開啟功能

技術分享圖片

範例17:同時處理多個信號 這裏所有的屏蔽0-60的所有數字信號,沒看懂這裏

技術分享圖片

下來時trap生產應用案例

大體意思時在腳本中放入trap命令。執行循環,然後按ctrl+c執行find那條刪除命令

#!/bin/bash
#author:huipenggang
#mail:[email protected]


trap "find /tmp/xpg  -type f -name "hui_*" | xargs rm -f && exit" 2
while true
do
  touch /tmp/xpg/hui_"`date +%F-%T`"
  sleep 4
  ls -l /tmp/xpg
done
#ls /tmp/xpg

執行結果:

技術分享圖片

開發跳板機腳本:

前提是要在兩臺上面做免密認證:

#!/bin/bash
aa() {
cat << EOF
1. root 192.168.116.135
2. root 192.168.116.136
*. exit
EOF
}
fu() {
for ((i=1;i<4;i++))
do
  echo -n "."
  sleep 1
done
#echo -ne "\n"------mashang------" "
}
bb() {
  trap " " INT EXIT TSTP
  aa
  echo "---------mashang-----------"
  fu
  read -p "your choices:" num
  case $num in
  1)
    ssh 192.168.116.135
    ;;
  2)
    ssh 192.168.116.136
    ;;
  3)
    echo "this is bad"
esac
}
bb


用shell開發跳板機