Etiket arşivi: linux

scp: TERM environment variable not set

Bu hatayı alıyorsanız sorun scp ile dosya göndermek istediğiniz sunucunun .bashrc dosyasında istenmeyen bazı komutların olmasından dolayıdır. Dolayısıyla dosyaları göndermek istediğiniz sunucunun .bashrc dosyasını gözden geçirip, dosya göndermeyi tekrar denemelisiniz.

Sürdürülebilir Linux Sistem Yönetimi

Bu yazıda Sürdürülebilir Linux Sistem Yönetimi için gerekli yazılımlar ve ipuçlarını paylaşacağım. Yazıda ayrıntılı açıklamalar olmayacak. Bu yazıdan yola çıkıp internette ilgili yazılımlar ile ilgili detaylı bilgi ve kaynaklara ulaşılabilir.

  • Docker – “Konteynerleştirme” olarak da bilinen işletim sistemi seviyesinde sanallaştırma sağlayan bir bilgisayar programıdır.
  • Clusterssh – Sistemdeki birden fazla bilgisayarda toplu komut çalıştırma.
  • Tmux – Terminal penceresini bölerek kullanmaya yarar.
  • Failover Programları (Yük Devretme – Arıza veren veya devreden çıkan sistem için başka bir sistemin devreye girmesi) (Load Balancer).
    • Corosync
    • Haproxy
    • Pound
  • Darboğaz (bottleneck)
  • Yedekleme İçin Kullanılabilecek Yazılımlar
    • tar / cf, xf
    • rsync
    • rdiff backup
    • duplicity
    • bacula
    • tarshap
    • ninjabackup
    • amanda
  • Merkezi Hesap Yönetimi – LDAP (Yazma çok yavaş, okuma çok hızlı)
  • tar_gz — 0..9: 0 en az, 9 en çok. Genelde maksimum 7 olarak seçiliyor.
  • Güvenlik
    • Selinux
    • App Armor
    • MAC (mandatory access control)
  • Puppetmaster
  • Monitörleme (service and server)- Nagios
  • swatch (log izleme) – logger – graylog – logrotate
  • 5S Kalite Yönetim Sistemi (JAPON)
    • Seiri (Ayıklama)
    • Seiton (Düzenleme)
    • Seiso (Temizleme)
    • Seiketsu (Standartlaştırma)
    • Shitsuke (Disiplin)
  • Servis kontrolü /etc/init.d altındadır.
    • service status -all
  • Linux’ta dizinler
    • etc – ayarlar
    • home – kullanıcı ev dizinleri
    • temp – geçici dosyalar
    • proc – çeşitl bilgiler (sistem vs.)
    • usr – kullanıcıların kurdukları (farklı diskte de olabilir)
      • bin
      • lib
      • share
      • sbin
    • lib – sistemin açılması için gerekli minimum bilgi ve dosyalar
    • sbin
    • share
    • bin
    • root – sistemin açılması için gerekli dosyalar mevcuttur. Sorun çıkabilir dikkatli olmak gerekir.
    • boot – grup, çekirdek, init.rd..
    • var – servis içerik ve logları
    • dev – devices
    • opt – program files diyebiliriz, genelde sıkıntı çıkaranlar burada.
  • BIOS – Hard disk – Master boot record – grup
  • LVM – Bölümler volume gruplar olarak tanımlanıyor. Disk bölümleriyle oynanabiliyor.
  • MAIL
    • Smtp – gönderme
    • Imap – Alma
    • Pop – Alma
  • Spam Filtresi – Tahminde bulunur. Greylisting, SPF Kaydı.
  • Postfix Admin
  • Spacewalk
  • Cobblerd
  • Network Boot

bash scripting: Argument list too long error for rm

Bir dizindeki tüm alt klasörler içinde bulunan ve adı align_ ile başlamayan bütün dosyaları silmek istiyordum. Bu işlemi rm */!(align_*) kodu ile yapabiliyorum fakat klasör ve dosya sayısı çok fazla olduğundan dolayı Argument list too long hatası aldım. Bunu çözmek için de aşağıdaki bash scripti hazırladım. Buna benzer bir sorunla karşılaşmışsanız aşağıdaki kodu kendinize göre düzenleyerek kullanabilirsiniz.

[pastacode lang=”bash” manual=”%23!%2Fbin%2Fbash%0A%0Afor%20filename%20in%20*%2F*%3B%20do%0A%09if%20%5B%5B%20%24filename%20!%3D%20*align_*%20%5D%5D%0A%09then%0A%09%09rm%20%24filename%0A%09fi%0Adone” message=”” highlight=”” provider=”manual”/]

 

 

