DEV Community

Cover image for Python Geliştiricileri İçin Temel Linux Komut Seti ve Uygulamalı Rehber
Vebende Akademi
Vebende Akademi

Posted on Edited on

Python Geliştiricileri İçin Temel Linux Komut Seti ve Uygulamalı Rehber

Temel Linux Komutları + Cron Job + Python Servis Çalıştırma + SSH (Production Minimum Rehber)

Bu doküman, Python geliştiren bir kişinin production ortamında Linux’u yönetebilmesi için gereken minimum çekirdek bilgi setini içerir. Amaç; sistem kurmak değil, sistemi yönetebilmek ve debug edebilmektir.


1. Linux Temel Komut Seti (Mutlak Minimum)

1.1 Sistem içinde gezinme

pwd
Enter fullscreen mode Exit fullscreen mode

Bulunduğun dizini gösterir.

ls -la
Enter fullscreen mode Exit fullscreen mode

Tüm dosyaları detaylı listeler.

cd /var/www
cd ~
cd ..
Enter fullscreen mode Exit fullscreen mode

Dizin değiştirme komutları.


1.2 Dosya işlemleri

mkdir app
touch app.py
cp app.py app_backup.py
mv app.py /opt/app/
rm file.txt
rm -rf folder/
Enter fullscreen mode Exit fullscreen mode

📌 Kritik not:

  • rm -rf üretim ortamında en riskli komuttur.

1.3 Dosya içeriği inceleme

cat file.txt
less file.txt
head -n 20 file.txt
tail -f file.txt
Enter fullscreen mode Exit fullscreen mode

📌 Özellikle:

  • tail -f → canlı log izleme

1.4 Arama işlemleri

grep "ERROR" logs.txt
grep -r "config" .
find . -name "*.py"
Enter fullscreen mode Exit fullscreen mode

1.5 Sistem durumu

top
ps aux
df -h
free -h
Enter fullscreen mode Exit fullscreen mode

1.6 Süreç yönetimi

kill -9 PID
Enter fullscreen mode Exit fullscreen mode

PID: process ID


2. SSH (Uzak Sunucuya Bağlanma)

SSH, Linux sistem yönetiminin temelidir.


2.1 SSH ile bağlanma

ssh root@SERVER_IP
Enter fullscreen mode Exit fullscreen mode

Örnek:

ssh root@185.12.45.90
Enter fullscreen mode Exit fullscreen mode

2.2 SSH key ile bağlanma (önerilen)

ssh -i key.pem root@SERVER_IP
Enter fullscreen mode Exit fullscreen mode

2.3 Hetzner Cloud üzerinden SSH erişimi

Hetzner Cloud üzerinde oluşturulan bir server için süreç:

1. Server oluşturulur

  • Hetzner panelinden bir Cloud Instance açılır
  • Ubuntu/Debian image seçilir

2. Public IP alınır

Örnek:

167.235.45.12
Enter fullscreen mode Exit fullscreen mode

3. SSH bağlantısı

ssh root@167.235.45.12
Enter fullscreen mode Exit fullscreen mode

4. İlk giriş kontrolü

whoami
uname -a
Enter fullscreen mode Exit fullscreen mode

3. Python Script’i Linux Servis Olarak Çalıştırma (systemd)

Production’da en doğru yöntem: systemd service


3.1 Servis dosyası oluşturma

sudo nano /etc/systemd/system/python-app.service
Enter fullscreen mode Exit fullscreen mode

3.2 Servis tanımı

[Unit]
Description=Python Application Service
After=network.target

[Service]
ExecStart=/usr/bin/python3 /opt/app/app.py
WorkingDirectory=/opt/app
Restart=always
User=root

[Install]
WantedBy=multi-user.target
Enter fullscreen mode Exit fullscreen mode

3.3 Servisi başlatma

