cron queuing bash ve python betikleri
Şu anda macbook pro'mdaki crontab kuyruklarını anlamak ve bunlara alışmak istiyorum. Yakın zamanda basit bash betiğimin çalışmadığı bir sorunu çözdüm. Görünüşe göre bash betiğimi ve çıktısını /Users/myusername/yola taşımak zorunda kaldım . İçine girmeden önce /Users/myusername/Desktop/. Bu gönderi burada bulunabilir -https://stackoverflow.com/questions/64110897/simple-bash-script-doesnt-cron-properly?noredirect=1#comment113370465_64110897
Sorum: Tüm bash ve python komut dosyalarımın /Users/myusernameher zaman yolda tutulması gerekir mi? Çözüm yok mu?
Yanıtlar
Soru:
Sorum: Tüm bash ve python komut dosyalarımın
/Users/myusernameher zaman yolda tutulması gerekir mi? Çözüm yok mu?
Cevap:
Hayır. Bash ve python komut dosyalarınızı istediğiniz yerde bulabilirsiniz. Bununla birlikte, ek gereksinimler vardır :
- Sizin
cronişler farklı çalıştırmak ÇEVRE bunları çalıştırdığınızda daha; ör$PATH. Sonuç olarak, içinde komut dosyalarınızı belirtmek için tam bir yol belirtimi kullanmanız gerekircrontab; örneğin şunu kullanın:
* * * * * /opt/local/bin/python3 /some/dir/you/choose/myscript.py
- Mac'imde (Catalina) "Tam Disk Erişimi" ayrıcalıklarını vermeyi gerekli buldum
cron. Farklı bir işletim sistemi sürümünde YMMV. Bunu nasıl yapacağınız aşağıda açıklanmıştır:
System Preferences -> Security & Privacy -> Privacy sekmesi:
- En azından işinizde hata ayıklarken ,
cronherhangi bir hata mesajını (stderr) bir dosyaya yeniden yönlendirmeyi düşünmelisiniz - aksi takdirde bunlar işe/dev/nullyaramaz! Yukarıdaki örnekle devam edelim:
* * * * * /opt/local/bin/python3 /some/dir/you/choose/myscript.py >> /Home/<username>/MyCronLog.txt 2>&1
Öğelere izin verdiğinizden ve her şey için tam yolları kullandığınızdan emin olmanız gerekebilir. Etkileşimli bir kabukta olduğunuzda bir komut dosyasının çalışması, sınırlı bir kabukta doğru oldukları anlamına gelmez.
İşte son soruyla ilgili süper hata ayıklama ipuçları .
- cron ve "komut bulunamadı"
- cronjobs çalışmaz
- Cron aracılığıyla komut dosyası çalıştırmaya çalışırken bilinmeyen komut hatası alınıyor