Lý do thường xuyên nhất tôi thấy cron thất bại trong một lịch trình được nêu không chính xác. Cần thực hành để chỉ định một công việc được lên lịch vào lúc 11:15 15 23 * * *
thay vì * * 11 15 *
hoặc 11 15 * * *
. Ngày trong tuần cho công việc sau nửa đêm cũng bị nhầm lẫn MF là 2-6
sau nửa đêm, không 1-5
. Ngày cụ thể thường là một vấn đề vì chúng tôi hiếm khi sử dụng chúng * * 3 1 *
không phải là ngày 3 tháng 3. Nếu bạn không chắc chắn, hãy kiểm tra lịch trình cron của bạn trực tuyến tại https://crontab.guru/ .
Nếu công việc của bạn với các nền tảng khác nhau sử dụng các tùy chọn không được hỗ trợ như 2/3
thông số kỹ thuật về thời gian cũng có thể gây ra lỗi. Đây là một tùy chọn rất hữu ích nhưng không phổ biến. Tôi cũng đã chạy qua các vấn đề với danh sách như 1-5
hoặc 1,3,5
.
Sử dụng các đường dẫn không đủ tiêu chuẩn cũng đã gây ra vấn đề. Đường dẫn mặc định thường là /bin:/usr/bin
như vậy chỉ các lệnh tiêu chuẩn sẽ chạy. Những thư mục này thường không có lệnh mong muốn. Điều này cũng ảnh hưởng đến các tập lệnh sử dụng các lệnh không chuẩn. Các biến môi trường khác cũng có thể bị thiếu.
Đóng băng một crontab hiện có hoàn toàn đã gây ra cho tôi các vấn đề. Bây giờ tôi tải từ một bản sao tập tin. Điều này có thể được phục hồi từ crontab hiện tại bằng cách sử dụng crontab -l
nếu nó bị ghi đè. Tôi giữ bản sao của crontab trong ~ / bin. Nó được bình luận trong suốt và kết thúc với dòng # EOF
. Điều này được tải lại hàng ngày từ một mục crontab như:
#! / usr / bin / crontab
# Tải lại crontab này
#
54 12 * * * $ {HOME} / thùng / crontab
Lệnh tải lại ở trên phụ thuộc vào một crontab thực thi với một đường dẫn bang chạy crontab. Một số hệ thống yêu cầu crontab đang chạy trong lệnh và chỉ định tệp. Nếu thư mục được chia sẻ mạng, thì tôi thường sử dụng crontab.$(hostname)
làm tên của tệp. Điều này cuối cùng sẽ sửa các trường hợp trong đó crontab sai được tải trên máy chủ sai.
Việc sử dụng tệp cung cấp một bản sao lưu của crontab nên là gì và cho phép các chỉnh sửa tạm thời (lần duy nhất tôi sử dụng crontab -e
) được sao lưu tự động. Có các tiêu đề có sẵn giúp nhận được các tham số lập lịch đúng. Tôi đã thêm chúng khi người dùng thiếu kinh nghiệm sẽ chỉnh sửa crontab.
Hiếm khi, tôi đã chạy vào các lệnh yêu cầu đầu vào của người dùng. Những thất bại trong crontab, mặc dù một số sẽ hoạt động với chuyển hướng đầu vào.
crontab -e
cho cron để có ảnh hưởng. Ví dụ, sử dụng vim tôi chỉnh sửa tệp và sử dụng:w
để ghi nó nhưng công việc không được thêm vào cron cho đến khi tôi cũng thoát. Vì vậy, tôi sẽ không nhìn thấy công việc cho đến sau khi tôi:q
cũng vậy.