Linux OpenVPN Bağlantısı

OpenVPN bağlantısı yapabilmek için öncelikle sertifika dosyalarına sahip olmanız gerekmektedir. Bu dosyalar aşağıda listelendiği gibidir;

  • ca.crt
  • client.crt
  • client.key
  • client.ovpn
  • ta.key 

Bu dosyaları bir klasöre taşıyın.

OpenVPN programı bilgisayarınızda yüklü değilse aşağıdaki komut ile kuruyoruz.

[pastacode lang=”bash” manual=”sudo%20apt-get%20install%20openvpn” message=”” highlight=”” provider=”manual”/]

Daha sonra sertifika dosyalarının bulunduğu klasör içerisine giriyoruz ve aşağıdaki komutu çalıştırarak vpn bağlantısını kuruyoruz.

[pastacode lang=”bash” manual=”sudo%20openvpn%20client.ovpn” message=”” highlight=”” provider=”manual”/]

Bağlanmak istediğim sunucu kullanıcı adı ve şifre istemediğinden dolayı ben otomatik olarak bağlandım. Sunucunuz kullanıcı adı ve şifre istiyor ise size soracaktır.

Ayrıca bağlantı sağlandıktan sonra terminal üzerinde program çalışmaya devam ediyor, arka planda çalışmıyor. Arka planda çalışmasını sağlamak için ben screen programını kullanıyorum. Dolayısıyla bağlantı için aşağıdaki komutu kullanıyorum.

[pastacode lang=”bash” manual=”screen%20sudo%20openvpn%20client.ovpn” message=”” highlight=”” provider=”manual”/]

Screen kullanımı için daha önce yazdığım Linux Screen Programı ve Kullanımı isimle yazıdan yararlanabilirsiniz.

error: no such partition. Entering rescue mode… grub rescue hatası ve çözümü

Windows ile Xubuntu beraber yüklü bilgisayarımda Xubuntu güncellemeden sonra açılmaz hale gelmişti. Bende Windows üzerinden ilgili ext4 partition’ları sildim. Ama bu şekilde silmemek gerekiyormuş. Bilgisayarı yeniden başlattığımda aşağıdaki ekran ile karşılaştım.

[pastacode lang=”markup” manual=”error%3A%20no%20such%20partition.%20%0AEntering%20rescue%20mode…%20%0Agrub%20rescue%3E” message=”” highlight=”” provider=”manual”/]

grub bir linux yazılımı olmasına rağmen buradaki sorun Windows’ta. Bu sorunu düzeltmek için Windows boot’u onarmak gerekiyor. Bunun için bir Windows 10 kurulum DVD’sine yada usb’sine sahip olmanız gerekiyor. Windows’u onarma ekranına gelip aşağıdaki komutları giriyorsunuz ardından restart ediyorsunuz. Sonrasında Windows’a sorunsuz bir şekilde tekrar giriş yapabilirsiniz.

[pastacode lang=”markup” manual=”bootrec%2FRebuildBcd%C2%A0%0Abootrec%2FfixMbr%0Abootrec%2Ffixboot%0Aexit” message=”” highlight=”” provider=”manual”/]

 

Linux / Windows – Youtube’dan mp3 indirme

LINUX İÇİN

Linux’ta bu işlem oldukça basit. Öncelikle youtube-dl adlı programı kuruyoruz.

[pastacode lang=”bash” manual=”sudo%20apt-get%20install%20youtube-dl” message=”” highlight=”” provider=”manual”/]

Kurulumdan sonra bir dizin oluşturup dizin içerisinde aşağıdaki şekilde programı çalıştırıyoruz. Komutun sonundaki linki indireceğiniz mp3’ün linki ile değiştirmeyi unutmayın.

[pastacode lang=”bash” manual=”youtube-dl%20–extract-audio%20–audio-quality%200%20–audio-format%20mp3%20https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fasdas” message=”” highlight=”” provider=”manual”/]

WINDOWS İÇİN

Windows’ta ise YoutubeByClick programını kullanabilirsiniz. Programı bağlantıdan indirip kuruyorsunuz. Kurulum aşamasından sonra programı başlatıyorsunuz. Youtube’dan müzik dinlerken o müziği indirmek mi istediniz, sadece linki kopyalıyorsunuz. Kopyalar kopyalamaz küçük bir pencere açılıyor ve mp3 olarak mı yoksa video olarak mı indirmek istediğinizi soruyor. Tıklıyorsunuz ve işlem tamam.

Linux: SSH Keygen public key şifre soruyor – I still getting password prompt with ssh public key authentication

