Kategori arşivi: Linux

linux sistemler hakkında sistem yönetimi, sorunlar, görüşler, kurulum örnekleri, konfigürasyonlar, performans ayarları, güvenlik ipuçları ve yapılandırma örnekleri

Centos 7 Üzerine Zesle Kontrol Panel (ZesleCP) Nasıl Kurulur?

Plesk, Cpanel veya DirectAdmin gibi paneller dışında alternatif arıyorsanız ZesleCP karşınızda. Diğer paneller gibi tüm ihtiyaçlarınızı karşılamak için size hafif, hızlı ve güvenli bir web kontrol paneli sunar. Yaptığınız işe odaklanabilmeniz amacıyla oldukça sade ve anlaşılır bir arayüze sahiptir. Yapılacak işler olabildiğince basite indirgenmiştir, oraya buraya tıklama zahmetine girmezsiniz. İsterseniz aylık 2.5$ gibi bir ücret karşılığında 15 alan adı için kullanabilirsiniz.

Geliştirici ekibin yapmış olduğu betik aracılığı ile kolay bir şekilde kurabilirsiniz. Kuruluma başlamadan önce lütfen yum update komutu verin ve sistemin güncel olduğuna emin olun.

cd /home && sudo curl -o latest -L http://release.zeslecp.com/latest && sudo sh latest

Kurulum sisteminizin özelliklerine göre 5-8 dakika arasında sürecek ve bittikten sonra sizi terminalde aşağıdaki bilgiler karşılayacak.

zeslecp ilk kurulum, zesle cp hızlı kurulum

Size vermiş olduğu kolay erişim bağlantısından direk olarak panelinize giriş yapabilirsiniz. Bu link siz kullandıktan sonra geçerliliğini yitireceği için herhangi bir sorun teşkil etmez. İleride tekrar giriş yapmak isterseniz zesle login demeniz yeterlidir. Tıpkı Plesk’te olduğu gibi kolay bir oturum açma mekanizması var.

Ardından ZesleCP‘nin resmi sitesinden hesap açıyoruz ve 15 günlük deneme lisansı istiyoruz. Anında hesabınıza bir adet deneme lisansı tanımlanıyor.

zeslecp lisans anahtarı girişi, zeslecp lisanslama, zeslecp trial license

“Apply License” dediğiniz andan itibaren artık kontrol paneliniz hazır bir şekilde sizi bekliyor olacak, 15 günlük deneme lisansınızın tadını doyasıya bir şekilde çıkartabilirsiniz.

zeslecp kontrol paneli, zeslecp nasıl kurulu, zeslecp kurulum adımları

Kullandığınız 15 günlük deneme lisansı bittikten sonra ZesleCP sitesinden tekrar lisans talep edebilirsiniz.

Debian 10 Üzerine Spotify Nasıl Kurulur?

Normal şartlarda Debian üzerinde Spotify kurmak için yapılan işlemlerde bağımlılık sorunları çıkabiliyor, örneğin paket içerisinde olmayan bir bağımlığın kurulmaya çalışılması veya Debian’ın desteklemediği bir paketi barındırması. Bu durum genelde Ubuntu reposu kullananların başına sıkça gelir. Ancak sanılanın aksine Ubuntu’nun repoları Debian’da pek sağlıklı çalışmaz.(bağımlılık farkları yaşatabilir)

Bu sebeple Spotify’ın direk olarak sunduğu paketi sisteme dahil edeceğiz. Buradan mümkünse sürüm kontrolü yapmayı da ihmal etmeyin.

cd Desktop
wget https://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_1.1.84.716.gc5f8b819-2_amd64.deb
sudo apt install spotify-client_*.deb

Beğenmezseniz Spotify’ı kaldırmak için

sudo apt remove spotify-client

Tabii bu noktada ben bunlarla uğraşmak istemiyorum, otomatik kurulum benim yerime yapılsın ben riskleri kabul ediyorum derseniz, Debian Tabanlı Sistemler İçin Spotify Kurulum makalesine göz atabilir otomatik kurulum sağlayabilirsiniz.

Ubuntu 20.04 Üzerine TinyCP Kontrol Paneli Nasıl Kurulur?

