Tôi nên sử dụng cron.hourly hoặc crontab?


9

Dường như tất cả các đề xuất cho việc sử dụng / lập lịch trình awstats đều thông qua crontab, như vậy: 0 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=mysite -update >/dev/null(chạy awstats hàng giờ).

Tuy nhiên, nếu tôi kiểm tra crontab -l, nó nói crontab trống đối với người dùng của tôi.

Tuy nhiên, khi tôi kiểm tra /etc/cron.hourly, tôi đã nhận được một tệp awstats với các mục sau:

#!/bin/bash
exec /usr/share/awstats/tools/awstats_updateall.pl now         -configdir="/etc/awstats"           -awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl" >/dev/null
exit 0

Chỉ cần cho bạn biết, awstats của tôi được cập nhật tốt, nó tạo ra các báo cáo của nó, và tất cả đều tốt.

Việc chạy lệnh crontab có tạo ra một mục trong thư mục cron được chỉ định không? (ví dụ: cron.hourly hoặc cron.d Daily, v.v.)? Hay chúng không liên quan? Nếu chúng có liên quan, tại sao người dùng của tôi không có mục crontab?

Câu trả lời:


13

crontab -elà cách truyền thống để tạo ra một crontab. Tôi thấy nó là vụng về và lỗi thời, nhưng mọi người vẫn sử dụng nó.

/etc/cron.hourly, bao gồm cron.daily, cron.weekly& /etc/cron.d, v.v. được cung cấp bởi hầu hết các bản phân phối Linux vì chúng tiện lợi và hoạt động tốt với các công cụ tự động hóa như trình quản lý gói và hệ thống quản lý cấu hình. Người quản lý gói rất dễ dàng thả tệp vào /etc/cron.hourly/fooso với kịch bản chỉnh sửa một crontab hiện có. Chỉnh sửa tệp theo chương trình thông qua trình quản lý gói có thể làm hỏng tệp, thêm các mục trùng lặp, xóa sai dòng, vặn bình luận, v.v ... Xem Editfiles được coi là có hại cho một số cuộc thảo luận, vì vấn đề này đã xảy ra được một thời gian.

Việc chạy lệnh crontab có tạo ra một mục trong thư mục cron được chỉ định không?

Số /etc/cron.daily/foođược tạo bởi người quản lý gói, hoặc được tạo bằng tay. Nó không được tạo khi bạn chạy lệnh crontab. crontab -esẽ tạo crontab bên dưới /var, chẳng hạn như /var/spool/cron/root.

Tôi thích /etc/cron.$period/foo/etc/cron.dbởi vì hệ thống phân cấp đó gọn gàng và có tổ chức, và nó dễ dàng tạo kịch bản cho hệ thống Quản lý cấu hình của tôi. /etc/crontabcũng có sẵn trên Linux, nhưng nó hơi nguyên khối và khó chỉnh sửa theo chương trình. Các hệ thống như hỗ trợ FreeBSD /etc/crontab/etc/periodic.


1
Cảm ơn câu trả lời của bạn, tôi cũng thích nó, vì tôi đã quen với việc thả các tệp cấu hình trong các thư mục .d (ví dụ: conf.d, v.v.)!
đồ uống có ga

Tôi chỉ có thể đồng ý về điều này. Tôi cũng thích sử dụng hệ thống /etc/crontabkhi nó chạy hệ thống thay vì sử dụng crontab của root. Bằng cách này, người ta có thể dễ dàng biết hệ thống đang hoạt động như thế nào mà không cần đào trong mỗi crontab của người dùng.
Spack

1
Tôi đồng ý với câu trả lời này. Có thể đề cập đến một số khác biệt khác: /etc/cron.$ period / chứa các tập lệnh tự cung cấp được chạy bởi người dùng root. OTOH /etc/cron.d/ chứa các tệp có crontab -eđịnh dạng. Cuối cùng, / etc / cron * được dành cho các tập lệnh chạy gốc, trong khi crontab -ecó sẵn cho tất cả người dùng.
Nils Toedtmann

Các crontab -elệnh là vụng về theo mặc định. Vì vậy, tôi đã tạo ra một kịch bản gọi là ctehai lệnh: export EDITOR=geditvà sau đó crontab -etrình soạn thảo dễ làm việc hơn.
SDsolar
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.