Bash betik kurulumu için geçici bir SSH tünel
Özellik listesi, bir BASH script istiyorum:
- uzak bir sunucuya bir SSH tünel oluşturun.
- Bazı tüneli kullanan yerel olarak çalışır.
- Sonra kapatma tünel.
"Kapatma kısmı" bana olan şaşkın.
Şu anda, saçma bir çözüm buldum. Bir kabuk içinde bir tünel oluşturmak için aşağıdaki işletiyorum.
# Create the tunnel - this works! It runs forever, until shell is quit.
ssh -nNT -L 50000:localhost:3306 jm@sampledomain.com
Sonra, başka bir kabuk penceresinde, sadece işimi yapıyorum
# Do some MYSQL stuff over local port 50000 (which goes to remote port 3306)
İşim bittiğinde sonunda. Ben tünel öldürmek shell penceresini kapatın.
Gibi bir komut yapmak istiyorum: Tünel oluşturma # iş # yapmak Tünel öldürür. #
Nasıl öldürmek hangi biliyorum bu yüzden tünel süreci takip etmek,?
CEVAP
Bu kadar temiz bir ssh ile yapabilirsiniz 'yuva kontrol'. Zaten çalışan bir SSH süreci konuşmak ve pıd, vb öldürmek. 'Denetim soketi' aşağıdaki gibi: (- M ana ve yuva için-S) kullanın
$ ssh -M -S my-ctrl-socket -fnNT -L 50000:localhost:3306 jm@sampledomain.com
$ ssh -S my-ctrl-socket -O check jm@sampledomain.com
Master running (pid=3517)
$ ssh -S my-ctrl-socket -O exit jm@sampledomain.com
Exit request sent.
-Ctrl-benim soket oluşturulan gerçek bir dosya olduğunu unutmayın.
a very RTFM reply on the OpenSSH mailing list dan bu bilgiyi aldım.
Nasıl ve bash ile bir dosya için hem s...
Nasıl bir değişkeni bash ayarlanmış ol...
Nasıl bir BASH değişken bir komut çıkt...
Nasıl geçerli kullanıcı için geçici di...
Sözdizimi döngü sırasında tek satırlık...