第一节 跳板机实现原理(图例)
第2节 涉及到的知识点
命令:trap
拓展知识:进程与信号
trap 语法,作用,使用
[jeson@mage-jump-01 ~/]$ trap -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
trap -l | 打印所有进程的信号 |
trap -p | 显示那些信号已经被设置了。 |
trap “” signals(或编号) | 为空表示这个信号,执行的命令为空。可以同设置多个trap “” signals1 signals2 signals N |
trap “commands” signals(编号) | 收到signals指定信号时,信号功能复位同时执行commands命令。可以同时设置多个 |
trap signals(或编号) | 没有命令部分,信号复原默认状态。可以同时恢复多个:trap signals1 signals2 signals N |
使用方法:
[jeson@mage-jump- ~/]$trap 'echo "I am a boy"' INT |
案例:ctrl + c 后,清理工作
窗口1 |
窗口2 |
cat >touch_file.sh <<-EOF [jeson@mage-jump-01 ~/]$ bash touch_file.sh |
# 观察窗口1按下ctrl + c后,是否自动清理文件 [jeson@mage-jump-01 ~/]$ watch -n 1 ls /tmp/jeson_* |
第2节 实现跳板机
跳板机主脚本:
窗口1:trap信号跳板机脚本 |
窗口2:设置特定用户登录不受跳板机代码影响 |
窗口3:测试效果 |
[jeson@mage-jump-01 ~/]$cat /server/scripts/tiao_ban_ji.sh #!/bin/bash |
[jeson@mage-jump-01 ~/]$ cat /etc/profile.d/tb.sh [ $UID -ne ] && [ $USER != 'jeson' ] &&\ source /server/scripts/tiao_ban_ji.sh 只有特定用户“root”和“jeson”可以使用“0) EXIT”功能。 |
======Host List======== |
密匙分发脚本:
密匙分发脚本1:cat /server/scripts/send_key.sh |
#!/bin/bash |
密匙分发exepect脚本实现非交互方式:cat /server/scripts/fenfa_sshkey.exp |
#!/bin/expect |
需要分发到的主机配置文件: |
[root@web-lnmp-01 ~/]#cat /server/scripts/conf/sshkey.conf root 10.0.0.31 |