欢迎您访问我爱IT技术网,今天小编为你分享的操作系统知识是:【防止因意外掉线断网引起的ssh终端程序异常20140110】,下面是详细的分享!
防止因意外掉线断网引起的ssh终端程序异常20140110
背景:在通过ssh管理服务器的过程中,经常会出现意外断网、掉线的问题,出现断网掉线的时候终端就断开,如果此时有前台正在运行的程序或者当前的操作非常重要且不可终止,后果可能很严重,那时你就欲哭无泪呀,也许有同学说可以用nohup,不错,但是在很多时候我们也不知道什么时候掉线、什么时候断网,即使我们知道nohup,也不一定能有效的利用起来,并且每次前后台来回切换也挺麻烦的。所以找到了一种一次配置(还是对用户透明),终身受益的方式----screen。用途:可靠的恢复异常中断的ssh会话
要点:用linux下强大的screen开启虚拟终端,配合用户的profile文件一次搞定,用户ssh登录后自动提示是否有异常中断的会话,有的话提示选择要恢复的会话,没有的话直接进入新会话,所有操作对终端用户是透明的,如果后期再结合堡垒机那就更完美了。
配置过程:
1、安装screen(略)
2、在特定用户的profile文件末尾添加如下(也可以用全局profile)
[root@admin200 ~]# more /home/chroot_test/.bash_profile
##add by lai
start_time=$(date +%Y年%m月%d日%H:%M:%S)
ssh_session_name=laijingli_$start_time
##查询挂起的会话
/usr/bin/screen -ls|/bin/grep Detached >/dev/null
if [ "$?"="0" ]; then
##显示挂起的会话
/usr/bin/screen -ls|/bin/grep Detached
echo -ne "\033[32m\033[01m你有异常断开的ssh会话连接,请输入要恢复的会话编号,或者输入new将启用新会话:\033[0m"
##判断输入
read input_session
input_check=`/usr/bin/screen -ls|/bin/grep Detached|awk '{print $1" "$2}'|/bin/grep ^$input_session|wc -l`
#echo input_chcek:$input_check
until [ "$input_session"="new" ] || [ "$input_check"="1" ];do
echo -en "\033[31m\033[01m 请输入会话编号或者no:\033[0m"
read input_session
input_check=`/usr/bin/screen -ls|/bin/grep Detached|awk '{print $1" "$2}'|/bin/grep ^$input_session|wc -l`
done
##启用新会话or恢复会话
if [ "$input_session"="new" ];then
echo 正在启用新会话
exec /usr/bin/screen -S $ssh_session_name
else
echo 正在恢复会话:`/usr/bin/screen -ls|/bin/grep Detached|awk '{print $1" "$2}'|/bin/grep ^$input_session`
exec /usr/bin/screen -r $input_session
fi
else
echo 2 new:你没有异常断开的ssh会话连接,将启用新会话
exec /usr/bin/screen -S $ssh_session_name
fi
以上就是关于防止因意外掉线断网引起的ssh终端程序异常20140110的操作系统教程分享,更多操作系统知识请移步到>>操作系统频道。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