TinyCP, Linux sistem ve/veya sistemlerinizi web tabanlı bir ara yüz aracılığıyla yönetmenize imkan sağlayan projedir. Çok hafiftir ve sistem üzerinde gerekli kurulumları oldukça hızlı bir şekilde yapabilir, bu sebeple özellikle düşük sistem kaynağına sahip insanlar tarafından tercih edilmektedir. Sunucuları izlemek, web siteleri oluşturmak, sanallaştırma yapmak, veri tabanları oluşturmak ve yönetmek, e-posta adresleri yönetmek mümkündür.

TinyCP Nasıl Kurulur?

sudo apt update && sudo apt upgrade -y
sudo apt install gnupg ca-certificates
sudo apt-key adv --fetch-keys http://repos.tinycp.com/ubuntu/conf/gpg.key
sudo echo "deb http://repos.tinycp.com/ubuntu all main" | sudo tee /etc/apt/sources.list.d/tinycp.list
sudo apt-get update
sudo apt-get install tinycp

Kurulum başarılı bir şekilde tamamlandıktan hemen sonra komut terminalinde aşağıdaki bildirimi göreceksiniz.

tinycp komut satırı görsel, tinycp nasıl kurulur ilk görsel

Port size özel oluşturulacak siz sadece parolayı belirleyeceksiniz. İsterseniz aşağıdaki gibi kullanabilir tamamını siz kendiniz atayabilirsiniz.

TINYCP_USER="Mertcan" TINYCP_PASS="P@ssw0rd123" TINYCP_PORT="11223" apt-get install tinycp

İlk girişte ise karşınıza web ara yüzü olarak şöyle tatlı ve yenilikçi bir ekran gelecek, Fortigate’in web yönetim ara yüzüne oldukça benziyor.

tinycp giriş ekranı, tinycp ilk giriş

Uygulamanın Dashboardı ise şu şekilde

tinycp ana dashboard, tinycp ilk ekran, tinycp kontrol paneli ana ekran

Panel kurulu iken yapmış olduğum benchmark işleminin sonucuna göz atabilirsiniz.

tinycp benchmark, hetzner benchmark, tinycp kontrol paneli

Panel sistemde oldukça az bir bellek kullanıyor 2 gb’de tüm uygulamalar kurulu ve çalışır bir şekilde yaklaşık olarak 410 MB bir bellek kullanımı oluşuyor bu diğer rakiplere oranla oldukça iyi. CPU kullanımı ise %0.5 ile 0.8 arasında değişmekte.

Debian 10 Üzerine TinyCP Kontrol Paneli Nasıl Kurulur?

TinyCP, Linux sistem ve/veya sistemlerinizi web tabanlı bir ara yüz aracılığıyla yönetmenize imkan sağlayan projedir. Çok hafiftir ve sistem üzerinde gerekli kurulumları oldukça hızlı bir şekilde yapabilir, bu sebeple özellikle düşük sistem kaynağına sahip insanlar tarafından tercih edilmektedir. Sunucuları izlemek, web siteleri oluşturmak, sanallaştırma yapmak, veri tabanları oluşturmak ve yönetmek, e-posta adresleri yönetmek mümkündür.

TinyCP Nasıl Kurulur?

sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https dirmngr gnupg ca-certificates
sudo apt-key adv --fetch-keys http://repos.tinycp.com/debian/conf/gpg.key
sudo echo "deb http://repos.tinycp.com/debian all main" | sudo tee /etc/apt/sources.list.d/tinycp.list
sudo apt-get update
sudo apt-get install tinycp

Kurulum başarılı bir şekilde tamamlandıktan hemen sonra komut terminalinde aşağıdaki bildirimi göreceksiniz.

tinycp komut satırı görsel, tinycp nasıl kurulur ilk görsel

Port size özel oluşturulacak siz sadece parolayı belirleyeceksiniz. İsterseniz aşağıdaki gibi kullanabilir tamamını siz kendiniz atayabilirsiniz.

TINYCP_USER="Mertcan" TINYCP_PASS="P@ssw0rd123" TINYCP_PORT="11223" apt-get install tinycp

İlk girişte ise karşınıza web ara yüzü olarak şöyle tatlı ve yenilikçi bir ekran gelecek, Fortigate’in web yönetim ara yüzüne oldukça benziyor.

