用shell开发跳板机

前端之家收集整理的这篇文章主要介绍了用shell开发跳板机前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

信号列表:

在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:1159291043@qq.com


trap"find/tmp/xpg-typef-name"hui_*"|xargsrm-f&&exit"2
whiletrue
do
touch/tmp/xpg/hui_"`date+%F-%T`"
sleep4
ls-l/tmp/xpg
done
#ls/tmp/xpg

执行结果:

开发跳板机脚本:

前提是要在两台上面做免密认证:

#!/bin/bash
aa(){
cat<<EOF
1.root192.168.116.135
2.root192.168.116.136
*.exit
EOF
}
fu(){
for((i=1;i<4;i++))
do
echo-n"."
sleep1
done
#echo-ne"\n"------mashang------""
}
bb(){
trap""INTEXITTSTP
aa
echo"---------mashang-----------"
fu
read-p"yourchoices:"num
case$numin
1)
ssh192.168.116.135
;;
2)
ssh192.168.116.136
;;
3)
echo"thisisbad"
esac
}
bb

猜你在找的Bash相关文章