前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下远程工作防掉线的一个办法

Linux下远程工作防掉线的一个办法

作者头像
用户7592569
发布2020-07-27 15:48:20
1.1K0
发布2020-07-27 15:48:20
举报
文章被收录于专栏:量子化学量子化学

不少小伙伴疫情期间在家会用Teamviewer远程工作。笔者来自南大,南大的网络每个月会自动logout,或者有些单位的网络一段时间无活动会自动掉线,或者一些不明意外导致掉线,就会失去远程控制,扰乱工作进度。本文提供一种解决方法,针对使用Linux系统工作的情况,所讲的例子仅对南大适用,理解原理后,可根据自身需求做修改使之适用其他单位。

首先,趁没断网,用Teamviewer进入远程电脑。然后,在远程电脑里写一个登录网络并自动输入用户名和密码的脚本。南大登录网络是用一个bras脚本,运行bras之后会提示输入用户名的密码:

代码语言:javascript
复制
bras
BRAS username:  [输入用户名]
BRAS passwd:    [输入密码]

那么如何自动给bras脚本输入用户名和密码? 使用expect命令。值得注意的是expect命令不属于bash,如果远程电脑里没有expect命令,需要先安装(sudo apt install expect)。

下面把这个脚本叫做autobras,写法如下:

代码语言:javascript
复制
#!/usr/bin/expect       #此行写expect指令所在路径,指定此脚本由expect执行
set timeout 4           #设置等待时间为4秒
spawn ./bras            #执行./bras
expect “BRAS username:”
send “[用户名]\n”       #这两行表示屏幕出现“BRAS username:”后输入用户名并按回车键
expect “BRAS passwd:”
send “[密码]\n”         #这两行表示屏幕出现“BRASpasswd:”后输入密码并按回车键
expect eof

运行此脚本,即发现等待4s后,网络自动登录。

此处用到的bras是南大的脚本,如果是别的单位,需换成别的单位的脚本,并对应调整提示输入用户名和密码的交互文本。或者直接使用curl命令(南大的bras核心其实就是一个curl)。以南大为例:

代码语言:javascript
复制
curl-d “username=[用户名]&password=[密码]”http://p.nju.edu.cn/portal_io/login

完成autobras之后,下一步要让它自动定期执行,比如每小时执行一次。可编辑/etc/crontab文件来达到此目的(需root权限)。打开/etc/crontab, 添上如下一行:

代码语言:javascript
复制
0  *  * *  *  [用户]   autobras

如此,便实现了每小时的第0分钟运行autobras重新登入。简单解释这一行指令(即crontab的语法):前五列分别表示分钟、时、天、月、星期几,如果写星号就表示每个都执行。第六列写命令的执行者,第七列写命令。所以这一行的完整解读为:不论星期几,每月每天每小时的第0分钟由[用户]执行autobras命令。这样,远程电脑就可以不断重新登入网络,解决一些断网问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子化学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档