Bu yazımda sık sık ssh kopmaları ve işinizin yarıda kalması durumunda sizlere yardımcı olabilecek screen aracından bahsetmek istiyorum. Screen aracı tek bir terminal ekranı içerisinde birden fazla terminal çalıştırmanızı sağlayan bir araçtır. Screen aracı birden fazla terminal ekranı açmakla kalmaz, açılan her screen ekranı üzerinde kullandığınız bütün komutlar normal terminal ekranınızı kapatsanız bile açılan screen ekranı üzerindeki komutlar çalışmaya devam eder. Örneğin bir sunucuya ssh ile bağlantı kurduktan sonra tcpdump ile 22 portuna gelen bütün paketlerin 24 saatlik kaydını tutup incelemeniz gerekebilir, bunu normal şartlarda bilgisayarınızı açık bırakarak ssh ile uzak sunucuya bağlı olmanız gerekiyor tabi bu ssh bağlantınızın kopmayacağı anlamına 'da gelmez. Ancak screen aracını kullanarak bilgisayarınızı güvenli bir şekilde kapatıp daha sonra uzaktaki sunucuya tekrardan ssh ile bağlanarak screen komutunun gerekli parametrelerini girerek kaldığınız yerden devam edebilirsiniz.
Screen aracını root yetkileri ile aşağıdaki komutu kullanarak paket deponuzdan kurabilirsiniz.
Screen aracının kullanımı oldukça basit aşağıdaki birinci komutu kullanarak yeni bir screen ekranı açabilirsiniz. Aşağıdaki birinci komutu kullandıktan sonra terminal ekranınıza küçük bir yazı metni gelecektir enter tuşuna basarak geçebilirsiniz. Daha sonra screen ekranının açıldığını doğrulamak isterseniz screen komutunu kullandıktan sonra exit komutunu kullanarak screen ekranından çıktığınızı görebilirsiniz.
# screen
# exit
Bir tane örnek yapalım isterseniz aşağıdaki birinci komutu yani screen komutunu kullandıktan sonra karşınıza yeni bir ekran gelecektir açtığınız screen ekranına herhangi bir komut girin ls, ps vb. komutları yazdıktan sonra CTRL+A+D kombinasyonuna basarak açtığınız screen ekranını arka plana atarak normal terminal ekranınıza geri dönebilirsiniz. Aşağıdaki resimde gördüğünüz üzere 18640 nolu numara ve Linux ismiyle screen ekranını arka plana atmış.
# screen
# ls
# ctrl+a+d
Arka planda çalışan bir screen ekranını geri ön plana getirmek isterseniz aşağıdaki komutu kullanarak geri ön plana getirebilirsiniz. Aşağıdaki resimde gördüğünüz üzere arka plandaki screen ekranında bir kaç komut kullanmıştım onuda görüyoruz.
# screen -r
Peki arka planda çalışan bütün screen ekranlarını nasıl görebilirsiniz bunu iki farklı şekilde yapabilirsiniz aşağıdaki resimde gördüğünüz iki komut arka plandaki screen ekranlarını listeliyor yani aynı işlevi görüyor komut satırınız 'da hangisi daha kolayınıza geliyorsa ikisinden birisini kullanabilirsiniz.
# screen -ls
# screen -r 18870
Bir screen ekranını açtıktan sonra CTRL+A+D kombinasyonuna basarak açtığınız screen ekranını arka plana atmak size biraz uğraştırıcı geliyorsa bunun daha kısa bir yöntemi var. Aşağıdaki resimde gördüğünüz parametrelerin anlamı şudur screen komutuyla yeni bir ekran açmasını istedik -dm parametresi ile ekranı çalıştırıp karşımıza getirmeden arka plana atmasını istedik daha sonra S parametresini kullanarak açtığımız screen ekranına yeni bir isim verdik.
# screen -dmS yazmak_istediğiniz_isim
# screen -ls
Arka planda çalışan bir screen ekranının işlemini sonlandırmak isterseniz bunu iki yöntemle yapabilirsiniz birincisi screen ekranının içerisine girip exit komutunu çalıştırmak bu yöntem biraz uğraştırıcı bir şey bunun daha pratik yöntemi ise aşağıdaki resimde gördüğünüz üzere birinci komutu kullanarak arka planda çalışan screen ekranlarını listeliyorsunuz daha sonra sonlandırmak istediğiniz screen ekranının başında bulunan numarasını veya ismini kopyaladıktan sonra ikinci komutu kullanarak işlemine son verebilirsiniz.
En baştaki yazımda bahsettiğim üzere uzak bir sunucuya ssh ile bağlantı kurduktan sonra tcpdump ile 22 portuna gelen bütün paketlerin 24 saatlik kaydını screen aracını kullanarak nasıl tutarız bunu inceleyelim. Aşağıdaki komutu kullanarak ssh ile uzaktaki sunucunun ip adresini yazdıktan sonra parolasını girerek bağlantı kuruyorsunuz.
# ssh root@uzaksunucu_ipadresi
Uzaktaki sunucuya ssh ile bağlantı kurduktan sonra birinci komutu kullanarak yeni bir screen ekranı açıyorsunuz ben örnek olması amacıyla -S parametresini kullanarak screen ekranına Tcpdump ismini verdim daha sonra ikinci komutu kullanarak sunucunun ip adresini belirttikten sonra 22 portuna gelen bütün paketleri ssh.pcap dosyasına kaydediyorsunuz daha sonra CTRL+A+D kombinasyonuna basarak açtığınız screen ekranını arka plana atıyorsunuz ve son olarak exit komutunu kullanarak ssh ile bağlantı kurduğunuz uzak sunucudan çıkış yapıyorsunuz.
# screen -S Tcpdump
# tcpdump -i eth0 host 192.168.0.11 and port 22 -w ssh.pcap
# CTRL+A+D
# exit
Yukarıdaki adımları uyguladıktan sonra tekrardan ssh komutunu kullanarak uzak sunucuya bağlantı kuruyorsunuz. Ardından ikinci komutu kullanarak arka planda çalışan screen ekranlarını listeliyorsunuz. Ben önceden screen ekranına Tcpdump ismini verdiğim için başındaki numarasını veya ismini kopyaladıktan sonra üçüncü komutu kullanarak seçtiğim screen ekranını ön plana getiriyorum ve gördüğünüz üzere tcpdump komutu açtığımız screen ekranında halen çalışıyor yani söyleyeceğim tek şey uzak sunucuda saatlerce çalışabilecek bir komut kullanıyorsanız bu durumda sizin işinizi kolaylaştıracak screen aracını kullanmanızı tavsiye ederim.
# ssh root@uzaksunucu_ipadresi
# screen -ls
# screen -r Tcpdump
Screen aracı hakkında daha fazla bilgi almak isterseniz aşağıdaki komutu kullanabilirsiniz.
Hiç yorum yok:
Yorum Gönder