sudo systemctl daemon-reload
sudo systemctl start python-app
sudo systemctl enable python-app
Enter fullscreen mode Exit fullscreen mode

3.4 Servis durumu

sudo systemctl status python-app
Enter fullscreen mode Exit fullscreen mode

3.5 Log kontrol

journalctl -u python-app -f
Enter fullscreen mode Exit fullscreen mode

4. Cron Job (Zamanlanmış Görevler)

Cron, Linux’un en kritik otomasyon aracıdır.


4.1 Cron mantığı

* * * * * command
│ │ │ │ │
│ │ │ │ └── Gün (hafta)
│ │ │ └──── Ay
│ │ └────── Gün
│ └──────── Saat
└────────── Dakika
Enter fullscreen mode Exit fullscreen mode

4.2 Cron açma

crontab -e
Enter fullscreen mode Exit fullscreen mode

4.3 Örnek kullanım senaryoları

Her dakika çalıştırma

* * * * * /usr/bin/python3 /opt/app/task.py
Enter fullscreen mode Exit fullscreen mode

Her 5 dakikada bir

*/5 * * * * /usr/bin/python3 /opt/app/task.py
Enter fullscreen mode Exit fullscreen mode

Her gün saat 03:00 backup

0 3 * * * /usr/bin/python3 /opt/app/backup.py
Enter fullscreen mode Exit fullscreen mode

Sistemi kontrol eden job

*/10 * * * * /usr/bin/python3 /opt/app/healthcheck.py
Enter fullscreen mode Exit fullscreen mode

4.4 Cron log kontrol

grep CRON /var/log/syslog
Enter fullscreen mode Exit fullscreen mode

5. Log Yönetimi (Production kritik)

tail -f /var/log/syslog
journalctl -f
Enter fullscreen mode Exit fullscreen mode

6. Network ve Port Kontrol

ss -tulnp
netstat -tulnp
Enter fullscreen mode Exit fullscreen mode

📌 Açık portları gösterir.


7. Servis ve Process Debug

ps aux | grep python
top
htop
Enter fullscreen mode Exit fullscreen mode

8. Dosya transfer ve deploy

SCP ile gönderim

scp app.py root@SERVER_IP:/opt/app/
Enter fullscreen mode Exit fullscreen mode

SSH üzerinden direkt işlem

ssh root@SERVER_IP "ls -la /opt/app"
Enter fullscreen mode Exit fullscreen mode

9. Minimal Production Workflow (Gerçek Hayat)

Senaryo: Python servis deploy

1. Sunucuya bağlan

ssh root@SERVER_IP
Enter fullscreen mode Exit fullscreen mode

2. Kodları yükle

scp -r project/ root@SERVER_IP:/opt/app/
Enter fullscreen mode Exit fullscreen mode

3. Servisi başlat

systemctl restart python-app
Enter fullscreen mode Exit fullscreen mode

4. Log izle

journalctl -u python-app -f
Enter fullscreen mode Exit fullscreen mode

5. Cron ile otomasyon

crontab -e
Enter fullscreen mode Exit fullscreen mode

10. Özet (Minimum Bilgi Haritası)

Bir Python geliştiricisi için Linux’ta olmazsa olmaz çekirdek set:

✔ Dosya yönetimi

  • ls, cd, cp, mv, rm

✔ Sistem kontrol

  • ps, top, kill, df, free

✔ Log ve debug

  • tail -f, journalctl, grep

✔ SSH erişim

  • ssh root@ip
  • scp

✔ Servis yönetimi

  • systemctl start/stop/status

✔ Cron job

  • crontab -e
  • zamanlama mantığı

Sonuç

Linux tarafında gerçek üretim becerisi:

“Komut bilmek” değil, sistemi uzaktan yönetebilmek ve otomasyonu kurabilmektir.

Bu 5 alanı (SSH + systemd + cron + log + process) bilen bir geliştirici artık production seviyesine çıkmış olur.

Top comments (0)