信号列表:
在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:[email protected] 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
原文地址:http://blog.51cto.com/11726212/2071699
时间: 2024-10-10 19:15:54