DEV Community

Vebende Akademi
Vebende Akademi

Posted 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)