信号列表:
在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