惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
WordPress大学
WordPress大学
小众软件
小众软件
量子位
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
博客园_首页
The Hacker News
The Hacker News
C
Cyber Attacks, Cyber Crime and Cyber Security
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
Security Latest
Security Latest
博客园 - 叶小钗
The Last Watchdog
The Last Watchdog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
IT之家
IT之家
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
Lohrmann on Cybersecurity
V
V2EX
P
Proofpoint News Feed
I
Intezer
云风的 BLOG
云风的 BLOG
Spread Privacy
Spread Privacy
罗磊的独立博客
H
Help Net Security
T
Tor Project blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Schneier on Security
Blog — PlanetScale
Blog — PlanetScale
L
LINUX DO - 热门话题
D
DataBreaches.Net
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
Simon Willison's Weblog
Simon Willison's Weblog
Latest news
Latest news
P
Proofpoint News Feed
NISL@THU
NISL@THU
Y
Y Combinator Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog
P
Palo Alto Networks Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
S
Security @ Cisco Blogs

博客园 - killkill

jar 冲突、class 冲突的检测脚本 Oracle User Calls 和 Executions 两个概念的区别 使用 dbms_xplan.display 按照 plan_hash_value 查执行计划的方法 oratop 各个指标项说明 [转] sql_id VS hash_value lsattr/chattr [转]节约内存:Instagram的Redis实践 [原]佛山-杭州自驾路书 [原] insert into … on duplicate key update / replace into 多行数据 [摘] python url decoder 一条霸气的分析binlog的命令 一句命令完成MySQL的数据迁移(轻量级) [转]Linux下SSH Session复制 使用taskset命令来限制进程的CPU MySQL重复记录删除 [摘]Oracle 11g Flashback_transaction_query的undo_sql为空? Duplicate Active Database 遇到 ORA-01017 invalid username/password [摘]如何抓住蝴蝶效应中的那只蝴蝶 [原]将Oracle 中的blob导出到文件中
使用Screen抵御杯具
killkill · 2011-09-19 · via 博客园 - killkill

      当DBA远程做一个大操作的时候最怕的是什么?断网!有木有啊!!

      建一个20G的索引,进度到98%的时候突然断网,前功尽弃,有木有啊!!

      怎么样才能抵御这种杯具呢?找一台Windows的机器作为终端,上面装上SSH工具,那Linux呢?靠它——screen

      Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。简单来说就是一个命令行版本的SecureCRT。     

      当远程会话不幸关闭的时候,screen还能驻留在服务器端,并且很容易地重连(attach),这样就保证我们的工作不会因为网络问题而终端,这是多么好的功能啊。

      键入screen即可使用screen

[oracle@alifina-dev12 ~]$ screen

      如果报以下错:

Cannot open your terminal '/dev/pts/10' - please check.

      使用以下命令将输出重定向即可:

[oracle@alifina-dev12 ~]$ script /dev/null 

      然后我们开始一个任务,譬如用vim写小说,突然抓狂把终端强行关闭了,那时不是之前的努力都没有了呢?

      我们重连一个会话,用以下命令查看并且再次attach即可,我们的成果还在!

[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

## 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开起来会像这样:

Powered By killkill

      看到没,下面那一行彩色的东西,输入Ctrl+k,紧接着马上输入c,多了一个:

image      输入 Ctrl+k n 就可以移动到下一个window(输入Ctrl+k p是上一个window),功能和SecureCRT的tab一样。

      有朋友会问为什么是Ctrl+k 呢?这个是在screenrc(.screenrc)中定义的,还有个特别的名字——命令键,我受Visual Studio的毒害很深,爱上了Ctrl+k,所以把它设为 Ctrl+k。

      一些有用的操作:

    1. 命令键 A(注意是大写的A,平时输入是shift+A):将window改名。
    2. 命令键 c:创建一个新的window
    3. 命令键 d:detache当前这个screen
    4. 命令键 ?:帮助……