it-swarm.asia

Masaüstümden uzaktaki bir sunucuda ssh üzerinden komut vererek ekran oturumu nasıl başlatabilirim?

Masaüstümdeki tek bir ssh komutuyla uzak sunucularda ekran oturumları başlatabilmek istiyorum. Ancak, ekranın ssh üzerinden bir komut çalıştırırken kullanılamayan bir terminale ihtiyacı var gibi görünüyor.

Açıkça

ssh [email protected] screen "tail -f /var/log/messages"

(örnek olarak) çalışmıyor ve

Must be connected to a terminal.

Ssh komutunun bir ekranın altında başlatılmasını istiyorum, böylece daha sonra giriş yapabilir ve manuel olarak başlattığım bir ekran oturumuna yaptığım gibi ekleyebilirim.

Ssh için -t seçeneğini kullanmayı deneyin

ssh -t [email protected] screen "tail -f /var/log/messages"

Gönderen man ssh

 - t Yalancı tty dağıtımını zorla. Bu, uzak bir makinede arbi - 
 Trary ekran tabanlı programları yürütmek için kullanılabilir; bu, örneğin, örneğin menü hizmetlerini uygularken 
 Çok yararlı olabilir. Birden fazla -t 
 Seçeneği, ssh'ın yerel tty'si olmasa bile tty ayırmayı zorlar. 
79

Kullanabilirsiniz:

ssh [email protected] screen -m -d "tail -f /var/log/messages"

Bu, üzerinde çalışan bir komutla ayrı bir ekran başlatır.

   -m   causes screen  to  ignore  the  $STY  environment  variable.  With
        "screen  -m"  creation  of  a  new session is enforced, regardless
        whether screen is called from within  another  screen  session  or
        not.  This  flag has a special meaning in connection with the `-d'
        option:

   -d -m   Start screen in "detached" mode. This creates a new session but
           doesn't  attach  to  it.  This  is  useful  for  system startup
           scripts.
33
Alakdae

Geç cevap, ama bu benim yaptığım, bunu yapan bir takma ad (diyelim t):

ssh $MYSERVER -a -x -t screen -xRR -A -e^Zz -U -O

Bu, ssh'e aracıyı ve X11 iletmeyi devre dışı bırakmasını söyler ve screen öğesine çalışan bir oturuma eklenmesini söyler, gerekirse yeni bir oturum başlatır, ^Z koparma komutu olarak UTF-8 kullanın ve terminal hakkında akıllı olun.

Bütün bunlar bir terminal açabileceğim, t yazdığım ve $ MYSERVER üzerinde ekran oturumumu açacağım anlamına geliyor. Daha sonra başka bir terminal açabilir, aynı şeyi yapabilirim ve aynı oturuma başka bir pencere alırım.

Aynı ekran oturumunda birden fazla terminal penceresine sahip olmak gerçekten güzel, böylece aynı anda iki ekran sekmesine bakabilirsiniz.

8
w00t

Sunucumdaki ~/.bashrc dosyasına aşağıdakileri koyarak, sunucuda ilk kez oturum açtığımda bir ekran oturumu başlatır veya zaten çalışıyorsa, beni o oturuma yeniden bağlar.

Bunu çok kullanışlı buluyorum:

if [ -n "$SSH_CONNECTION" ] && [ -z "$SCREEN_EXIST" ]; then
    export SCREEN_EXIST=1
    screen -DRi
fi
4
Brent