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