tinycp giriş ekranı, tinycp ilk giriş

Uygulamanın Dashboardı ise şu şekilde

tinycp ana dashboard, tinycp ilk ekran, tinycp kontrol paneli ana ekran

Panel kurulu iken yapmış olduğum benchmark işleminin sonucuna göz atabilirsiniz.

tinycp benchmark, hetzner benchmark, tinycp kontrol paneli

Panel sistemde oldukça az bir bellek kullanıyor 2 gb’de tüm uygulamalar kurulu ve çalışır bir şekilde yaklaşık olarak 410 MB bir bellek kullanımı oluşuyor bu diğer rakiplere oranla oldukça iyi. CPU kullanımı ise %0.5 ile 0.8 arasında değişmekte.

CentOS 6 ve 8 Sunucuyu Oracle Linux’a Taşıma

Bildiğiniz gibi geçtiğimiz haftalarca Centos topluluğu kızdıracak bir hareket yaparak RHEL’in testing sürümü haline geldi, bu durum önümüzdeki yıl yaşanacak ancak insanlar ne yapacağız diye yana döne alternatif aramaya hatta yeni çıkacak Rocy linux için heyecanlanmaya başladı(çok yersiz bir heyecan), tabii bütün bunlar olurken CentOS 7 kullananlar henüz endişelenmelerine gerek yok çünkü 2024’te ömrünü tamamlayacak ve bu zamana kadar sistemi kullanabileceksiniz.

CentOS 6 veya 8 üzerinden göç etmek için mevcut olan RPM tabanlı birini seçeceğiz, ücretsiz olan ve Redhat’in soyundan gelen Oracle Linux kullanacağız.

Ben size bu anlatımı yapmak için CentOS 8 Server GUI kullandım.

Göç için Ön Gereksinimler

CentOS 7 sürüm döngüsünde RHEL ile gideceği için bunun taşınmasına bakmayacağız çünkü hali hazırda 2024 yılına kadar desteği devam edecek.

  • Centos 6 veya 8 bir işletim sistemi
  • sudo yani root yetkileri
  • Toplam 10 GB boş alan( 5gb /var/cache 5 gb /home)
  • yum veya dnf

Oracle Linux Göç İşlemleri

Her zaman yaptığımız gibi sistemi güncelleme ile işlemlere başlıyoruz, sistemimizde eski paket kalmaması gerekiyor. Güncellenmesine mani olacağınız paketler varsa hold atmayı unutmayın.

sudo yum update

Oracle Linux’e geçmek için Centos göç script’ini sistem üzerine indirin, bu betik oracle tarafından sağlanmakta ve geliştirilmektedir.

curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh

GitHub’dan indirdiğimiz bu migration betiğimiz, sistemi otomatik olarak tanımlayacak ve CentOS Linux 6 veya 8’i Oracle Linux’un muadili olan sürümüne geçirecek. yani;

  • CentOS 6 ise Oracle 6
  • Centos 8 ise Oracle 8
sudo bash centos2ol.sh

Geçmeyi planladığınız mevcut sistemde yüklü uygulamalara ve sistem kaynaklarınıza bağlı olarak, göç işlemi birkaç dakika ila bir kaç saat arasında sürecek. Komut dosyası, yalnızca CentOS repolarını Oracle ile değiştirmek ile kalmayacak, aynı zamanda uyumlu hale getirmek için sistem paketlerini yeniden yükleyecek.

CentOS üzerinden Oracle Linux‘e geçiş tamamlandıktan sonra, komut terminalinde aşağıdaki gibi bir bildirim göreceksiniz.

centosdan oracle geçiş, centos migrate oracle linux

Yeniden başlatma işleminden sonra sisteme giriş yaptığınızda Oracle Linux geçiş işleminizin başarılı bir şekilde tamamlandığını görebilirsiniz.

oracle linux ön gösterim, oracle linux centos 8 migrate, centos 8 göç

Linux UEFI Boot Partition Sorunu ve Onarma Yöntemi

