/ etc / crontab không có gì


9

Trong /etc/crontabtập tin của tôi, tôi có:

# 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  * * 7 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ôi biết những gì nó làm trong thực tế nhưng tôi không hiểu các dòng lệnh.

Người đàn ông "kiểm tra" hoàn toàn không giúp đỡ:

test - check file types and compare values

Mọi sự trợ giúp sẽ rất được trân trọng

Câu trả lời:


12

Từ FreeBSD man test: [1]

 -x file       True if file exists and is executable.  True indicates only
               that the execute flag is on.  If file is a directory, true
               indicates that file can be searched.

Vì vậy, kiểm tra cronjobs nếu đã được anacroncài đặt [2] (nghĩa là có một tệp thực thi được gọi là anacron ở vị trí dự kiến) và chạy một cái gì đó nếu không - cụ thể là các tập lệnh trong các /etc/cron.*thư mục tương ứng .

(1) Nội dung của Bash testcó cùng -xtùy chọn

(2) Anacron là thiết bị thay thế cron được thiết kế cho các máy tính không phải lúc nào cũng chạy, tức là, nếu có một công việc được chạy hàng tuần , nó sẽ được chạy hàng tuần, liên quan đến thời gian hoạt động của máy tính , có nghĩa là nó sẽ không chạy mỗi, nói, thứ sáu, nhưng cứ sau 24 * 7 giờ hoạt động. ( Chỉnh sửa Tôi đã hiểu sai tất cả, xem ý kiến)


Đó không phải là một mô tả chính xác về những gì Anacron làm. Nó không đo thời gian hoạt động. Nó chỉ đơn giản là chạy các công việc có thời gian chạy theo lịch trình xảy ra trong khi máy tính tắt ngay khi bạn bật lại máy tính. Cron thông thường bỏ qua một công việc nếu máy tính không bật ngay khi nó được lên lịch để chạy.
cjm

oh, sau đó tôi đã hiểu sai (hoặc trộn nó với những gì fcron làm? có một thay thế cron khác ...). cảm ơn vì đã ngẩng cao đầu
sr_

@cjm afaik anacron cần tập tin cấu hình riêng. Vì vậy, bạn phải cấu hình rõ ràng công việc anacron.
Nils

@Nils, tôi đã không cố gắng ám chỉ khác. Tôi chỉ chỉ ra rằng "cứ sau 24 * 7 giờ hoạt động" là hoàn toàn sai. Lịch trình của Anacron dựa trên thời gian lịch chứ không phải thời gian hoạt động.
cjm

@cjm Nếu thời gian chạy theo lịch trình của nhiều công việc xảy ra khi máy tính tắt và máy tính đã bật trở lại, liệu các công việc có được thực hiện theo thứ tự tăng dần của thời gian dự kiến ​​không?
Omkar Neogi

5

Bạn có thể quen thuộc với [ -x <filename> ]. test -x <filename>thực hiện điều tương tự, kiểm tra nếu tệp này tồn tại và có thể thực thi được không.


1

Như được trích dẫn trong trang man, test rất giống với eval, nó đánh giá một biểu thức điều kiện expr và thoát với trạng thái trả về. Các trường hợp thường gặp, kiểm tra được sử dụng để xác định loại tệp dưới dạng biểu thức trong đó các trường hợp được sử dụng để kiểm tra trả về trường hợp đúng hoặc sai. Trong crontab của bạn test -x filename, nơi tên tệp được sử dụng làm biểu thức. Điều này cũng tương đương với [ -x filename ]. Điều này sẽ trả về true nếu tệp có mặt và cũng có thể thực thi được (bit được đặt). man testđưa ra chi tiết xác định của các tùy chọn khác nhau cho loại để đánh giá các biểu thức điều kiện trên các tệp và các biểu thức shell hợp lệ khác.

Ví dụ:

test -1 -gt -2 && echo yes sẽ in có.

test 0x100 -eq 1 lỗi -> test: biểu thức số nguyên dự kiến ​​trước -eq


Bạn có nghĩa là evaltuyên bố trong sh / ksh / bash / zsh?
Arcege
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.