信号列表:

    在linux中和信号相关的常见命令为kill及trap命令,下来如何利用trap控制跳板机脚本来使用命令:

    命令:kill  -l 和 trap  -l

image.png

企业实战中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后面的结果

image.png

命令处如果使用 ' ' 表示屏蔽ctrl+c功能,':' 表示开启功能

image.png

范例17:同时处理多个信号    这里所有的屏蔽0-60的所有数字信号,没看懂这里

image.png

下来时trap生产应用案例

大体意思时在脚本中放入trap命令。执行循环,然后按ctrl+c执行find那条删除命令

#!/bin/bash#author:huipenggang#mail:1159291043@qq.comtrap "find /tmp/xpg  -type f -name "hui_*" | xargs rm -f && exit" 2while truedo  touch /tmp/xpg/hui_"`date +%F-%T`"  sleep 4  ls -l /tmp/xpgdone#ls /tmp/xpg

执行结果:

image.png

开发跳板机脚本:

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

#!/bin/bashaa() {cat << EOF1. root 192.168.116.1352. root 192.168.116.136*. exitEOF}fu() {for ((i=1;i<4;i++))do  echo -n "."  sleep 1done#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