Geçtiğimiz hafta gece 01:00 sularında yaklaşık olarak üç saat süren bir kesinti yaşadık, bu kesintinin ana sebeplerinden bir tanesi yapmış olduğum kernel güncellemesi sonrasında debian işletim sisteminin boot-efi kısmının zarar görmesi idi. Tabii bu sorun gördüğüm kadarıyla 1 haftanın snapshot şeklinde alınan yedeklerinde bile vardı.

Tahminimce son kernel güncellemesinden hemen sonra ki yeniden başlatmada ortaya çıktı ancak fark edilmediği için bir süre devam etti. Hızlı aksiyon alabilmek için yedekten geldiysem de kısacası işe yaramadı. KVM ile giriş yaptığımda sunucuda aşağıdaki uyarıyı gördüm.

Cannot open access to console, the root account is locked.
See sulogin(8) man page for more details.

Press Enter to continue.

Bu uyarıdan kurtulmak amacıyla Hetzner’ın sağlamış olduğu rescue imajı ile makineyi yeniden başlattım. ve sırasıyla aşağıdaki işlemleri gerçekleştirdim.

mkdir -p server_hdd
sudo mount /dev/sda1 server_hdd
sudo chroot server_hdd
passwd root
exit
systemctl reboot

Böylelikle root’un parolasını değiştirdim ve kilitli durumdan çıkmış oldu. Normalde SSH sorunsuz bir şekilde systemctl rescue ile açılabiliyor olsaydı passwd -d root ile çözülecekti ama olmadı.

Ardından ilk yeniden başlatma sonrasında aşağıdaki görsel ile karşılaştım. Sistem maintenance moda girmişti ve yeniden başlatmanın ardından kendine gelmiyordu.

çöken linuxu kurtarmak, debian çökmesi, linux boot sorunu gidermek

Öncesinde fstab üzerinde değişiklik yaptığımı düşündüm(ki hiç bir değişiklik yapmamıştım) ve diskleri kontrol etmek istedim. Çünkü bu duruma disklerin yanlış eklenmesi de sebep oluyordu.

fstab kontrol, blkd ile disk id kontrolü

Tabii kontrollerim neticesinde, bu soruna sebep olabilecek bir bulguya rastlamadım. Yapılandırma sorunsuzdu ve bir sıkıntı istese de çıkartması mümkün değildi. Dedim ki debian topluluk maillerine bakayım illaki bu sorunu yaşayan olmuştur. Ve bunu buldum ama bu elemanda aynısını söylemişti “root parolasını değiştirin.”

Ardından akıl danışmak için gecenin üçünde Onur’u rahatsız ettim. “mertcan hic boot ederken bir hata mesaji vermiyor mu /var/log/messages’e bak bi” dedi. Ben baktığımda hiç bir kayıt görmemiştim ancak bu sefer bütün logu tekrar kontrol etmeye karar verdim.(çünkü bir hata mesajı olmak zorundaydı) Birde ne göreyim, ilk boot aşamasın da hataya düşmüş ama yeniden başlatma sırasında ikinci veya üçüncü kez bu satırları basmamıştı.(ilginç)

debian boot hatasi, debian efi hatasi, efi boot sorunu

Kernel sorunsuz yerinde, sadece boot ve diğer partitionlar sıkıntılı peki ne yapabilirdim? Tabii ki aşağıdaki komut ile boot tekrar kuracaktım. Ayrıca unutmayın Hetzner üzerinden alınan her sanal sunucunun boot partitionu her zaman sda15’de olacaktır. Emin değilseniz lsblk ile bakmanızı öneririm.

mount /dev/sda15 /boot/efi
grub-install /dev/sda15

Sorun çözüldü mü? HAYIR, yeniden başlatma sonrasında aşağıdaki görsel beni karşıladı.

sulogin error, debian login error, boot sekans sorunu

Son koz olarak systemctl default komutunu verdiysem de işe yaramadı, hatalar silsilesi ile karşılaştım. EFI ile bu sorun çözülmeyeceğini anladıktan sonra artık gerekeni yaparak bütün paketleri kaldırdım.

apt-get purge grub-efi grub-efi-amd64 grub-efi-amd64-bin

Sonrasında aşağıdaki işlemleri yaparak nihai çözüme ulaştım.

grub-install /dev/sda
update-grub
reboot

