用shell開發跳板機
阿新 • • 發佈:2018-02-15
應用案例 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開發跳板機