Myslím, že to všichni znáte:jste připojeni ke svému serveru pomocí SSH a právě kompilujete nějaký software (např. nové jádro) nebo děláte nějaký jiný úkol, který zabere spoustu času, a najednou vám z nějakého důvodu vypadne připojení a ztratíte svou nedokončenou práci. To může být velmi nepříjemné, ale naštěstí existuje malá utilita zvaná obrazovka, která vám umožní znovu se připojit k předchozí relaci, abyste mohli dokončit svůj úkol. Tento krátký tutoriál ukazuje, jak používat obrazovku právě pro tento účel.
1 Instalace příkazu obrazovky
Instalace obrazovky je velmi snadná. V Debianu spusťte:
apt-get install screen
Pro Ubuntu použijte příkaz se sudo:
sudo apt-get install screen
A pro Fedora, CentOS, SuSE a Mandriva existují také balíčky obrazovek, které můžete nainstalovat pomocí yum/yast/urpmi/...
Fedora a CentOS
yum install screen
2 Použití příkazu obrazovky
Pomocí obrazovky můžete vytvořit jednu nebo více relací ve svém aktuálním terminálu SSH. Stačí běž
screen
začít. To vytvoří relaci obrazovky nebo okno (ačkoli to tak nevidíte) ve vašem aktuálním terminálu SSH:
Stisknutím mezerníku nebo Return přejděte na příkazový řádek:
Vypadá to jako váš normální terminál SSH, že?
Nyní popíšu nejdůležitější příkazy obrazovky, které potřebujete k ovládání obrazovky. Tyto příkazy začínají CTRL a, aby se odlišily od normálních příkazů shellu.
- Ctrl a c – Vytvoří novou relaci obrazovky, takže můžete použít více relací obrazovky najednou.
- Ctrl a n – Přepne na n ext screen session (pokud používáte více než jednu).
- Ctrl a p – Přepne na p opakovaná relace obrazovky (pokud používáte více než jednu).
- Ctrl a d – Odpojí relaci obrazovky (bez ukončení procesů v ní – pokračují).
Chcete-li zavřít relaci obrazovky, kde jsou všechny úkoly dokončeny, můžete napsat
exit
Teď si s tím trochu pohrajeme. V našem okně obrazovky spustíme příkaz
top
Mělo by to vypadat takto:
Nyní vytvoříme další relaci obrazovky zadáním
Ctrl a c
Otevře se nová prázdná obrazovka a spustíme
tail -f /var/log/mail.log
abyste se mohli průběžně dívat na náš protokol pošty:
Nyní můžete procházet své dvě obrazovky spuštěním
Ctrl a n
nebo
Ctrl a p
Chcete-li odpojit relaci obrazovky a vrátit se k normálnímu terminálu SSH, zadejte
Ctrl a d
Zpět na svůj normální terminál SSH můžete spustit
screen -ls
k získání seznamu vašich aktuálních relací obrazovky:
There are screens on:
2477.pts-0.server1 (Detached)
2522.pts-0.server1 (Detached)
2 Sockets in /var/run/screen/S-root.
Chcete-li se znovu připojit k jedné z těchto relací, spusťte
screen -r 2477.pts-0.server1
kde 2477.pts-0.server1 je název jedné z relací z výstupu obrazovky -ls.
Chcete-li opustit a dokončit relaci obrazovky, dokončete všechny aktuální úlohy v ní (nahoře lze dokončit zadáním q, tail -f /var/log/mail.log lze dokončit zadáním CTRL c) a poté zadejte
exit
Poté přejdete zpět na další relaci obrazovky (pokud používáte více než jednu) nebo na normální terminál SSH, pokud nejsou otevřeny žádné další relace obrazovky.
Pokud se chcete o obrazovce dozvědět více, spusťte
man screen
3 Moje připojení přerušilo – co mohu dělat?
Nyní předpokládejme, že zkompilujete jádro v relaci obrazovky, což normálně trvá dlouho a vaše připojení náhle přestane fungovat. Díky obrazovce se vaše práce neztratí. Jakmile bude připojení zálohováno, přihlaste se znovu do systému pomocí SSH a spusťte
screen -ls
jak je uvedeno v kapitole 2. Z výsledků vyberte jednu relaci (např. 2477.pts-0.server1) a znovu se k ní připojte:
screen -r 2477.pts-0.server1
Pokud jste vybrali správnou relaci, měli byste zjistit, že se vaše jádro stále kompiluje (pokud mezitím nebylo dokončeno), abyste mohli pokračovat ve své práci.
4 odkazy
- obrazovka:http://www.gnu.org/software/screen