Tại sao cron.weekly không chạy?


8

Khi tôi nhận thấy rằng bản sao lưu mà tôi đã đặt trong /etc/cron.weekly trên máy chủ Debian6 của tôi không được thực thi, tôi đã đặt tập lệnh nhỏ này trong đó, để xem liệu cronjob hàng tuần có được thực hiện hay không:

#!/bin/bash
echo 'CRON RAN' > /var/log/cron-weekly-runcheck.log

lưu nó dưới dạng

-rwxr-xr-x 1 root root 64 Jul 15 02:14 /etc/cron.weekly/runcheck.sh

Khi tôi kiểm tra ngày hôm nay, logfile mà nó được cho là không tồn tại.
Crontab trông giống như sau (nên là crontab debian6 mặc định theo hiểu biết của tôi):

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 1   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Tất cả mọi thứ xuất hiện của cronjob hàng tuần trong bất kỳ logfiles nào đều là dòng này:

Jul 16 06:47:01 wtwrp /USR/SBIN/CRON[29272]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))

Lưu ý bên: cron.dailydường như hoạt động kể từ khi logrotate hoạt động. cron.hourlykhông có kịch bản trong đó.

Bất kỳ ý tưởng về những gì có thể có thể đi sai?


Kiểm tra thư gốc để biết thông báo lỗi đầu ra và có khả năng. Có thể được tìm thấy trong /var/spool/mail/rootnếu bạn chưa /etc/aliasesthiết lập để chuyển tiếp thư gốc ở nơi nào đó có thể đọc được.
Ladadadada

@Ladadadada ý kiến ​​hay! Thật không may, hoàn toàn không có gì liên quan cron.weeklytrong đó.
Cobra_Fast

Câu trả lời:


18

Các cron.weeklytập lệnh được bắt đầu bằng cách run-partsbỏ qua tất cả các tệp có phần mở rộng. Đổi tên runcheck.shthành runcheckvà nó nên làm


4
Đó là điều mà bạn chỉ bị bắt gặp khi tôi đặt cược.
dùng9517

1

comm1 || comm2 || comm3 || comm4

sẽ được thực hiện cho đến khi retval đầu tiên = 0 sẽ được trả về (từ trái sang phải). Phần còn lại của các chuỗi được tối ưu hóa bởi trình thông dịch và hoàn toàn KHÔNG được thực thi

Nếu test -x /usr/sbin/anacrontrả về 0 là retval, sẽ không có lệnh nào khác được thực thi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.