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
Bulunduğun dizini gösterir.
ls -la
Tüm dosyaları detaylı listeler.
cd /var/www
cd ~
cd ..
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/
📌 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
📌 Özellikle:
-
tail -f→ canlı log izleme
1.4 Arama işlemleri
grep "ERROR" logs.txt
grep -r "config" .
find . -name "*.py"
1.5 Sistem durumu
top
ps aux
df -h
free -h
1.6 Süreç yönetimi
kill -9 PID
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
Örnek:
ssh root@185.12.45.90
2.2 SSH key ile bağlanma (önerilen)
ssh -i key.pem root@SERVER_IP
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
3. SSH bağlantısı
ssh root@167.235.45.12
4. İlk giriş kontrolü
whoami
uname -a
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
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
3.3 Servisi başlatma
sudo systemctl daemon-reload
sudo systemctl start python-app
sudo systemctl enable python-app
3.4 Servis durumu
sudo systemctl status python-app
3.5 Log kontrol
journalctl -u python-app -f
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
4.2 Cron açma
crontab -e
4.3 Örnek kullanım senaryoları
Her dakika çalıştırma
* * * * * /usr/bin/python3 /opt/app/task.py
Her 5 dakikada bir
*/5 * * * * /usr/bin/python3 /opt/app/task.py
Her gün saat 03:00 backup
0 3 * * * /usr/bin/python3 /opt/app/backup.py
Sistemi kontrol eden job
*/10 * * * * /usr/bin/python3 /opt/app/healthcheck.py
4.4 Cron log kontrol
grep CRON /var/log/syslog
5. Log Yönetimi (Production kritik)
tail -f /var/log/syslog
journalctl -f
6. Network ve Port Kontrol
ss -tulnp
netstat -tulnp
📌 Açık portları gösterir.
7. Servis ve Process Debug
ps aux | grep python
top
htop
8. Dosya transfer ve deploy
SCP ile gönderim
scp app.py root@SERVER_IP:/opt/app/
SSH üzerinden direkt işlem
ssh root@SERVER_IP "ls -la /opt/app"
9. Minimal Production Workflow (Gerçek Hayat)
Senaryo: Python servis deploy
1. Sunucuya bağlan
ssh root@SERVER_IP
2. Kodları yükle
scp -r project/ root@SERVER_IP:/opt/app/
3. Servisi başlat
systemctl restart python-app
4. Log izle
journalctl -u python-app -f
5. Cron ile otomasyon
crontab -e
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)