cron queuing bash ve python betikleri

Sep 29 2020

Ş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

3 Seamus Sep 30 2020 at 13:36

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 :

  1. 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 gerekir crontab; örneğin şunu kullanın:
* * * * * /opt/local/bin/python3 /some/dir/you/choose/myscript.py
  1. 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:

  1. 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
2 bmike Sep 29 2020 at 07:24

Öğ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