Etiket Arşivi linux

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
(30.04.2019 tarihinden itibaren toplam 1 kez, bugün 1 kez ziyaret edildi. )

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.

#!/bin/bash

for filename in */*; do
	if [[ $filename != *align_* ]]
	then
		rm $filename
	fi
done

 

 

(30.04.2019 tarihinden itibaren toplam 6 kez, bugün 1 kez ziyaret edildi. )

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.

sudo apt-get install openvpn

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.

sudo openvpn client.ovpn

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.

screen sudo openvpn client.ovpn

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

(30.04.2019 tarihinden itibaren toplam 4 kez, bugün 1 kez ziyaret edildi. )

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.

error: no such partition. 
Entering rescue mode... 
grub rescue>

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.

bootrec/RebuildBcd 
bootrec/fixMbr
bootrec/fixboot
exit

 

(30.04.2019 tarihinden itibaren toplam 132 kez, bugün 1 kez ziyaret edildi. )

Linux / Windows – Youtube’dan mp3 indirme

LINUX İÇİN

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

sudo apt-get install youtube-dl

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.

youtube-dl --extract-audio --audio-quality 0 --audio-format mp3 https://www.youtube.com/watch?asdas

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.

(30.04.2019 tarihinden itibaren toplam 43 kez, bugün 1 kez ziyaret edildi. )

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
(30.04.2019 tarihinden itibaren toplam 4 kez, bugün 1 kez ziyaret edildi. )

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.

 

(30.04.2019 tarihinden itibaren toplam 31 kez, bugün 1 kez ziyaret edildi. )

Linux shell üzerinden gmail kullanarak mail gönderme

Linux üzerinden komutlarla e-mail göndermek için sSMTP programı kullanılabilir. Peki bu ne işe yarayacak? Ben bu işlemi uzun sürecek işlemlerim tamamlandığında kendime e-mail atmak için kullanacağım. Başka bir kullanım amacı da mesela sunucu da sürekli çalışması gereken bir programın yada sunucunun kendisinin çalışması durduğunda haberdar olmak olabilir.

Öncelikle sSMTP programını kuruyoruz.

sudo apt-get install ssmtp

Sonrasında /etc/ssmtp/ssmtp.conf dosyasını sudo ile açıp aşağıdaki şekilde düzenliyoruz. İlk satırda ilgili yere gmail adresinizi, ikinci satıra da şifrenizi yazıyorsunuz. Gerisi olduğu gibi kalıyor.

AuthUser=........@gmail.com
AuthPass=........
FromLineOverride=YES
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES

Daha sonra aşağıdaki gibi bir text dosyası oluşturuyoruz. Bu dosya bizim göndereceğimiz mail ile ilgili bilgileri içeriyor. Dosyanın ismi mail.txt olsun.

To: myemailaddress@gmail.com
Subject: konu

E-mail içeriği burada olacak.

Bu text dosyasındaki bilgileri kullanarak e-mail göndermek için aşağıdaki komutu kullanıyoruz.

ssmtp gonderilecekadres@blablamail.com < mail.txt

Ben text dosyası kullanmak istemiyorum direkt olarak bir satırla işimi halletmek istiyorum derseniz aşağıdaki komutu da kullanabilirsiniz. Yalnız bu durumda konu kısmı boş kalıyor ve konu yok şeklinde kalıyor.

echo -e "mail içeriği burada olacak" | mail nuhazginoglu@gmail.com
(30.04.2019 tarihinden itibaren toplam 31 kez, bugün 1 kez ziyaret edildi. )