ssh -t drg@host "screen -dRS foo" - i zrywane sesje SSH nie straszne
Czy czasem zdarza Wam się, że działacie coś na zdalnym hoście po ssh i nagle zrywa Wam połączenie? Musicie wtedy onelinera pisać od nowa, albo usuwać pliky wymiany czy przywracać część plików. Powyższy oneliner, który zaprzęga screen-a do pracy jest jednym z tricków, który pozwoli temu zaradzić. Rozbijmy go na części pierwsze:
Dzięki temu, po zestawieniu połączenia, automatycznie uruchomi się screen i podłączy do sesji o wskazanej nazwie, a jeśli nie istniała, stworzy ją.
Oczywiście równie dorze, możemy najpierw standardowo podłączyć się po ssh, a potem, jeśli potrzebujemy, wydać polecenie podłączającej do danej sesji nazwanej screen-a, np.: screen -dRS foo.
Możemy mieć oczywiście wiele różnie nazwanych sesji.
Jak to działa — krok po kroku
Rozłóżmy onelinera na czynniki pierwsze:
ssh -t drg@host
połącz się z hostem host jako użytkownik drg wymuszając allokację pseudoterminala (opcja -t) co jest wymagane przy uruchomianiu programów typu screen,
"screen -dRS foo"
po podłączeniu uruchom polecenie screen -dRS foo, którego opcje spowodują:
-d- odłącz sesję, jeśli już jakaś jest podłączona do tegoscreen-a,-R- podłącz się do sesji, a jeśli nie istniała, utwórz ją,-S foo- nazwij aktualną sesję foo, żeby jednoznacznie wskazać sesję, którą dotyczą parametry-di-R.