Ubuntu Cloud Server’da Screen’i Kurma ve Kullanma
Ubuntu tabanlı bir bulut sunucusunda çalışırken, uzun süren komutları çalıştırmak, bağlantınız kesildiğinde ilerlemeyi kaybetmemek veya birden fazla oturumu aynı anda yönetmek gibi ihtiyaçlar ortaya çıkabilir. Bu noktada, komut satırı çoklu görev aracı olan Screen, hayat kurtarıcı bir çözüm sunar. Screen, sanal terminaller oluşturmanıza, bu terminallere bağlanıp ayrılmanıza ve oturumlarınızın arka planda çalışmaya devam etmesini sağlamanıza olanak tanır. Bu makalede, Ubuntu bulut sunucunuza Screen’i nasıl kuracağınızı, temel komutlarını ve pratik kullanım senaryolarını adım adım inceleyeceğiz.
Screen Nedir ve Neden Kullanmalısınız?
Screen (GNU Screen), bir terminal çoklayıcısıdır. Temel olarak, tek bir fiziksel terminal penceresi içinde birden fazla sanal terminal oturumu çalıştırmanıza imkan tanır. Her sanal terminal, bağımsız bir kabuk (shell) oturumudur. Bu, şu gibi avantajlar sağlar:
* Bağlantı Kopmalarına Karşı Koruma: SSH bağlantınız kesildiğinde, Screen oturumunuz ve içindeki çalışan işlemleriniz durdurulmaz, arka planda çalışmaya devam eder. Bağlantınızı yeniden kurduğunuzda, kaldığınız yerden devam edebilirsiniz. Bu, uzun süren derleme işlemleri, büyük dosya indirmeleri veya kritik arka plan görevleri için vazgeçilmezdir.
* Çoklu Görev Yönetimi: Tek bir SSH oturumu içinde birden fazla görevi aynı anda yürütebilirsiniz. Farklı terminaller arasında kolayca geçiş yapabilir, bir terminalde bir komutu çalıştırırken diğerinde farklı bir komutla ilgilenebilirsiniz.
* Oturumları Uzaktan Yönetme: Bir Screen oturumu başlattıktan sonra, sunucudan ayrılıp daha sonra geri dönerek aynı oturuma yeniden bağlanabilirsiniz. Bu, iş akışınızı kesintiye uğratmadan farklı bilgisayarlardan sunucunuza erişmenize olanak tanır.
* Paylaşımlı Oturumlar: Gelişmiş senaryolarda, birden fazla kullanıcının aynı Screen oturumuna bağlanarak işbirliği yapması da mümkündür.
Screen Kurulumu
Screen, çoğu Ubuntu dağıtımında varsayılan olarak yüklü gelmeyebilir. Kurulumu oldukça basittir ve Ubuntu’nun paket yöneticisi APT aracılığıyla gerçekleştirilir.
1. Paket Listesini Güncelleme: Öncelikle, sunucunuzdaki paket listesini güncelleyerek en son paket bilgilerine sahip olduğunuzdan emin olun. Bu, güncel ve güvenli bir sürüm kurmanızı sağlar. Terminalde aşağıdaki komutu çalıştırın:
sudo apt update
Bu komut, APT’nin paket kaynaklarından en son bilgileri çekecektir.
2. Screen’i Kurma: Paket listesi güncellendikten sonra, Screen paketini kurabilirsiniz. Aşağıdaki komutu kullanın:
sudo apt install screen
Kurulum sırasında, disk alanını kullanmak isteyip istemediğinizi onaylamanız istenebilir. E (veya Y) tuşuna basarak devam edin.
3. Kurulumu Doğrulama: Kurulum tamamlandıktan sonra, Screen’in başarıyla kurulduğunu doğrulamak için sürümünü kontrol edebilirsiniz:
screen -v
Bu komut, yüklü olan Screen sürümünü gösterecektir. Eğer herhangi bir hata almazsanız, kurulum başarılı olmuştur.
Screen Temel Kullanımı
Screen’in temel mantığı, “oturumlar” oluşturmak, bu oturumlara bağlanmak, oturumdan ayrılmak (ancak çalışmaya devam etmesini sağlamak) ve yeniden bağlanmaktır. Tüm Screen komutları, Ctrl+a tuş kombinasyonu ile başlar. Bu, Screen’e bir komut vereceğinizi belirtir. Ardından, istediğiniz eylemi belirten bir harf veya karakter girersiniz.
1. Yeni Bir Screen Oturumu Başlatma
Yeni bir Screen oturumu başlatmak için terminalde screen komutunu çalıştırın:
screen
Bu komutu çalıştırdığınızda, muhtemelen bir “startup message” ekranıyla karşılaşacaksınız. Bu mesajı geçmek için Space tuşuna veya Enter tuşuna basın. Ardından, kendinizi boş bir terminal ekranında bulacaksınız. Bu artık bir Screen oturumudur. Bu oturumun bir adı yoktur, ancak Screen bunu otomatik olarak numaralandırır (örneğin, 0, 1, 2 gibi).
Eğer oturuma bir isim vermek isterseniz, aşağıdaki gibi -S (session) seçeneğini kullanabilirsiniz:
screen -S benim_oturum
Bu, benim_oturum adında bir Screen oturumu başlatacaktır. Oturum adlandırmak, birden fazla oturumu yönetirken oldukça faydalıdır.
2. Screen Oturumundan Ayrılma (Detaching)
Bir Screen oturumundan ayrılmak (detaching), oturumu kapatmak anlamına gelmez. Bu, oturumu arka plana göndermek ve çalışan işlemlerin devam etmesini sağlamaktır. Oturumdan ayrılmak için aşağıdaki tuş kombinasyonunu kullanın:
Ctrl+a ardından d (detach)
Bu komutu çalıştırdığınızda, terminal ekranınızda [detached from gibi bir mesaj göreceksiniz. Bu, mevcut Screen oturumundan ayrıldığınız ve ana kabuğunuza döndüğünüz anlamına gelir. Artık SSH bağlantınız kesilse bile, bu oturumdaki işlemleriniz çalışmaya devam edecektir.
3. Mevcut Screen Oturumlarını Listeleme
Sunucunuzda kaç tane aktif Screen oturumu olduğunu ve bunların adlarını/numaralarını görmek için aşağıdaki komutu kullanabilirsiniz:
screen -ls
veya
screen -list
Bu komut, çalışan Screen oturumlarının bir listesini gösterecektir. Çıktı genellikle şöyle görünür:
2345.pts-0.my-server (Detached)
6789.pts-1.my-server (Detached)
Burada 2345 ve 6789 oturum kimlikleridir (PID), pts-0.my-server ise oturumun ait olduğu terminaldir. Parantez içindeki Detached durumu, oturumun aktif ancak bağlantısının kesik olduğunu belirtir.
Eğer bir oturum adı verdiyseniz (örneğin, benim_oturum), screen -ls çıktısı şöyle görünebilir:
2345.benim_oturum (Detached)
4. Bir Screen Oturumuna Yeniden Bağlanma (Attaching)
Daha önce ayrıldığınız bir Screen oturumuna yeniden bağlanmak için screen -r komutunu kullanırsınız.
* Tek bir oturum varsa: Eğer sadece bir Screen oturumu çalışıyorsa, sadece screen -r komutunu çalıştırmanız yeterlidir. Screen, otomatik olarak bu oturuma bağlanacaktır.
screen -r
* Birden fazla oturum varsa: Birden fazla oturumunuz varsa, bağlanmak istediğiniz oturumun ID’sini veya adını belirtmeniz gerekir.
Oturum ID’si ile bağlanma:
screen -r 2345
Oturum adı ile bağlanma:
screen -r benim_oturum
Bu komutları çalıştırdığınızda, daha önce ayrıldığınız Screen oturumuna geri dönecek ve kaldığınız yerden devam edebileceksiniz.
5. Bir Screen Oturumunu Sonlandırma
Bir Screen oturumunu tamamen sonlandırmak için, oturumun içindeyken exit komutunu kullanabilirsiniz.
exit
Bu komut, mevcut kabuk oturumunu kapatır. Eğer bu, Screen oturumunuzdaki son kabuk ise, Screen oturumu da otomatik olarak sonlanacaktır.
Alternatif olarak, oturumdan ayrıldıktan sonra (yani ana kabuğunuza döndükten sonra) bir Screen oturumunu sonlandırmak için screen -X komutunu kullanabilirsiniz.
Oturum ID’si ile sonlandırma:
screen -S 2345 -X quit
Oturum adı ile sonlandırma:
screen -S benim_oturum -X quit
Bu komutlar, belirtilen Screen oturumunu güvenli bir şekilde kapatır.
Screen Gelişmiş Kullanımı ve Komutları
Screen, temel bağlantı/ayrılma işlevlerinin ötesinde birçok gelişmiş özelliğe sahiptir. Bu özellikler, terminaller arasında geçiş yapmayı, pencereleri bölmeyi ve daha fazlasını sağlar.
1. Screen İçindeki Komutlar (Prefix + Command)
Yukarıda belirtildiği gibi, Screen komutları Ctrl+a (prefix) ile başlar. Ardından gelen harf veya karakter, Screen’e ne yapması gerektiğini söyler.
* Ctrl+a c: Yeni bir pencere (virtual terminal) oluşturur. Bu, mevcut Screen oturumunuz içinde yeni bir kabuk oturumu başlatır.
* Ctrl+a n: Sonraki pencereye geçer (next window).
* Ctrl+a p: Önceki pencereye geçer (previous window).
* Ctrl+a " : Mevcut pencerelerin listesini görüntüler. Bu listeden bir pencere seçerek o pencereye geçebilirsiniz.
* Ctrl+a 0 ile 9: Doğrudan belirtilen pencere numarasına geçer (örneğin, Ctrl+a 0 birinci pencereye, Ctrl+a 1 ikinci pencereye geçer).
* Ctrl+a k: Mevcut pencereyi kapatır. Bu komutu kullanmak, pencereyi kapatır ancak ana Screen oturumunu sonlandırmaz (eğer başka pencereler varsa).
* Ctrl+a [ : Copy moduna girer. Bu modda, terminal çıktısını seçebilir ve kopyalayabilirsiniz. Space ile seçimi başlatıp bitirebilir, Enter ile kopyalayıp yapıştırabilirsiniz.
* Ctrl+a ] : Kopyalanan içeriği yapıştırır.
* Ctrl+a S: Ekranı yatay olarak böler (split horizontally).
* Ctrl+a |: Ekranı dikey olarak böler (split vertically).
* Ctrl+a Tab: Bölünmüş ekranlar arasında imleci taşır.
* Ctrl+a X: Mevcut bölünmüş pencereyi kapatır.
* Ctrl+a Q: Tüm bölünmüş pencereleri kapatır (sadece mevcut pencere kalır).
* Ctrl+a ?: Screen yardım menüsünü görüntüler.
2. Pencereler Arasında Geçiş Yapma
Bir Screen oturumu içinde birden fazla pencere oluşturduğunuzda (örneğin, Ctrl+a c ile), bu pencereler arasında geçiş yapmanız gerekecektir.
* Ctrl+a n: Bir sonraki pencereye geç.
* Ctrl+a p: Bir önceki pencereye geç.
* Ctrl+a ": Açık pencerelerin bir listesini gösterir. Bu listeden istediğiniz pencereyi seçip Enter tuşuna basarak o pencereye geçebilirsiniz.
* Ctrl+a [ Pencere Numarası ]: Doğrudan belirli bir pencere numarasına geçiş yapar. Örneğin, Ctrl+a 0 ilk pencereye, Ctrl+a 1 ikinci pencereye geçer.
3. Bölünmüş Ekran (Split Screen) Kullanımı
Screen, terminalinizi birden fazla bölgeye ayırmanıza olanak tanır. Bu, aynı anda birden fazla çıktıyı izlemenizi veya farklı terminallerde farklı komutlar çalıştırmanızı kolaylaştırır.
* Yatay Bölme: Ctrl+a S komutu, mevcut pencereyi yatay olarak ikiye böler. İmleç üstteki pencerede kalır.
* Dikey Bölme: Ctrl+a | komutu, mevcut pencereyi dikey olarak ikiye böler. İmleç soldaki pencerede kalır.
* Bölmeler Arasında Geçiş: Ctrl+a Tab tuşu, bölmeler arasında imleci taşır.
* Mevcut Bölmeyi Kapatma: Ctrl+a X komutu, imlecin bulunduğu bölmeyi kapatır.
* Tüm Bölmeleri Kapatma: Ctrl+a Q komutu, mevcut pencere dışındaki tüm bölmeleri kapatır, böylece sadece tek bir pencere kalır.
4. Kopyalama ve Yapıştırma (Copy Mode)
Screen’in kendi kopyalama ve yapıştırma mekanizması vardır. Bu, özellikle terminal çıktısından metin alıp başka bir yerde kullanmak istediğinizde kullanışlıdır.
* Copy Mode’a Girme: Ctrl+a [ tuş kombinasyonu ile copy mode’a girilir.
* Metin Seçme: Copy mode’a girdikten sonra, imleci seçmek istediğiniz metnin başına getirin ve Space tuşuna basın. Ardından, imleci metnin sonuna sürükleyin ve tekrar Space tuşuna basın. Seçili metin vurgulanacaktır.
* Kopyalama: Seçimi tamamladıktan sonra, metin otomatik olarak Screen’in panosuna kopyalanır.
* Yapıştırma: Başka bir pencerede veya aynı pencerenin başka bir yerinde yapıştırmak istediğinizde, Ctrl+a ] tuş kombinasyonunu kullanın.
5. Oturum İsimlendirme ve Yönetimi
Yukarıda bahsedildiği gibi, screen -S ile oturumlarınıza anlamlı isimler verebilirsiniz. Bu, özellikle birden fazla Screen oturumu çalıştırdığınızda hangi oturumun ne işe yaradığını takip etmenizi kolaylaştırır.
* Oturum adını değiştirme: Mevcut bir oturumun adını değiştirmek için, oturumun içindeyken Ctrl+a : tuşlarına basın. Bu, Screen komut satırını açacaktır. Ardından aşağıdaki komutu girin:
sessionname yeni_isim
ve Enter‘a basın.
Pratik Kullanım Senaryoları
Screen’in gücünü anlamak için bazı yaygın kullanım senaryolarına göz atalım:
* Uzun Süren Komutları Arka Planda Çalıştırma: Bir sunucuda büyük bir dosya indiriyorsunuz, bir veritabanını yedekliyorsunuz veya uzun süren bir derleme işlemi başlatıyorsunuz. SSH bağlantınızın kesilme ihtimali var.
1. SSH ile sunucuya bağlanın.
2. screen komutuyla yeni bir Screen oturumu başlatın.
3. İndirme, yedekleme veya derleme komutunuzu çalıştırın.
4. Ctrl+a d ile oturumdan ayrılın.
5. Artık SSH bağlantınız kesilse bile işlem arka planda çalışmaya devam edecektir.
6. Daha sonra sunucuya yeniden bağlandığınızda screen -r ile oturuma geri dönüp işlemin durumunu kontrol edebilirsiniz.
* Birden Fazla Görevi Aynı Anda Yönetme: Bir web sunucusunda çalışırken hem web sunucusunu izlemeniz hem de log dosyalarını kontrol etmeniz gerekebilir.
1. screen ile bir oturum başlatın.
2. İlk pencerede web sunucunuzu çalıştırın veya izleyin.
3. Ctrl+a c ile yeni bir pencere açın.
4. Bu yeni pencerede log dosyalarını izleyin (örneğin, tail -f /var/log/apache2/access.log).
5. Ctrl+a n ve Ctrl+a p ile pencereler arasında geçiş yaparak her iki görevi de kolayca yönetin.
* Sunucu Bakımında Kesintisiz Çalışma: Sunucuda planlı bir bakım yaparken, SSH bağlantınızın kopması durumunda iş akışınızın kesintiye uğramasını istemezsiniz.
1. screen -S bakım_işlemleri ile isimlendirilmiş bir oturum başlatın.
2. Gerekli bakım komutlarını çalıştırın.
3. Herhangi bir sorunla karşılaşmadan önce Ctrl+a d ile oturumdan ayrılabilirsiniz.
4. Bakım sırasında bağlantınız koparsa, yeniden bağlandığınızda screen -r bakım_işlemleri ile kaldığınız yerden devam edebilirsiniz.
Güvenlik Notları
Screen, varsayılan olarak oturumları şifrelemez. Bu, aynı sunucuda yetkisiz bir kullanıcı varsa, sizin Screen oturumlarınıza erişme olasılığının olabileceği anlamına gelir. Ancak, Screen oturumları genellikle SSH üzerinden erişildiği için, SSH bağlantınızın güvenliği önemlidir. Güçlü şifreler kullanmak, SSH anahtar tabanlı kimlik doğrulama kullanmak ve sunucunuzu güncel tutmak, genel güvenliğinizi artıracaktır.
Sonuç
Screen, Ubuntu bulut sunucularında çalışan herkes için güçlü ve vazgeçilmez bir araçtır. Bağlantı kopmalarına karşı koruma sağlaması, çoklu görevleri kolaylaştırması ve oturumları uzaktan yönetme imkanı sunması, onu sunucu yönetiminin temel bir parçası haline getirir. Bu makalede ele alınan temel kurulum, başlatma, ayrılma, yeniden bağlanma ve gelişmiş komutlar ile Screen’i etkili bir şekilde kullanarak sunucu verimliliğinizi önemli ölçüde artırabilirsiniz. Düzenli olarak Screen’i kullanarak, komut satırı deneyiminizin daha sorunsuz ve verimli hale geldiğini göreceksiniz.