Bu kontroller ve işlemler sonrasında sabaha karşı dört gibi sorun çözülmüş oldu, tekrar yaşanmayacağının garantisi olmasa da benim için çok ilginç bir sorun giderme süreci oldu.

Yeniden Başlatılması Gereken Servisler Nasıl Tespit Edilir?

Sistemi güncellediğimiz zaman hangi uygulamanın yeniden başlatma istediğini bilmemizin bir kaç yolu elbette var, ancak size en kolay olanını göstereceğim. Bu işi yapmak için ufak bir araçtan faydalanacağız adı da needrestart bu küçük uygulama aslına bakarsanız oldukça işlevsel

Kurulumunu çok basit bir şekilde yapıyoruz.

apt install needrestart

Kullanabileceğiniz komutları sıralamak için needrestart --help komutunu kullanabilirsiniz. Ben bu örnekte yer alan -l, ve -b kullanacağım.

root@ankara:~# needrestart --help

needrestart 3.4 - Restart daemons after library updates.

Authors:
  Thomas Liske <thomas@fiasko-nw.net>

Copyright Holder:
  2013 - 2018 (C) Thomas Liske [http://fiasko-nw.net/~thomas/]

Upstream:
  https://github.com/liske/needrestart

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

Usage:

  needrestart [-vn] [-c <cfg>] [-r <mode>] [-f <fe>] [-u <ui>] [-bkl]

    -v          be more verbose
    -q          be quiet
    -m <mode>   set detail level
        e       (e)asy mode
        a       (a)dvanced mode
    -n          set default answer to 'no'
    -c <cfg>    config filename
    -r <mode>   set restart mode
        l       (l)ist only
        i       (i)nteractive restart
        a       (a)utomatically restart
    -b          enable batch mode
    -p          enable nagios plugin mode
    -f <fe>     overwrite debconf frontend (DEBIAN_FRONTEND, debconf(7))
    -u <ui>     use preferred UI package (-u ? shows available packages)

  By using the following options only the specified checks are performed:
    -k          check for obsolete kernel
    -l          check for obsolete libraries
    -w          check for obsolete CPU microcode

    --help      show this help
    --version   show version information

root@ankara:~# 

Düzgün bir çıktı alabilmek için needrestart -b komutunu kullanıyorum bu komut bana direk olarak hangi servislerin yeniden başlatma istediğini kernel’in ne durumda olduğunu gösteriyor.

root@ankara:~# needrestart -b
NEEDRESTART-VER: 3.4
NEEDRESTART-KCUR: 4.19.0-13-amd64
NEEDRESTART-KEXP: 4.19.0-13-amd64
NEEDRESTART-KSTA: 1
NEEDRESTART-SVC: clamav-daemon.service
NEEDRESTART-SVC: nginx.service
NEEDRESTART-SVC: systemd-journald.service
NEEDRESTART-SVC: systemd-logind.service
NEEDRESTART-SVC: systemd-resolved.service
NEEDRESTART-SVC: systemd-timesyncd.service
NEEDRESTART-SVC: systemd-udevd.service
NEEDRESTART-SVC: unattended-upgrades.service

Yukarıdaki çıktıda dikkat etmeniz gereken şeylerden ilki NEEDRESTART-KSTA: 1 eğer bu değer 0 bilinmeyen bir sorun olduğunu, 2 veya 3 ise yeniden başlatma gerektiği anlamına gelmektedir. NEEDRESTART-SVC: ile devam eden satırlar ise yeniden başlatılması gereken servisleri belirtir. Yani daha öncesinden güncelleme yapılmış ancak servis yeniden başlatılmamış anlamına gelmektedir.

Eğer daha insancıl bir şekilde çıktı almak ve kullanıcı etkileşimine girmek isterseniz aşağıdaki komutu kullanmanız gerekmektedir. Bu yönergeye github sayfası üzerinden erişebilirsiniz.

root@ankara:~# needrestart -u NeedRestart::UI::stdio -r l
Scanning processes...                                                                                                                                                                                             
Scanning candidates...                                                                                                                                                                                            
Scanning linux images...                                                                                                                                                                                          

Running kernel seems to be up-to-date.

Services to be restarted:
 systemctl restart clamav-daemon.service
 systemctl restart nginx.service
 systemctl restart systemd-journald.service
 systemctl restart systemd-resolved.service
 systemctl restart systemd-timesyncd.service
 systemctl restart systemd-udevd.service

Service restarts being deferred:
 systemctl restart systemd-logind.service
 systemctl restart unattended-upgrades.service

No containers need to be restarted.

User sessions running outdated binaries:
 root @ session #1: dhclient[16648,16708,16767,16992,17133,17192]
 root @ user manager service: systemd[2486]

Peki bu belirtilen servisleri tek tek yeniden başlatmamız mı gerekiyor? Tabii ki de hayır. Uygulama bizim için bunu da yapıyor ve tespit ettiği servisleri kendisi yeniden başlatabiliyor.

root@ankara:~# needrestart -u NeedRestart::UI::stdio -r a
Scanning processes...                                                                                                                                                                                             
Scanning candidates...                                                                                                                                                                                            
Scanning linux images...                                                                                                                                                                                          

Running kernel seems to be up-to-date.

Restarting services...
 systemctl restart clamav-daemon.service nginx.service systemd-journald.service systemd-resolved.service systemd-timesyncd.service systemd-udevd.service

Service restarts being deferred:
 systemctl restart systemd-logind.service
 systemctl restart unattended-upgrades.service

No containers need to be restarted.

User sessions running outdated binaries:
 root @ session #1: dhclient[16648,16708,16767,16992,17133,17192]
 root @ user manager service: systemd[2486]

Gördüğünüz gibi belirttiği servisleri yeniden başlattı. needrestart -u NeedRestart::UI::stdio -r l komutu ile tekrar kontrol ediyoruz.

root@ankara:~# needrestart -u NeedRestart::UI::stdio -r l
Scanning processes...                                                                                                                                                                                             
Scanning candidates...                                                                                                                                                                                            
Scanning linux images...                                                                                                                                                                                          

Running kernel seems to be up-to-date.

No services need to be restarted.

No containers need to be restarted.

User sessions running outdated binaries:
 root @ session #1: dhclient[16648,16708,16767,16992,17133,17192]
 root @ user manager service: systemd[2486]

Görüldüğü gibi artık sistemde yeniden başlatılması gereken herhangi bir servis kalmadı, güncellemeler imiz sorunsuz bir şekilde sistemimize uygulandı.

Debian 10 Üzerine PHP 8.0 Kurulumu

Güncel PHP kullanmak ve yeniliklere hızlı adapte olmak isteyen arkadaşlar PHP sürümlerini 8.0 yapmak isterlerse debian 10 için aşağıdaki işlemleri yapmaları yeterli olacaktır.

apt -y install lsb-release apt-transport-https ca-certificates 
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

Güncel repo dahil edildikten sonra güncelleme komutu verilir.

apt update

Gerekli olan modüllerle birlikte sisteme kurulum gerçekleştirilir.

apt install php8.0
apt install php8.0-{bcmath,bz2,intl,gd,mbstring,mysql,zip,xml,fpm,redis}

Arızalı Servis systemd ile Otomatik Nasıl Yeniden Başlatılır?

Sistemde kararsız çalışan süreçler varsa bunların otomatik olarak systemd tarafından yeniden başlatılması oldukça işinize yarayabilir. Ön tanımlı olarak işletim sisteminde 10 saniye içinde art arda beş başlatma hatasında failure olarak işaretlenir.

Bunu aşağıdaki komut ile görebilirsiniz.

systemctl --failed

Örnek çıktımız ise şu şekildedir.

root@ankara:~# systemctl --failed
  UNIT               LOAD   ACTIVE SUB    DESCRIPTION                                                                                                                                                            
● logrotate.service  loaded failed failed Rotate log files                                                                                                                                                       
● networking.service loaded failed failed Raise network interfaces                                                                                                                                               
● ufw.service        loaded failed failed Uncomplicated firewall                                                                                                                                                 

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

3 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

Bunu değiştirmek isterseniz cat /etc/systemd/system.conf | grep StartLimit komutunu verin çıkan değerleri sizi rahat ettirecek şekilde düzenleyin. Bende bu değerler şu şekilde

DefaultStartLimitIntervalSec=30s
DefaultStartLimitBurst=10

Bu örneğikte ben hali hazırda sıkıntılı olan ufw’de gerekli olan düzenlemeyi yapacağım. servis için gerekli klasörü oluşturuyoruz.

sudo mkdir -p /etc/systemd/system/ufw.service.d

Oluşturduğumuz bu klasörün içerisinde sadece restart.conf dosyası oluşturuyoruz ve

sudo touch /etc/systemd/system/ufw.service.d/restart.conf

aşağıdaki satırları oluşturduğumuz bu restart.conf dosyamızın içerisine ekliyoruz.

[Unit]
StartLimitIntervalSec=1

[Service]
Restart=always
RestartSec=20

Daha sonradan değişikliklerin systemd tarafından geçerli olabilmesi için servisleri yeniliyoruz.

sudo systemctl daemon-reload

Peki bu durumda servisin akıbeti ne olacak? belirlediğimiz bu ufw restart politikasına göre bu hizmet sonsuza kadar yeniden başlayacak. Bu kimi zaman iyi kimi zamanda kötüdür, servis rastgele zamanlarda belirsiz sebeplerle çöküyorsa bu yöntemi kullanabilirsiniz.

Bu yapılandırmamız ile otomatik yeniden başlatılan servisin görüntüsü ise şu şekilde olacak

root@ankara:~# systemctl status ufw         
● ufw.service - Uncomplicated firewall
   Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Sun 2020-12-13 17:40:48 +03; 6s ago
     Docs: man:ufw(8)
  Process: 1786 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
 Main PID: 1786 (code=exited, status=0/SUCCESS)

Dec 13 17:40:48 ankara systemd[1]: Starting Uncomplicated firewall...
Dec 13 17:40:48 ankara ufw-init[1786]: Firewall already started, use 'force-reload'
Dec 13 17:40:48 ankara systemd[1]: Started Uncomplicated firewall.

Bundan sonra sistem kalıcı olarak failure olarak işaretlemeyeceği içinde ilk başta verdiğimiz parametrenin sonucunda gözükmeyecektir.

root@ankara:~# systemctl --failed
  UNIT               LOAD   ACTIVE SUB    DESCRIPTION                                                                                                                                                            
● logrotate.service  loaded failed failed Rotate log files                                                                                                                                                       
● networking.service loaded failed failed Raise network interfaces                                                                                                                                               

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

2 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

Debian 10 Üzerine MariaDB Nasıl Kurulur

MariaDB açık kaynaklı, çok iş parçacıklı ilişkisel veritabanı yönetim sistemidir ve MySQL için geriye dönük uyumludur. MariaDB Foundation tarafından MySQL’in bazı orijinal geliştiricileri de dahil olmak üzere proje sürdürülmekte ve geliştirilmektedir.

Debian 10 sürümü ile MySQL varsayılan veritabanı sistemi olarak MariaDB ile değiştirildi. Her fırsatta unuttuğum için dokümantasyona ekleme ihtiyacı duydum. Gereken adımları aşağıdadır. Default repoda MariaDB eklenmiştir.

Bu makalemde, Debian 10 makinenize MariaDB’yi nasıl kuracağınıza dair iki farklı yöntem göstereceğim. İlk yöntem, MariaDB’yi Debian depolarından yüklemek için gereken adımlar boyunca size yol gösterecek, ikincisi ise MariaDB’nin en son sürümünün resmi MariaDB depolarından nasıl kurulacağını size öğretecektir.

Genellikle, MariaDB’yi Debian depolarından kurmanız önerilir.


sudo apt-get update
sudo apt-get -y install mariadb-server

İlk kurulumu çalıştırıyoruz.

sudo mysql_secure_installation

MariaDB’yi MariaDB Depolarından Debian 9’a yükleme

Bu yazının yazıldığı tarihte, MariaDB’nin en son sürümü resmi MariaDB depolarından kurulabilen versiyon 10.5’tür. Bir sonraki adımla devam etmeden önce MariaDB Depo sayfasını ziyaret edin ve yeni bir versiyonun mevcut olup olmadığını kontrol edin.

MariaDB 10.5’ü Debian 10 sisteminize kurmak için şu adımları takip edin

İlk adım, MariaDB deposunu etkinleştirmek ve depo GPG anahtarını sisteminize aktarmaktır.

sudo apt-get install software-properties-common dirmngr
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://ftp.agdsn.de/pub/mirrors/mariadb/repo/10.5/debian buster main'

Depo etkinleştirildikten sonra paket listesini güncelleyin ve MariaDB’yi şu şekilde yükleyin

sudo apt-get update
sudo apt-get install mariadb-server

MariaDB servisi, aşağıdaki komutu çalıştırdığını doğrulamak için otomatik olarak başlayacaktır.

sudo systemctl status mariadb

Çıktımız ise şu şekilde olacaktır

 mariadb.service - MariaDB 10.5 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-10-22 00:16:08 +03; 1 months 13 days ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 30744 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 37 (limit: 4915)
   Memory: 2.0G
   CGroup: /system.slice/mariadb.service
           └─30744 /usr/sbin/mysqld

Debian 10 Üzerine PowerShell Kurulumu

Debian 10’da Linux için PowerShell Core, sisteminize kurup işlemleri gerçekleştirebilmemiz için depoları sistemimize ekleyip gerekli işlemleri yapmamız gerekmektedir. Ardından linux üzerinde powershell komutlarını çalıştırabileceksiniz.

Sistem araçlarının yüklenmesi

sudo apt-get update
sudo apt-get install curl gnupg apt-transport-https

Yüklenecek powershell deposundaki programlara erişmek için gerekli olan public keyimizi sisteme dahil ediyoruz.

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

Depomuzu sisteme dahil ediyoruz.

sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod buster main" > /etc/apt/sources.list.d/microsoft.list'

depoları güncelliyoruz

sudo apt-get update

powershell kurulumunu tamamlıyoruz.

sudo apt-get install -y powershell

PowerShell kurulumu tamamlandıktan sonra başlatmak için aşağıdaki komut kullanılır.

pwsh

Debian 10 Microsoft SQL Server Kurulumu

Microsoft SQL Server ihtiyacınız varsa Microsoft Windows Server ürünlerine ihtiyacınız yok. Kısıtlı imkanlarınız varsa aşağıdaki kurulum uygulanarak debian 10 üzerine kurulumu gerçekleştirebilirsiniz. Aksi durumlarda Microsoft Windows Server ürünlerini tercih etmeyi unutmayın.

Gerekli paket listelerini sisteme dahil edelim.

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
echo "deb http://ftp.debian.org/debian buster-backports main" | \
      sudo tee --append /etc/apt/sources.list.d/buster-backports.list > /dev/null

Paket listesini güncelleyelim ve mssql-server kurulumunu başlatalım.

sudo apt-get update
sudo apt-get install mssql-server

Kurulumu tamamlamak için /opt/mssql/bin/sqlservr-setup komutunu çalıştıralım.

sudo /opt/mssql/bin/sqlservr-setup
Microsoft(R) SQL Server(R) Setup

You can abort setup at anytime by pressing Ctrl-C. Start this program
with the --help option for information about running it in unattended
mode.

The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746388 and found
in /usr/share/doc/mssql-server/LICENSE.TXT.

Do you accept the license terms? If so, please type "YES": YES

Please enter a password for the system administrator (SA) account: 
Please confirm the password for the system administrator (SA) account: 

Setting system administrator (SA) account password...
Do you wish to start the SQL Server service now? [y/n]: y
Do you wish to enable SQL Server to start on boot? [y/n]:

Varsayılan sql sunucu portu 1433’ü dinleyebilir olduğuna bakalım.

sudo lsof -i :1433

Çıktısı aşağıdaki gibi olmalı

COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sqlservr 15020 mssql   65u  IPv4 152906      0t0  TCP *:ms-sql-s (LISTEN)

Linux konsolundan sql sunucusuna bağlanmak isterseniz, önce sqsh’ı kurarak işleme başlayabilirsiniz.

sudo apt-get install sqsh

Yeni kurulan sql’de bağlantı sağlamak istediğinizde sa kullanıcısını kullanın

sqsh -S localhost -U sa
Password: 
1> CREATE DATABASE test1
2> go
1> SELECT Name from sys.Databases
2> go

Microsoft Sql Server Management Studio üzerinden bağlanmak da mümkündür.