Daha önce linux sunucuya SSH-Keygen ile nasıl şifresiz SSH bağlantısı yapılacağına dair bir yazı yazmıştım. Bugün bir SSH-Keygen ile şifresiz giriş için ayarladığım bir sunucuya bağlanmaya çalıştığımda halen şifre sormaya devam etti. Daha önce karşılaşmamıştım. Problemi ilgili sunucunun authorized_keys dosyasının okuma iznini aşağıdaki şekilde değiştirerek hallettim.

Even I configured a linux server as passwordless SSH by SSH-Keygen, I was still getting password prompt. I solvent the problem as shown below.

chmod 400 ~/.ssh/authorized_keys

Linux Screen Programı ve Kullanımı

Daha önce Tmux ve Terminatör programlarından bahsetmiş, Tmux kullanımı ve komutları konusunda bilgiler vermiştim. Bu yazıda ise Screen programında bahsedeceğim. Screen bir terminal ekranından birden çok terminal ekranı kullanmaya yarar. Tmux ve Terminatör’den farkı ise ekranda sadece bir tane terminal ekranı görürsünüz. Diğer açtığınız terminaller ise arka planda çalışmaya devam eder. Biraz karmaşık gelmiş olabilir ama aslında anlaşılması ve kullanımı çok kolay bir programdır.

Screen’e ihtiyaç duyacağınız en önemli senaryo şu olabilir; ssh bağlantısı ile uzak bir bilgisayar veya sunucuya bağlandınız diyelim. Bir iş başlatacaksınız ama işlem uzun sürecek ve siz işi başlatıp uzak bilgisayarda çalışmaya devam etsin, ben de bilgisayarımı kapatıyım istiyorsunuz. Bu çok normal çünkü bazen şarjınız yetmeyebiliyor, internet paketinden çok yemek istemiyorsunuz yada bulunduğunuz yer dizüstü bilgisayarınızı kullanmaya devam etmek için uygun değil vs. vs. Screen sayesinde işi başlatıyorsunuz. İş çalışmaya devam ederken bilgisayarınızı kapatıyorsunuz. İsterseniz arada bağlanıp kontrol ediyorsunuz. Hatta iş bitince bana mail atsın bile diyebilirsiniz. Bu konu hakkında da bu yazıdan bilgi edinebilirsiniz.

Aşağıdaki komut ile programı kuruyoruz.

sudo apt-get install screen

Kurulum bu kadar. Şimdi ise kullanılmasından bahsedeyim. Diyelim ki screen’de bir python dosyası çalıştıracaksınız. Yapmanız gerek komutun önüne screen eklemek.

screen python dosya.py

Komutu çalıştırdığınızda terminal içerisinde yeni bir terminal açılacak ve dosya çalışmaya başlayacak. Diyelim bu program saatlerce süren bir program bu durumda Ctrl + a + d komutu ile bir önceki ekrana geri dönebilirsiniz. Arka planda program çalışmaya devam edecek.

Çalışan işleri ise screen -ls komutu ile görebilirsiniz. Aşağıdaki gibi bir görüntüyle karşılaşırsınız.

Bu işe geri dönmek için işin ID numarasını kullanacağız.

screen -r 31935

Bu komutla işin çalıştığı terminale geçmiş olduk. Screen -ls ile çalışan işlere baktığımızda şu an için bir iş görmekteyiz. Bu sebepten dolayı ID numarasını kullanmadan direkt olarak screen -r komutunu da kullanabilirdik.

Screen’i aynı andan birden fazla iş için kullanabiliriz.

Peki Screen’de çalışan bir işi öldürmek istiyorsak ne yapacağız. Bu durumda aşağıdaki komut satırını kullanacağız.

screen -X -S 31935 kill

Normalde Screen’de bir iş çalıştırıldığında yeni Screen terminali attach edilmiş olarak açılır ve siz Ctrl + a + d ile bu işi detach edersiniz. Direkt olarak detach edilmiş bir iş başlatmak için ise aşağıdaki komut satırını kullanabiliriz.

 screen -dm bash -c "python dosya.py

Terminalde attach edilmiş olarak kalmış bir işi komut satırından detach etmek için aşağıdaki komut dizinini kullabilirsiniz. Ssh bağlantısı kullanırken böyle bir durumla karşı karşıya kalmış olabilirsiniz.

screen -d 31935

Screen ile çalıştırılmış bütün işleri öldürmek için aşağıdaki komutu kullabilirsiniz.

killall screen

Buraya kadar kullandığım kodlar Screen’in temel kullanımı için yeterlidir. Kullanım ihtiyacı duyduğum kodları buraya eklemeye devam edeceğim.