4 Kasım 2014 Salı

Bağlantı kopukluklarında çalışan süreçleri devam ettirmek.

Merhabalar;

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.








Ö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 atabilirsiniz örneğin screen -r Unix gibi gibi.
 # 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

Online pfSense Firewall & Router Eğitimi

Merhabalar Online pfSense Firewall & Router eğitimi hazırladım ve Udemy üzerinde yar aldı. Eğitim içeriği toplam 40 ders ve yaklaşık o...