Bağlantı Kopukluklarında Çalışan Süreçleri Devam Ettirmek.

Merhabalar;

Bu yazıda 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 süper 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 yetkileriye aşağıdaki komutu kullanarak paket deponuzdan kurabilirsiniz.

root# sudo apt-get install screen -y

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ı duğrulamak isterseniz screen komutunu kullandıktan sonra exit komutunu kullanarak screen ekranından çıktığınızı görebilirsiniz.

root# screen

root# 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ış.

root# screen

root# ls

root# 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 halen duruyor.

root# screen -r

Peki arka planda çalışan bütün screen ekranlarını nasıl görebilirsiniz bunu iki farklı yöntemle 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ında hangisi daha kolayınıza geliyorse ikisinden birisini kullanabilirsiniz.

root# screen -ls

root# screen -list

Örneğin birden fazla screen ekranı açtığınızı düşünelim bunlardan birini ön plana getirmek istiyorsunuz ama screen -r komutu bir işe yaramıyor çünkü o komut sadece bir screen ekranı açık ise onu geri ön plana getirir birden fazla screen ekranı açık ise ilk yapmanız gereken aşağıdaki birinci komutu kullanarak arka plandaki screen ekranlarını listelemek daha sonra ön plana getirmek istediğiniz screen ekranının başında bulunan numarasını kopyaladıktan sonra ikinci komutu kullanarak seçtiğiniz screen ekranını ön plana getirebilirsiniz. Bir başka seçenek ise screen ekranının ismini yazarak ‘ta ön plana getirebilirsiniz örneğin ( screen -r Unix ) gibi gibi.

root# screen -ls

root# 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 komutu ile yeni bir screen ekranı açmasını istedik -dm parametre 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.

root# screen -dmS isim_yazılabilir

root# screen -ls

Arka planda çalışan bir screen ekranının işlemini sonlandırmak isterseniz bunu iki farklı yöntemle yapabilirsiniz. Birinci yöntem 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 ikinci 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ı kuruyoruz.

root# ssh root@uzaksunucu_ip_adresi

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 paketler ssh.pcap dosyasına kaydettik hemen ardından CTRL+A+D kombinasyonuna basarak açtığımız screen ekranını arka plana atıyoruz ve son olarak exit komutunu kullanarak ssh ile bağlantı kurduğumuz uzak sunucudan çıkış yapıyoruz.

root# screen -S Tcpdump

root# tcpdump -i eth0 host 192.168.0.11 and port 22 -w ssh.pcap

root# ctrl+a+d

root# 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ı yada  ismini kopyaladıktan sonra üçüncü komutu kullanarak seçtiğim screen ekranını ön plana getiriyorum ve gördüğünüz üzere tcpdump komutu halen çalışıyor yani söyleyeceğim tek şey uzak sunucuda saatlerce çalışacak bir komut kullanıyorsanız bu durumda sizin işinizi kolaylaştıracak screen aracını kullanmanızı tavsiye ederim.

root# ssh root@uzaksunucu_ip_adresi

root# screen -ls

root# screen -r Tcpdump

Screen aracı hakkında daha fazla bilgi almak isterseniz man sayfasından veya help menüsünden yararlanabilirsiniz.

root# screen --help

root# man screen

 

Tagged with: , , , , , , , , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Archives