Điểm:1

Các công việc định kỳ của tôi không chạy khi cố lưu đầu ra tập lệnh vào tệp txt

lá cờ ng

Tôi đang cố chạy tập lệnh python hai lần một ngày - một lần vào lúc 8:00 sáng và một lần nữa vào lúc 8:00 tối. Hy vọng của tôi là lưu trữ đầu ra tập lệnh vào một tệp txt trên máy tính của tôi có tên LOG_{date-time}.txt để tôi có thể xem các tệp "nhật ký" trong trường hợp có sự cố xảy ra với tập lệnh. Tôi đã thiết lập công việc định kỳ sau:

0 8,20 * * * python3 /script/working/directory/Script.py > /script/working/directory/logs/LOG_"$(date +"%d-%m-%Y")".txt

Sau khi thiết lập công việc định kỳ, tôi đã kiểm tra tập lệnh sau 8:00 tối và nhận thấy tập lệnh của mình chưa chạy (tôi đã đặt tập lệnh này để cập nhật tệp bảng tính và để lại dấu thời gian sau mỗi lần cập nhật).

Tôi đã tự khắc phục sự cố một chút và thấy rằng nếu tôi chạy công việc định kỳ mà không có phần đầu ra của nó, thì nó sẽ hoạt động (tôi cũng thấy rằng nhật ký công việc định kỳ được đưa ra theo UTC thay vì thời gian hệ thống của tôi, nhưng điều đó là một vấn đề cho một thời điểm khác):

0 8,20 * * * python3 /script/working/directory/Script.py

Có điều gì tôi đang thiếu ở đây? Điều này có nên lưu trữ đầu ra tập lệnh thành một tệp không? Tôi hơi mới với những thứ ở đây và đã cố gắng học hỏi khi tôi tiếp tục với điều này nhưng tôi không chắc sẽ đi đâu với điều này.Thật tuyệt nếu có thể lưu trữ đầu ra của tập lệnh của tôi cho mục đích gỡ lỗi.

Wayne Vosberg avatar
lá cờ bd
hãy thử loại bỏ các trích dẫn thêm. tức là `/LOG_$(date+'%d-%m-%Y').txt`. Ngoài ra, ý của bạn là `>>` thay vì `>`?
Wayne Vosberg avatar
lá cờ bd
Một suy nghĩ khác - đảm bảo rằng người dùng đang chạy công việc định kỳ có quyền truy cập vào `/script/working/directory/logs`
lá cờ hr
Các ký tự `%` là đặc biệt trong crontabs và phải được thoát. Xem ví dụ [Không thể thực thi lệnh trong cron](https://askubuntu.com/questions/829818/unable-to-execute-command-in-cron)
Pocketmouse avatar
lá cờ ng
Tôi đã định dạng nó hơi sai, nó được cho là `/"LOG_$(date +'%d-%m-%Y').txt"`
Điểm:1
lá cờ cn

Lý do chính mà tôi có thể cho là đường dẫn nhật ký không tồn tại hoặc bạn không có quyền ghi vào đường dẫn nhật ký.

Hãy thử thực hiện lệnh thủ công thay vì cron

python3 /script/working/directory/Script.py > /script/working/directory/logs/LOG_"$(date +"%d-%m-%Y")".txt

Rất có thể bạn sẽ thấy lỗi trong thiết bị đầu cuối của mình.

Pocketmouse avatar
lá cờ ng
Đây không phải là trường hợp.
Pocketmouse avatar
lá cờ ng
Tôi đã vào để chỉnh sửa và nhận ra rằng tôi đã không lưu bây giờ tôi không thể chỉnh sửa: Đây không phải là trường hợp. Khi tôi chạy tập lệnh theo cách thủ công trong cả dòng lệnh và thông qua tệp .sh, nó sẽ hoạt động mà không gặp sự cố.Tôi cũng đã thiết lập cả `Script.py` và `Script.sh` để có quyền thực thi với `chmod +x script.py`. Tôi đã xem xét kỹ hơn vấn đề này và nhận thấy rằng nếu tôi sử dụng những thứ như yêu cầu `get` thì tôi phải có một môi trường ảo cần được gọi trong cron để tập lệnh này chạy. Tôi không chắc điều này có nghĩa là gì hoặc làm thế nào để triển khai điều này hiện tại, nhưng như tôi đã nói, tôi đang đọc nó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.