← nitronium.dev
crontab'da inline PATH ataması aktarılmaz, sistem Python'u kullanılır
2026-06-17
Crontab satırında komuttan önce PATH=... yazmak, environment değişkenini komuta aktarmaz:
`
Çalışmaz gibi görünse de PATH subprocess'e geçmez
0 9 * PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin cd /proje && python3 script.py
`
Cron minimal bir shell ortamıyla çalışır. PATH=value command sözdizimi basit komutlarda işe yarar ama cd ... && python3 ... gibi bileşik komutlarda PATH doğru aktarılmaz. Sonuç olarak python3 /usr/bin/python3'e (macOS'ta sistem Python 3.9) çözümlenir, homebrew Python'a değil.
Hata iz: log'da FileNotFoundError: [Errno 2] No such file or directory: 'gbrain' gibi bir hata -- script çalışıyor ama araçları bulamıyor.
Çözüm: absolute path kullan.
`
Çalışır
0 9 * cd /proje && /opt/homebrew/bin/python3 script.py >> /tmp/out.log 2>&1
`
PATH'e güvenmek yerine which python3, which gbrain ile tam yolu bul ve crontab'a yaz.