Công việc định kỳ do người dùng xác định của tôi không chạy. Tôi đã kiểm tra một số câu trả lời, giống cái này, và tất cả những thứ này có vẻ để được chính xác:
- Sử dụng đường dẫn đầy đủ đến tập lệnh của bạn trong crontab
- đảm bảo rằng nó có thể thực thi được:
Sudo chmod +x my_script
- Bạn đã nhầm đường dẫn đến trình thông dịch trong dòng đầu tiên của tập lệnh: nó phải là
#!/bin/bash
# Ví dụ: bạn có thể chạy sao lưu tất cả tài khoản người dùng của mình
# 5h sáng hàng tuần với:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# "sync" là tập lệnh của tôi, có #!/bin/env bash ở dòng đầu tiên
* * * * 1 /home/user1/clone/configs/sync && thông báo-gửi "đồng bộ hóa đã thực hiện"
0 * * * 1 git -C /home/user1/clone/configs add -A && git -C /home/user1/clone/configs/ commit -m "synced"
Tôi biết rằng tệp đã được tải lại sau khi chỉnh sửa bằng cách sử dụng crontab -e
. đầu ra từ trạng thái systemctl cron
:
Ngày 20 tháng 2 09:31:01 mã cron[631]: (sm) TẢI LẠI (crontabs/user1)
Ngày 20 tháng 2 09:32:01 mã cron[631]: (sm) TẢI LẠI (crontabs/user1)
Và grep CRON /var/log/syslog
chỉ hiển thị một số lệnh được thực thi bởi root:
Ngày 20 tháng 2 09:17:01 mã CRON[4600]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Ngày 20 tháng 2 09:30:01 code CRON[6806]: (root) CMD ([ -x /etc/init.d/anacron ] && if [ ! -d /run/systemd/system ]; then /usr/sbin/ gọi-rc.d anacron bắt đầu >/dev/null; fi)
Bất kỳ giúp đỡ?