使用Screen抵御杯具
当DBA远程做一个大操作的时候最怕的是什么?断网!有木有啊!!
建一个20G的索引,进度到98%的时候突然断网,前功尽弃,有木有啊!!
怎么样才能抵御这种杯具呢?找一台Windows的机器作为终端,上面装上SSH工具,那Linux呢?靠它——screen
Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。简单来说就是一个命令行版本的SecureCRT。
当远程会话不幸关闭的时候,screen还能驻留在服务器端,并且很容易地重连(attach),这样就保证我们的工作不会因为网络问题而终端,这是多么好的功能啊。
键入screen即可使用screen
1 | [oracle@alifina-dev12 ~]$ screen |
如果报以下错:
1 | Cannot open your terminal '/dev/pts/10' - please check. |
使用以下命令将输出重定向即可:
1 | [oracle@alifina-dev12 ~]$ script /dev/null |
然后我们开始一个任务,譬如用vim写小说,突然抓狂把终端强行关闭了,那时不是之前的努力都没有了呢?
我们重连一个会话,用以下命令查看并且再次attach即可,我们的成果还在!
1 2 3 4 5 6 | [oracle@alifina-dev12 ~]$ screen -ls There is a screen on: 7366.pts-0.alifina-dev12 (Detached) 1 Socket in /var/run/screen/S-oracle. [oracle@alifina-dev12 ~]$ screen -r 7366 |
这绝对是screen的杀手锏功能!!
screen还能做得更好吗?当然!
修改~/.screenrc,如果整台服务器都是你用的话也可以修改/etc/screenrc
1 2 3 4 5 6 7 8 9 10 11 12 13 | ## general tweaks vbell off autodetach on startup_message off defscrollback 1000 attrcolor b ".I" termcap xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' defbce "on" escape "^Kk" defencoding UTF-8 encoding UTF-8 UTF-8 hardstatus alwayslastline '%{gk}[%= %{wk}%?%-Lw%?%{=b kR}[%{W}%n%f %t%?(%u)%?%{=b kR}]%{= kw}%?%+Lw%?%?%= %{g}]%{=b C}[%m/%d %C%a]%{W}' shell -$SHELL |
现在screen开起来会像这样:
看到没,下面那一行彩色的东西,输入Ctrl+k,紧接着马上输入c,多了一个:
输入 Ctrl+k n 就可以移动到下一个window(输入Ctrl+k p是上一个window),功能和SecureCRT的tab一样。
有朋友会问为什么是Ctrl+k 呢?这个是在screenrc(.screenrc)中定义的,还有个特别的名字——命令键,我受Visual Studio的毒害很深,爱上了Ctrl+k,所以把它设为 Ctrl+k。
一些有用的操作:
- 命令键 A(注意是大写的A,平时输入是shift+A):将window改名。
- 命令键 c:创建一个新的window
- 命令键 d:detache当前这个screen
- 命令键 ?:帮助……
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述