{"id":37171,"date":"2025-12-28T11:30:45","date_gmt":"2025-12-28T08:30:45","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/"},"modified":"2025-12-28T11:30:45","modified_gmt":"2025-12-28T08:30:45","slug":"linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/","title":{"rendered":"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri"},"content":{"rendered":"<h2>Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri<\/h2>\n<p>Linux ekosisteminde bir yolculu\u011fa \u00e7\u0131kmak, her ad\u0131mda yeni ufuklar ke\u015ffetmek gibidir. &#8220;Linux Day #6&#8221; etkinli\u011fimizde, temel komutlar\u0131n \u00f6tesine ge\u00e7erek, sistem y\u00f6neticilerinin g\u00fcnl\u00fck operasyonlar\u0131n\u0131 kolayla\u015ft\u0131ran, verimlili\u011fi art\u0131ran ve altyap\u0131lar\u0131n\u0131 daha sa\u011flam hale getiren geli\u015fmi\u015f sistem y\u00f6netimi ve otomasyon tekniklerine odaklan\u0131yoruz. Bu makale, sizi Linux sistemlerinizin derinliklerine g\u00f6t\u00fcrerek, performans\u0131 optimize etme, g\u00fcvenli\u011fi s\u0131k\u0131la\u015ft\u0131rma ve tekrarlayan g\u00f6revleri otomatikle\u015ftirme konular\u0131nda pratik bilgilerle donatmay\u0131 hedefliyor. Haz\u0131rsan\u0131z, Linux&#8217;un g\u00fcc\u00fcn\u00fc tam anlam\u0131yla kullanmaya ba\u015flayal\u0131m.<\/p>\n<h3>Linux&#8217;ta Geli\u015fmi\u015f S\u00fcre\u00e7 ve Servis Y\u00f6netimi<\/h3>\n<p>Linux sistemlerinin kalbinde s\u00fcre\u00e7ler ve servisler yer al\u0131r. Bunlar\u0131 etkin bir \u015fekilde y\u00f6netmek, kararl\u0131 ve y\u00fcksek performansl\u0131 bir sistemin anahtar\u0131d\u0131r. Bu b\u00f6l\u00fcmde, <code>systemd<\/code> ile servis birimlerini derinlemesine inceleyecek, s\u00fcre\u00e7 \u00f6nceliklerini ayarlayacak ve log y\u00f6netiminin inceliklerine de\u011finece\u011fiz.<\/p>\n<h4><code>systemd<\/code> ile Servis Birimlerini Derinlemesine Anlamak<\/h4>\n<p><code>systemd<\/code>, modern Linux da\u011f\u0131t\u0131mlar\u0131n\u0131n standart ba\u015flatma sistemi ve servis y\u00f6neticisidir. Servisleri ba\u015flatma, durdurma, yeniden ba\u015flatma ve durumlar\u0131n\u0131 kontrol etme gibi temel i\u015flevlerin yan\u0131 s\u0131ra, geli\u015fmi\u015f ba\u011f\u0131ml\u0131l\u0131k y\u00f6netimi, kaynak kontrol\u00fc ve otomatik yeniden ba\u015flatma gibi \u00f6zellikler sunar. <code>systemctl<\/code> komutu ile servis birimlerini y\u00f6netirken, birim dosyalar\u0131n\u0131n (<code>.service<\/code>, <code>.target<\/code>, <code>.mount<\/code> vb.) yap\u0131s\u0131n\u0131 anlamak, \u00f6zel servisler olu\u015fturmak ve mevcut servisleri \u00f6zelle\u015ftirmek i\u00e7in kritik \u00f6neme sahiptir. \u00d6rne\u011fin, bir servisin sistem a\u00e7\u0131l\u0131\u015f\u0131nda otomatik ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in <code>systemctl enable [servis_ad\u0131]<\/code> kullan\u0131l\u0131rken, belirli bir dizinde olu\u015fan bir dosyay\u0131 dinleyip bir betik \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>.path<\/code> veya <code>.socket<\/code> birimleri tan\u0131mlanabilir.<\/p>\n<pre><code class=\"language-bash\">\n# Bir servisin durumunu kontrol etme\nsystemctl status apache2\n\n# Bir servisi ba\u015flatma\nsystemctl start apache2\n\n# Bir servisi sistem ba\u015flang\u0131c\u0131nda etkinle\u015ftirme\nsystemctl enable apache2\n\n# \u00d6zel bir servis birimi olu\u015fturma \u00f6rne\u011fi: \/etc\/systemd\/system\/mywebapp.service\n[Unit]\nDescription=My Custom Web Application\nAfter=network.target\n\n[Service]\nExecStart=\/usr\/bin\/python3 \/opt\/mywebapp\/app.py\nWorkingDirectory=\/opt\/mywebapp\nRestart=always\nUser=www-data\n\n[Install]\nWantedBy=multi-user.target\n<\/pre>\n<p><\/code><\/p>\n<h4>S\u00fcre\u00e7 Prioriteleri: <code>nice<\/code>, <code>renice<\/code> ve <code>cgroups<\/code><\/h4>\n<p>Sistemde \u00e7al\u0131\u015fan s\u00fcre\u00e7lerin CPU ve di\u011fer kaynaklar\u0131 ne kadar kullanaca\u011f\u0131n\u0131 belirlemek, \u00f6zellikle yo\u011fun y\u00fck alt\u0131ndaki sunucularda kritik \u00f6neme sahiptir. <code>nice<\/code> komutu, bir s\u00fcrecin ba\u015flat\u0131l\u0131rken \u00f6nceli\u011fini ayarlamak i\u00e7in kullan\u0131l\u0131rken, <code>renice<\/code> halihaz\u0131rda \u00e7al\u0131\u015fan bir s\u00fcrecin \u00f6nceli\u011fini de\u011fi\u015ftirmeye yarar. \u00d6ncelik de\u011ferleri (-20'den 19'a kadar) <code>nice<\/code> de\u011ferleri olarak bilinir; daha d\u00fc\u015f\u00fck de\u011ferler daha y\u00fcksek \u00f6ncelik anlam\u0131na gelir. Daha geli\u015fmi\u015f kaynak y\u00f6netimi i\u00e7in Linux \u00c7ekirde\u011fi'nin <code>cgroups<\/code> (control groups) \u00f6zelli\u011fi devreye girer. <code>cgroups<\/code>, s\u00fcre\u00e7 gruplar\u0131na CPU, bellek, disk I\/O ve a\u011f bant geni\u015fli\u011fi gibi kaynaklar\u0131 tahsis etme, s\u0131n\u0131rlama ve \u00f6nceliklendirme imkan\u0131 sunar. Bu, belirli uygulamalar\u0131n veya kullan\u0131c\u0131lar\u0131n sistem kaynaklar\u0131n\u0131 a\u015f\u0131r\u0131 t\u00fcketmesini engelleyerek genel sistem kararl\u0131l\u0131\u011f\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">\n# D\u00fc\u015f\u00fck \u00f6ncelikli bir komut \u00e7al\u0131\u015ft\u0131rma (nice de\u011feri 10)\nnice -n 10 tar -zcf \/tmp\/backup.tar.gz \/var\/www\n\n# \u00c7al\u0131\u015fan bir s\u00fcrecin nice de\u011ferini de\u011fi\u015ftirme (PID 12345'in nice de\u011ferini 5 yapma)\nrenice 5 -p 12345\n\n# cgroups ile bir \u00f6rnek (manuel olarak veya systemd ile entegre)\n# systemd ile cgroup y\u00f6netimi genellikle otomatik yap\u0131l\u0131r, ancak manuel kontrol de m\u00fcmk\u00fcnd\u00fcr.\n# \u00d6rne\u011fin, bir systemd servisine CPUQuota eklemek:\n# CPUQuota=50%\n<\/pre>\n<p><\/code><\/p>\n<h4>Log Y\u00f6netimi ve Analizi: <code>journalctl<\/code> ve Logrotate<\/h4>\n<p>Linux sistemleri, olaylar\u0131 ve hatalar\u0131 kaydetmek i\u00e7in kapsaml\u0131 bir loglama mekanizmas\u0131na sahiptir. <code>journalctl<\/code>, <code>systemd<\/code>'nin merkezi loglama sistemi olan <code>journald<\/code> taraf\u0131ndan toplanan loglar\u0131 g\u00f6r\u00fcnt\u00fclemek ve filtrelemek i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. \u00c7ekirdek mesajlar\u0131ndan uygulama loglar\u0131na kadar her \u015feyi tek bir yerden eri\u015filebilir k\u0131lar. Loglar\u0131n zamanla disk alan\u0131n\u0131 doldurmas\u0131n\u0131 engellemek ve y\u00f6netilebilir tutmak i\u00e7in <code>logrotate<\/code> arac\u0131 kullan\u0131l\u0131r. <code>logrotate<\/code>, log dosyalar\u0131n\u0131 belirli aral\u0131klarla s\u0131k\u0131\u015ft\u0131r\u0131r, ar\u015fivler ve siler. Do\u011fru <code>logrotate<\/code> yap\u0131land\u0131rmas\u0131, disk kullan\u0131m\u0131n\u0131 optimize ederken, ge\u00e7mi\u015f loglara gerekti\u011finde eri\u015fimi m\u00fcmk\u00fcn k\u0131lar.<\/p>\n<pre><code class=\"language-bash\">\n# Son 100 log mesaj\u0131n\u0131 g\u00f6r\u00fcnt\u00fcleme\njournalctl -n 100\n\n# Belirli bir servise ait loglar\u0131 g\u00f6r\u00fcnt\u00fcleme\njournalctl -u apache2\n\n# Belirli bir zamandan sonraki loglar\u0131 g\u00f6r\u00fcnt\u00fcleme\njournalctl --since \"2023-01-01 00:00:00\"\n\n# Logrotate konfig\u00fcrasyon dosyas\u0131 \u00f6rne\u011fi: \/etc\/logrotate.d\/nginx\n\/var\/log\/nginx\/*.log {\n    daily\n    missingok\n    rotate 7\n    compress\n    delaycompress\n    notifempty\n    create 0640 www-data adm\n    sharedscripts\n    postrotate\n        if [ -f \/var\/run\/nginx.pid ]; then\n            kill -USR1 <code>cat \/var\/run\/nginx.pid<\/code>\n        fi\n    endscript\n}\n<\/pre>\n<p><\/code><\/p>\n<h3>A\u011f Konfig\u00fcrasyonu ve G\u00fcvenlik Duvar\u0131 \u0130nce Ayarlar\u0131<\/h3>\n<p>A\u011f y\u00f6netimi, modern sistem y\u00f6netiminin temel ta\u015flar\u0131ndan biridir. Linux'ta a\u011f aray\u00fczlerini yap\u0131land\u0131rmak, g\u00fcvenlik duvarlar\u0131n\u0131 y\u00f6netmek ve g\u00fcvenli uzaktan eri\u015fim sa\u011flamak i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar mevcuttur.<\/p>\n<h4><code>ip<\/code> Komutu ile Geli\u015fmi\u015f A\u011f Aray\u00fcz\u00fc Y\u00f6netimi<\/h4>\n<p>Geleneksel <code>ifconfig<\/code> komutunun yerini alan <code>ip<\/code> komutu, Linux'ta a\u011f aray\u00fczlerini y\u00f6netmek i\u00e7in \u00e7ok daha g\u00fc\u00e7l\u00fc ve esnek bir ara\u00e7t\u0131r. IP adreslerini yap\u0131land\u0131rmak, y\u00f6nlendirme tablolar\u0131n\u0131 d\u00fczenlemek, ARP \u00f6nbelle\u011fini kontrol etmek ve a\u011f istatistiklerini g\u00f6r\u00fcnt\u00fclemek gibi bir\u00e7ok g\u00f6revi yerine getirebilir. Sanal a\u011f aray\u00fczleri (VLAN'lar, k\u00f6pr\u00fcler, t\u00fcneller) olu\u015fturmak ve y\u00f6netmek i\u00e7in de <code>ip<\/code> komutu vazge\u00e7ilmezdir. A\u011f sorunlar\u0131n\u0131 giderme ve karma\u015f\u0131k a\u011f yap\u0131land\u0131rmalar\u0131n\u0131 uygulama konusunda derinlemesine bilgi sahibi olmak, sistem y\u00f6neticileri i\u00e7in b\u00fcy\u00fck bir avantajd\u0131r.<\/p>\n<pre><code class=\"language-bash\">\n# T\u00fcm a\u011f aray\u00fczlerini ve IP adreslerini g\u00f6r\u00fcnt\u00fcleme\nip a\n\n# Belirli bir aray\u00fcze IP adresi ekleme\nip a add 192.168.1.10\/24 dev eth0\n\n# Varsay\u0131lan a\u011f ge\u00e7idini ayarlama\nip r add default via 192.168.1.1\n\n# A\u011f aray\u00fcz\u00fcn\u00fc a\u00e7ma\/kapama\nip link set eth0 up\nip link set eth0 down\n<\/pre>\n<p><\/code><\/p>\n<h4><code>firewalld<\/code> ve <code>iptables<\/code> ile Detayl\u0131 Kural Setleri<\/h4>\n<p>G\u00fcvenlik duvarlar\u0131, a\u011f g\u00fcvenli\u011finin ilk savunma hatt\u0131d\u0131r. <code>iptables<\/code> ve onun soyut katman\u0131 olan <code>firewalld<\/code>, Linux sistemlerinde a\u011f trafi\u011fini filtrelemek i\u00e7in kullan\u0131l\u0131r. <code>iptables<\/code> do\u011frudan \u00e7ekirdek seviyesinde \u00e7al\u0131\u015farak paket filtreleme kurallar\u0131 olu\u015ftururken, <code>firewalld<\/code> b\u00f6lgeler (zones) ve servisler (services) gibi daha kullan\u0131c\u0131 dostu bir yakla\u015f\u0131mla \u00e7al\u0131\u015f\u0131r. Geli\u015fmi\u015f senaryolarda, belirli IP adreslerinden gelen trafi\u011fi engellemek, port y\u00f6nlendirme yapmak (NAT), veya belirli protokollere izin vermek i\u00e7in detayl\u0131 kural setleri olu\u015fturmak gerekebilir. G\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131n do\u011fru yap\u0131land\u0131r\u0131lmas\u0131, yetkisiz eri\u015fimi engeller ve sistemin d\u0131\u015f sald\u0131r\u0131lara kar\u015f\u0131 direncini art\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">\n# firewalld ile bir portu kal\u0131c\u0131 olarak a\u00e7ma\nfirewall-cmd --permanent --add-port=80\/tcp\nfirewall-cmd --reload\n\n# iptables ile belirli bir IP adresinden gelen trafi\u011fi engelleme\niptables -A INPUT -s 192.168.1.100 -j DROP\n\n# iptables ile SSH portuna sadece belirli bir IP'den eri\u015fime izin verme\niptables -A INPUT -p tcp --dport 22 -s 192.168.1.0\/24 -j ACCEPT\niptables -A INPUT -p tcp --dport 22 -j DROP\n<\/pre>\n<p><\/code><\/p>\n<h4>VPN ve T\u00fcnelleme Temelleri<\/h4>\n<p>Sanal \u00d6zel A\u011flar (VPN'ler) ve t\u00fcnelleme, g\u00fcvenli ve \u00f6zel a\u011f ba\u011flant\u0131lar\u0131 olu\u015fturmak i\u00e7in kullan\u0131l\u0131r. \u00d6zellikle uzak lokasyonlardaki sunuculara veya ofis a\u011flar\u0131na g\u00fcvenli eri\u015fim sa\u011flamak i\u00e7in vazge\u00e7ilmezdir. OpenVPN, WireGuard gibi \u00e7\u00f6z\u00fcmler, \u015fifrelenmi\u015f t\u00fcneller \u00fczerinden veri iletimi yaparak, genel internet \u00fczerinden bile g\u00fcvenli ileti\u015fim kurmay\u0131 m\u00fcmk\u00fcn k\u0131lar. SSH t\u00fcnelleme (port forwarding) ise, belirli portlar \u00fczerinden g\u00fcvenli ba\u011flant\u0131lar olu\u015fturarak, g\u00fcvensiz servisleri g\u00fcvenli bir \u015fekilde eri\u015filebilir hale getirmek i\u00e7in basit ama etkili bir y\u00f6ntemdir. Bu teknolojileri anlamak ve do\u011fru \u015fekilde yap\u0131land\u0131rmak, veri gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc korumak i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<pre><code class=\"language-bash\">\n# SSH ile yerel port y\u00f6nlendirme (local port forwarding)\n# Yerel 8080 portunu uzak sunucunun 80 portuna t\u00fcnelleme\nssh -L 8080:localhost:80 user@remote_server\n\n# SSH ile uzak port y\u00f6nlendirme (remote port forwarding)\n# Uzak sunucunun 8080 portunu yerel makinenin 80 portuna t\u00fcnelleme\nssh -R 8080:localhost:80 user@remote_server\n<\/pre>\n<p><\/code><\/p>\n<h3>Depolama \u00c7\u00f6z\u00fcmleri ve Disk Y\u00f6netimi Optimizasyonu<\/h3>\n<p>Veri, her sistemin en de\u011ferli varl\u0131\u011f\u0131d\u0131r. Depolama \u00e7\u00f6z\u00fcmlerini do\u011fru yap\u0131land\u0131rmak ve disk y\u00f6netimini optimize etmek, veri kayb\u0131n\u0131 \u00f6nlemek, performans\u0131 art\u0131rmak ve esnek bir altyap\u0131 olu\u015fturmak i\u00e7in hayati \u00f6nem ta\u015f\u0131r.<\/p>\n<h4>LVM (Logical Volume Manager) ile Esnek Depolama<\/h4>\n<p>LVM, Linux'ta depolama y\u00f6netimini fiziksel disklerden soyutlayarak esneklik sa\u011flayan g\u00fc\u00e7l\u00fc bir teknolojidir. Fiziksel diskleri (Physical Volumes - PV) birle\u015ftirerek Volume Group'lar (VG) olu\u015fturur ve bu VG'lerden mant\u0131ksal birimler (Logical Volumes - LV) keserek dosya sistemlerine ba\u011flar\u0131z. LVM'in en b\u00fcy\u00fck avantaj\u0131, sistem \u00e7al\u0131\u015f\u0131rken dosya sistemlerini yeniden boyutland\u0131rabilme, anl\u0131k g\u00f6r\u00fcnt\u00fcler (snapshots) alabilme ve diskleri kolayca ekleyip \u00e7\u0131karabilme yetene\u011fidir. Bu, depolama ihtiya\u00e7lar\u0131 de\u011fi\u015ftik\u00e7e sistemin durdurulmas\u0131na gerek kalmadan altyap\u0131y\u0131 adapte etme imkan\u0131 sunar.<\/p>\n<pre><code class=\"language-bash\">\n# Yeni bir fiziksel disk veya b\u00f6l\u00fcm\u00fc PV olarak haz\u0131rlama\npvcreate \/dev\/sdb1\n\n# PV'leri kullanarak bir VG olu\u015fturma\nvgcreate myvg \/dev\/sdb1 \/dev\/sdc1\n\n# VG'den bir LV olu\u015fturma\nlvcreate -L 10G -n mylv myvg\n\n# LV \u00fczerine dosya sistemi olu\u015fturma\nmkfs.ext4 \/dev\/myvg\/mylv\n\n# LV'yi ba\u011flama\nmount \/dev\/myvg\/mylv \/mnt\/data\n<\/pre>\n<p><\/code><\/p>\n<h4>RAID Yap\u0131land\u0131rmalar\u0131 ve Veri B\u00fct\u00fcnl\u00fc\u011f\u00fc<\/h4>\n<p>RAID (Redundant Array of Independent Disks), birden fazla fiziksel diski bir araya getirerek performans, veri yedeklili\u011fi veya her ikisini birden art\u0131rmak i\u00e7in kullan\u0131lan bir teknolojidir. RAID 0 (\u015feritli), RAID 1 (aynalama), RAID 5 ve RAID 6 gibi farkl\u0131 seviyeleri bulunur. Her seviye, farkl\u0131 bir performans ve hata tolerans\u0131 dengesi sunar. \u00d6rne\u011fin, RAID 1 veri yedeklili\u011fi sa\u011flarken, RAID 0 performans\u0131 art\u0131r\u0131r ancak hata tolerans\u0131 yoktur. Linux'ta yaz\u0131l\u0131m RAID (<code>mdadm<\/code> komutu) ile donan\u0131m RAID kartlar\u0131na ihtiya\u00e7 duymadan RAID dizileri olu\u015fturulabilir ve y\u00f6netilebilir. Veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak ve olas\u0131 disk ar\u0131zalar\u0131na kar\u015f\u0131 korunmak i\u00e7in do\u011fru RAID seviyesini se\u00e7mek ve d\u00fczenli kontrol\u00fcn\u00fc yapmak esast\u0131r.<\/p>\n<pre><code class=\"language-bash\">\n# Yaz\u0131l\u0131m RAID 1 dizisi olu\u015fturma\nmdadm --create \/dev\/md0 --level=1 --raid-devices=2 \/dev\/sdb1 \/dev\/sdc1\n\n# RAID dizisinin durumunu kontrol etme\ncat \/proc\/mdstat\n\n# RAID dizisine dosya sistemi olu\u015fturma\nmkfs.ext4 \/dev\/md0\n<\/pre>\n<p><\/code><\/p>\n<h4>Disk Performans\u0131 \u0130zleme ve Bak\u0131m\u0131<\/h4>\n<p>Disk performans\u0131, bir sistemin genel tepkiselli\u011fini do\u011frudan etkileyen \u00f6nemli bir fakt\u00f6rd\u00fcr. <code>iostat<\/code>, <code>vmstat<\/code> ve <code>sar<\/code> gibi ara\u00e7lar, disk I\/O istatistiklerini, okuma\/yazma h\u0131zlar\u0131n\u0131 ve kuyruk derinliklerini izlemek i\u00e7in kullan\u0131l\u0131r. Bu veriler, disk darbo\u011fazlar\u0131n\u0131 tespit etmeye ve performans sorunlar\u0131n\u0131 gidermeye yard\u0131mc\u0131 olur. D\u00fczenli dosya sistemi kontrol\u00fc (<code>fsck<\/code>), bozuk sekt\u00f6rleri tarama (<code>badblocks<\/code>) ve dosya sistemi parametrelerini ayarlama (<code>tune2fs<\/code>), disk sa\u011fl\u0131\u011f\u0131n\u0131 korumak ve veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in \u00f6nemlidir. Ayr\u0131ca, <code>df<\/code> ve <code>du<\/code> gibi komutlarla disk alan\u0131n\u0131 d\u00fczenli olarak izlemek, beklenmedik doluluklar\u0131 \u00f6nler.<\/p>\n<pre><code class=\"language-bash\">\n# Disk I\/O istatistiklerini g\u00f6r\u00fcnt\u00fcleme\niostat -x 1 10\n\n# Dosya sistemi kontrol\u00fc (unmount edilmi\u015f disk \u00fczerinde)\nfsck \/dev\/sda1\n\n# Dosya sistemi parametrelerini ayarlama (\u00f6rne\u011fin, reserved blocks oran\u0131n\u0131 d\u00fc\u015f\u00fcrme)\ntune2fs -m 1 \/dev\/sda1\n\n# Disk alan\u0131 kullan\u0131m\u0131n\u0131 g\u00f6r\u00fcnt\u00fcleme\ndf -h\n\n# Bir dizinin disk kullan\u0131m\u0131n\u0131 g\u00f6r\u00fcnt\u00fcleme\ndu -sh \/var\/log\n<\/pre>\n<p><\/code><\/p>\n<h3>Kabuk Betikleme ile Sistem Otomasyonu Sanat\u0131<\/h3>\n<p>Tekrarlayan g\u00f6revleri manuel olarak yapmak zaman kayb\u0131na ve hataya yol a\u00e7abilir. Kabuk betikleme (shell scripting), bu g\u00f6revleri otomatikle\u015ftirmenin ve sistem y\u00f6netimini daha verimli hale getirmenin temel yoludur.<\/p>\n<h4>Fonksiyonlar, Hata Yakalama ve Parametre \u0130\u015fleme<\/h4>\n<p>Geli\u015fmi\u015f kabuk betikleri yazarken, kodun okunabilirli\u011fini ve yeniden kullan\u0131labilirli\u011fini art\u0131rmak i\u00e7in fonksiyonlar kullanmak \u00f6nemlidir. Fonksiyonlar, belirli bir g\u00f6revi yerine getiren kod bloklar\u0131n\u0131 kaps\u00fcller. Betiklerin sa\u011flaml\u0131\u011f\u0131n\u0131 art\u0131rmak i\u00e7in hata yakalama mekanizmalar\u0131 (<code>set -e<\/code>, <code>trap<\/code>) ve kullan\u0131c\u0131dan al\u0131nan parametreleri do\u011fru \u015fekilde i\u015fleme (<code>getopts<\/code>) yetene\u011fi kritik \u00f6neme sahiptir. Bu teknikler, betiklerin beklenmedik durumlarda bile d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131n\u0131 ve kullan\u0131c\u0131 dostu olmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">\n#!\/bin\/bash\n\n# Hata durumunda beti\u011fi durdur\nset -e\n\n# Fonksiyon tan\u0131m\u0131\nfunction yedek_al {\n    local kaynak=$1\n    local hedef=$2\n    if [ -z \"$kaynak\" ] || [ -z \"$hedef\" ]; then\n        echo \"Hata: Kaynak ve hedef dizin belirtilmelidir.\"\n        return 1\n    fi\n    echo \"$kaynak dizini $hedef dizinine yedekleniyor...\"\n    cp -r \"$kaynak\" \"$hedef\"\n    echo \"Yedekleme tamamland\u0131.\"\n}\n\n# Fonksiyonu \u00e7a\u011f\u0131rma\nyedek_al \"\/var\/www\/html\" \"\/tmp\/yedekler\"\n\n# Hata yakalama \u00f6rne\u011fi\ntrap 'echo \"Betik beklenmedik \u015fekilde sonland\u0131. Hata kodu: $?\"' ERR\n<\/pre>\n<p><\/code><\/p>\n<h4><code>cron<\/code> ve <code>at<\/code> ile Zamanlanm\u0131\u015f G\u00f6revlerin \u00d6tesi<\/h4>\n<p><code>cron<\/code> ve <code>at<\/code> komutlar\u0131, Linux'ta g\u00f6revleri zamanlamak i\u00e7in kullan\u0131lan standart ara\u00e7lard\u0131r. <code>cron<\/code>, d\u00fczenli aral\u0131klarla (g\u00fcnl\u00fck, haftal\u0131k, ayl\u0131k veya belirli bir saatte) \u00e7al\u0131\u015fan g\u00f6revler i\u00e7in idealdir. <code>crontab<\/code> dosyalar\u0131, kullan\u0131c\u0131ya \u00f6zel zamanlanm\u0131\u015f g\u00f6revleri tan\u0131mlamak i\u00e7in kullan\u0131l\u0131r. <code>at<\/code> komutu ise, tek seferlik, gelecekte belirli bir zamanda \u00e7al\u0131\u015facak g\u00f6revler i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bu ara\u00e7lar\u0131n \u00f6tesinde, <code>systemd<\/code>'nin zamanlay\u0131c\u0131 birimleri (<code>.timer<\/code> units), <code>cron<\/code>'a modern bir alternatif sunarak, daha esnek zamanlama se\u00e7enekleri, ba\u011f\u0131ml\u0131l\u0131k y\u00f6netimi ve loglama yetenekleri sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">\n# crontab -e ile yeni bir cron g\u00f6revi ekleme\n# Her g\u00fcn saat 03:00'te yedekleme beti\u011fini \u00e7al\u0131\u015ft\u0131r\n# 0 3 * * * \/usr\/local\/bin\/yedekleme_betigi.sh\n\n# at komutu ile 5 dakika sonra bir komut \u00e7al\u0131\u015ft\u0131rma\necho \"ls -l \/tmp\" | at now + 5 minutes\n\n# systemd timer birimi \u00f6rne\u011fi: \/etc\/systemd\/system\/mybackup.timer\n[Unit]\nDescription=Run mybackup every day\n\n[Timer]\nOnCalendar=daily\nPersistent=true\n\n[Install]\nWantedBy=timers.target\n\n# mybackup.service birimi (timer taraf\u0131ndan tetiklenecek servis)\n[Unit]\nDescription=My Daily Backup Service\n\n[Service]\nExecStart=\/usr\/local\/bin\/yedekleme_betigi.sh\n<\/pre>\n<p><\/code><\/p>\n<h4>Betik G\u00fcvenli\u011fi ve \u0130zin Y\u00f6netimi<\/h4>\n<p>Kabuk betikleri, sistemde g\u00fc\u00e7l\u00fc yetkilere sahip olabilir, bu nedenle g\u00fcvenlikleri b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r. Betiklerin do\u011fru izinlerle (<code>chmod 700<\/code>) saklanmas\u0131, sadece yetkili kullan\u0131c\u0131lar\u0131n eri\u015febilmesini sa\u011flar. Betiklerde hassas bilgilerin (parolalar, API anahtarlar\u0131) do\u011frudan saklanmas\u0131ndan ka\u00e7\u0131n\u0131lmal\u0131, bunun yerine g\u00fcvenli ortam de\u011fi\u015fkenleri veya \u00f6zel anahtar depolar\u0131 kullan\u0131lmal\u0131d\u0131r. Kullan\u0131c\u0131 girdilerini do\u011frulamak ve kabuk enjeksiyonu gibi sald\u0131r\u0131lar\u0131 \u00f6nlemek i\u00e7in dikkatli parametre i\u015fleme teknikleri uygulanmal\u0131d\u0131r. G\u00fcvenli betik yazma pratikleri, sistemin genel g\u00fcvenli\u011fini art\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">\n# Beti\u011fe sadece sahibinin okuma, yazma ve \u00e7al\u0131\u015ft\u0131rma izni verme\nchmod 700 my_secure_script.sh\n\n# Hassas bilgileri do\u011frudan betikte saklamaktan ka\u00e7\u0131nma\n# DO\u011eRU YAKLA\u015eIM: Ortam de\u011fi\u015fkeni kullanma\n# export DB_PASSWORD=\"mysecretpassword\"\n# my_script.sh\n<\/pre>\n<p><\/code><\/p>\n<h3>Konfig\u00fcrasyon Y\u00f6netimi ve Orkestrasyon Ara\u00e7lar\u0131<\/h3>\n<p>B\u00fcy\u00fck ve karma\u015f\u0131k altyap\u0131larda, binlerce sunucunun konfig\u00fcrasyonunu manuel olarak y\u00f6netmek imkans\u0131z hale gelir. Konfig\u00fcrasyon y\u00f6netimi ara\u00e7lar\u0131, bu s\u00fcreci otomatikle\u015ftirerek tutarl\u0131l\u0131k, \u00f6l\u00e7eklenebilirlik ve hata azaltma sa\u011flar.<\/p>\n<h4>Ansible: Temel Kavramlar ve \u0130lk Playbook<\/h4>\n<p>Ansible, agent's\u0131z (arac\u0131 gerektirmeyen) yap\u0131s\u0131yla \u00f6ne \u00e7\u0131kan pop\u00fcler bir konfig\u00fcrasyon y\u00f6netimi, uygulama da\u011f\u0131t\u0131m\u0131 ve orkestrasyon arac\u0131d\u0131r. SSH \u00fczerinden hedef sunucularla ileti\u015fim kurar ve Python ile yaz\u0131lm\u0131\u015f mod\u00fcller arac\u0131l\u0131\u011f\u0131yla g\u00f6revleri yerine getirir. Ansible'\u0131n temel yap\u0131 ta\u015flar\u0131, envanter (inventory) dosyalar\u0131, playbook'lar, mod\u00fcller ve rollerdir. Bir playbook, YAML format\u0131nda yaz\u0131lm\u0131\u015f, belirli bir s\u0131raya g\u00f6re \u00e7al\u0131\u015facak g\u00f6revlerin bir koleksiyonudur. \u0130lk playbook'unuzu yazarak, uzak sunucularda paket y\u00fckleme, servisleri y\u00f6netme veya dosya kopyalama gibi temel g\u00f6revleri otomatikle\u015ftirebilirsiniz.<\/p>\n<pre><code class=\"language-yaml\">\n# inventory.ini dosyas\u0131 \u00f6rne\u011fi\n[webservers]\nweb1.example.com\nweb2.example.com\n\n[databases]\ndb1.example.com\n\n# first_playbook.yml dosyas\u0131 \u00f6rne\u011fi\n---\n- name: Web sunucular\u0131na Nginx y\u00fckle ve ba\u015flat\n  hosts: webservers\n  become: yes # sudo yetkisi ile \u00e7al\u0131\u015ft\u0131r\n  tasks:\n    - name: Nginx paketini y\u00fckle\n      ansible.builtin.apt:\n        name: nginx\n        state: present\n        update_cache: yes\n\n    - name: Nginx servisini ba\u015flat ve ba\u015flang\u0131\u00e7ta etkinle\u015ftir\n      ansible.builtin.service:\n        name: nginx\n        state: started\n        enabled: yes\n\n# Playbook'u \u00e7al\u0131\u015ft\u0131rma\n# ansible-playbook -i inventory.ini first_playbook.yml\n<\/pre>\n<p><\/code><\/p>\n<h4>Ansible Mod\u00fclleri ve Envanter Y\u00f6netimi<\/h4>\n<p>Ansible'\u0131n g\u00fcc\u00fc, zengin mod\u00fcl k\u00fct\u00fcphanesinden gelir. Dosya i\u015flemleri (<code>copy<\/code>, <code>file<\/code>), paket y\u00f6netimi (<code>apt<\/code>, <code>yum<\/code>), servis y\u00f6netimi (<code>service<\/code>), kullan\u0131c\u0131 y\u00f6netimi (<code>user<\/code>) ve a\u011f konfig\u00fcrasyonu gibi y\u00fczlerce farkl\u0131 g\u00f6revi yerine getiren mod\u00fcller mevcuttur. Envanter y\u00f6netimi ise, Ansible'\u0131n hangi sunucular \u00fczerinde i\u015flem yapaca\u011f\u0131n\u0131 belirler. Statik envanter dosyalar\u0131n\u0131n yan\u0131 s\u0131ra, dinamik envanter betikleri ile bulut sa\u011flay\u0131c\u0131lardan (AWS, Azure, GCP) veya sanalla\u015ft\u0131rma platformlar\u0131ndan (VMware, OpenStack) sunucu listeleri otomatik olarak \u00e7ekilebilir. Bu, b\u00fcy\u00fck ve dinamik altyap\u0131larda y\u00f6netimi kolayla\u015ft\u0131r\u0131r.<\/p>\n<pre><code class=\"language-yaml\">\n# Bir dosyay\u0131 kopyalama mod\u00fcl\u00fc \u00f6rne\u011fi\n- name: Nginx varsay\u0131lan konfig\u00fcrasyon dosyas\u0131n\u0131 kopyala\n  ansible.builtin.copy:\n    src: files\/nginx.conf\n    dest: \/etc\/nginx\/nginx.conf\n    owner: root\n    group: root\n    mode: '0644'\n  notify: Restart Nginx\n\n# Handler tan\u0131m\u0131 (notify ile tetiklenir)\nhandlers:\n  - name: Restart Nginx\n    ansible.builtin.service:\n      name: nginx\n      state: restarted\n<\/pre>\n<p><\/code><\/p>\n<h4>Otomasyon Stratejileri ve Best Practices<\/h4>\n<p>Etkili bir otomasyon stratejisi geli\u015ftirmek, sadece ara\u00e7lar\u0131 bilmekten \u00f6teye gider. \"Idempotency\" (i\u015flemin birden fazla kez \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda ayn\u0131 sonucu vermesi), kodun yeniden kullan\u0131labilirli\u011fi (roller ve include'lar), versiyon kontrol\u00fc (Git ile playbook'lar\u0131 y\u00f6netme) ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) s\u00fcre\u00e7lerine entegrasyon gibi kavramlar \u00f6nemlidir. Playbook'lar\u0131 mod\u00fcler hale getirmek, hassas verileri Ansible Vault ile \u015fifrelemek ve test odakl\u0131 geli\u015ftirme yakla\u015f\u0131mlar\u0131 benimsemek, otomasyon projelerinin ba\u015far\u0131s\u0131 i\u00e7in kritik en iyi pratiklerdir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>\"Linux Day #6\" etkinli\u011fimizde ele ald\u0131\u011f\u0131m\u0131z geli\u015fmi\u015f sistem y\u00f6netimi ve otomasyon teknikleri, modern BT altyap\u0131lar\u0131n\u0131n omurgas\u0131n\u0131 olu\u015fturur. <code>systemd<\/code> ile servislerinizi daha etkin y\u00f6netmekten, <code>ip<\/code> komutuyla a\u011f\u0131n\u0131z\u0131 ince ayarlamaya, LVM ve RAID ile depolaman\u0131z\u0131 esnek ve g\u00fcvenli hale getirmekten, kabuk betikleriyle tekrarlayan g\u00f6revleri otomatikle\u015ftirmeye ve Ansible gibi ara\u00e7larla konfig\u00fcrasyon y\u00f6netimini merkezile\u015ftirmeye kadar bir\u00e7ok konuyu derinlemesine inceledik. Bu bilgiler, sadece sorunlar\u0131 \u00e7\u00f6zmekle kalmayacak, ayn\u0131 zamanda sistemlerinizi daha sa\u011flam, daha g\u00fcvenli ve daha verimli hale getirmenize olanak tan\u0131yacakt\u0131r. Linux'un sundu\u011fu bu g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131 ustal\u0131kla kullanarak, dijital d\u00fcnyadaki her t\u00fcrl\u00fc zorlu\u011fun \u00fcstesinden gelebilirsiniz.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<h4>1. <code>systemd<\/code> ve <code>cron<\/code> aras\u0131ndaki temel fark nedir?<\/h4>\n<p><code>systemd<\/code> bir servis y\u00f6neticisi ve ba\u015flatma sistemidir; servisleri, soketleri, cihazlar\u0131 ve di\u011fer sistem kaynaklar\u0131n\u0131 y\u00f6net<\/p>\n","protected":false},"excerpt":{"rendered":"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri\nLinux ekosisteminde bir yolculu\u011fa \u00e7\u0131kmak, her ad\u0131mda yeni ufuklar ke\u015ffetmek gibidir.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[241],"tags":[],"class_list":{"0":"post-37171","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri\" \/>\n<meta property=\"og:description\" content=\"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri Linux ekosisteminde bir yolculu\u011fa \u00e7\u0131kmak, her ad\u0131mda yeni ufuklar ke\u015ffetmek gibidir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-28T08:30:45+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri\",\"datePublished\":\"2025-12-28T08:30:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/\"},\"wordCount\":2206,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/\",\"name\":\"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-28T08:30:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/","og_locale":"tr_TR","og_type":"article","og_title":"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri","og_description":"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri Linux ekosisteminde bir yolculu\u011fa \u00e7\u0131kmak, her ad\u0131mda yeni ufuklar ke\u015ffetmek gibidir.","og_url":"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-28T08:30:45+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri","datePublished":"2025-12-28T08:30:45+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/"},"wordCount":2206,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/","url":"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/","name":"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-28T08:30:45+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/linux-day-6-gelismis-sistem-yonetimi-ve-otomasyon-teknikleri\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Linux Day #6: Geli\u015fmi\u015f Sistem Y\u00f6netimi ve Otomasyon Teknikleri"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37171"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37171\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}