首页 > 系统服务 > 详细

用shell开发跳板机

时间:2018-02-15 11:29:42      阅读:257      评论:0      收藏:0      [点我收藏+]
信号列表:

    在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  -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开发跳板机

原文:http://blog.51cto.com/11726212/2071699

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!