cron xếp hàng bash và tập lệnh python
Tôi hiện đang tìm cách hiểu và cảm thấy thoải mái với hàng đợi crontab trên macbook pro của mình. Gần đây tôi đã giải quyết một sự cố trong đó tập lệnh bash đơn giản của tôi sẽ không thực thi. Hóa ra là tôi đã phải di chuyển tập lệnh bash của mình và đầu ra của nó trong /Users/myusername/đường dẫn. Trước khi tôi có nó trong /Users/myusername/Desktop/. Bài viết này có thể được tìm thấy ở đây -https://stackoverflow.com/questions/64110897/simple-bash-script-doesnt-cron-properly?noredirect=1#comment113370465_64110897
Câu hỏi của tôi: Tất cả các tập lệnh bash và python của tôi có cần phải luôn được đặt trong /Users/myusernameđường dẫn không? Không có giải pháp thay thế?
Trả lời
Câu hỏi:
Câu hỏi của tôi: Tất cả các tập lệnh bash và python của tôi có cần phải luôn được đặt trong
/Users/myusernameđường dẫn không? Không có giải pháp thay thế?
Câu trả lời:
Không. Bạn có thể định vị tập lệnh bash và python của mình ở bất kỳ đâu bạn muốn. Tuy nhiên, có các yêu cầu bổ sung :
- Công
cronviệc của bạn chạy với một MÔI TRƯỜNG khác với khi bạn điều hành chúng; vd$PATH. Do đó, bạn nên sử dụng đặc tả đường dẫn đầy đủ để chỉ định các tập lệnh của bạn trongcrontab; ví dụ sử dụng:
* * * * * /opt/local/bin/python3 /some/dir/you/choose/myscript.py
- Trên máy Mac (Catalina) của mình, tôi thấy cần phải cấp đặc quyền "Truy cập toàn đĩa"
cron. YMMV trên phiên bản hệ điều hành khác. Đây là cách thực hiện:
System Preferences -> Security & Privacy -> Privacy tab:
- Ít nhất trong khi gỡ lỗi
croncông việc của bạn , bạn nên xem xét chuyển hướng bất kỳ thông báo lỗi nào (stderr) đến một tệp - nếu không, chúng/dev/nullsẽ không hữu ích! Tiếp tục với ví dụ trên:
* * * * * /opt/local/bin/python3 /some/dir/you/choose/myscript.py >> /Home/<username>/MyCronLog.txt 2>&1
Bạn có thể chỉ cần chắc chắn rằng bạn cấp quyền cho các phần tử và sử dụng đường dẫn đầy đủ cho mọi thứ. Chỉ vì một tập lệnh chạy khi bạn ở trong một trình bao tương tác, không có nghĩa là chúng đúng trong một trình bao giới hạn.
Dưới đây là mẹo gỡ lỗi siêu cao cho một câu hỏi gần đây.
- cron và "không tìm thấy lệnh"
- cronjobs không chạy
- Gặp lỗi lệnh không xác định khi cố gắng chạy tập lệnh qua cron