专栏首页量子化学Linux下远程工作防掉线的一个办法

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

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

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

bras
BRAS username:  [输入用户名]
BRAS passwd:    [输入密码]

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

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

#!/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)。以南大为例:

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

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

0  *  * *  *  [用户]   autobras

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

本文分享自微信公众号 - 量子化学(quantumchemistry),作者:yuqiwang

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 几个常见的弱相互作用测试集(2):S66

    文献:Jan Řezáč, Kevin E. Riley, Pavel Hobza, J. Chem. Theory Comput. 2011, 7, 2427...

    用户7592569
  • Fortran中的陷阱-NAMELIST

    NAMELIST(有名列表)是一种特殊的I/O方法,它将一组变量和数值封装在一起,进行输入/输出操作。其声明形式如下:

    用户7592569
  • 从密度矩阵产生自然轨道_实战篇(上)

    本公众号之前发过自然轨道的原理介绍,详见《从密度矩阵产生自然轨道-理论篇》和《S^(1/2)的一些性质》。对其中原理和公式熟悉的读者,可以自己编写代码从密度矩阵...

    用户7592569
  • html5网页中用video标签无法播放MP4视频的解决方法

    今天一位朋友Q我说:为什么我录制的MP4视频在本地可以播放但是使用html5的video多媒体播放标签不能正常播放只有一个进度条而不显示图像?当时我也很好奇MP...

    逸鹏
  • 微信小程序之同步与异步API

    我们的小程序的宿主是微信,小程序涉及到很多调用微信功能的场景,如获取用户信息,本地存储,支付功能等;因此,小程序开发框架为我们提供了丰富的微信原生API。小程序...

    张世强
  • python 自动化部署工具-fabri

    fabric 默认引用fafile.py,指定执行文件加参数-f,如:fab -H 127.0.0.1 -f fabtest.py test

    py3study
  • Python数据结构与算法

    g = filter(lambda x : x >=0, data) 在python3中,得到的是构造器,要用list才可以得到结果 list(g)

    慕白
  • JNI介绍

    JNI(Java Native Interface),即Java本地接口,JNI是Java调用Native 语言的一种特性。通过JNI可以使得Java与C/C+...

    小蚂蚁与大象
  • shell中的函数(function)、数组、告警系统分析

    函数就是把一段代码整理到一个小单元中,并给这个小单元命名,当用到这段代码时直接调用这个小单元的名字即可。

    阿dai学长
  • php 命名空间(namespace)原理与用法实例小结

    本文实例讲述了php 命名空间(namespace)原理与用法。分享给大家供大家参考,具体如下:

    砸漏

扫码关注云+社区

领取腾讯云代金券