Nhiều crontabs cho một người dùng


13

Có cách nào để sử dụng nhiều tập tin crontab cho một người dùng không? Suy nghĩ điều gì đó dọc theo dòng tệp crontab cho mỗi dự án thay vì crontab cho mỗi người dùng ...

Bất kỳ trợ giúp đều được đánh giá cao ...

Câu trả lời:


13

Nói chung, nên duy trì crontab của bạn trong một tệp riêng biệt và cài đặt nó với crontab filename. (Tôi giữ tệp crontab của mình trong hệ thống kiểm soát nguồn.)

Bạn có thể có nhiều tệp crontab và cài đặt tất cả chúng với

cat file1 file2 file3 | crontab

Các crontablệnh thường chỉ quản lý một crontab duy nhất cho mỗi người dùng. Nhưng bạn có thể thêm các tập tin crontab hệ thống vào /etc/cron.dthư mục. Các tệp này có một trường bổ sung sau thông số kỹ thuật thời gian cho biết người dùng cho công việc và bạn có thể có nhiều tệp cho mỗi người dùng. Ngay cả khi một trong số chúng có lỗi cú pháp, những cái khác vẫn sẽ thực thi.

Bạn sẽ cần quyền truy cập root để cài đặt các tập tin trong thư mục đó.

man 5 crontab để biết chi tiết.

Tôi không tin rằng phá vỡ cơ chế crontab bình thường như thế này là một ý tưởng tốt, nhưng nó nên hoạt động.

(Điều này giả định việc triển khai "Vixie Cron", có lẽ là những gì hệ thống của bạn sử dụng.)

LƯU Ý: Bạn có thể muốn thử

crontab file1 file2 file3 # WRONG

nhưng một thử nghiệm nhanh cho thấy tất cả các tên tệp nhưng tên đầu tiên được âm thầm bỏ qua. Trang man nói rằng một tên tệp duy nhất được chấp nhận, nhưng không cho biết điều gì xảy ra nếu nhiều tên tệp được cung cấp.


Tôi đã làm điều đó ngày hôm nay. Điều đó sẽ dễ thực hiện, nhưng mục tiêu của việc này là mỗi "người quản lý" dự án sẽ có quyền kiểm soát đối với crontab của chính mình. Với cách tiếp cận đó nó sẽ phải được kết hợp như thế mỗi lần ai đó thay đổi một trong những tác phẩm, mà có nghĩa là họ sẽ phải theo dõi tất cả các tập tin mà cần phải được biên dịch

1
Vì vậy, tạo một chương trình (hoặc tập lệnh, hoặc bất cứ điều gì) để tự động hóa nó. Lưu ý rằng bạn có thể gọi crontablệnh từ mục crontab.
Keith Thompson

1
@MateuszKonieczny: Đó là một lý do tốt, nhưng nó cũng dễ dàng để vô tình xóa crontab của bạn. crontabkhông có đối số đọc một crontab mới từ stdin.
Keith Thompson

1
@MateuszKonieczny: Không, tôi chỉ giữ nó trong repo CVS và sao chép nó $HOMEkhi tôi cập nhật nó. (Tôi sử dụng CVS vì Git không tồn tại khi tôi bắt đầu làm việc này.)
Keith Thompson

1
@KeithThndry Oh, gotcha! Tôi đang tạo một tài liệu để giúp mọi người chạy Fedora Core 24 từ "cào" mà không cần tiến hóa hay gnome: github.com/barrycarter/bcapps/blob/master/FEDORA và muốn chia sẻ một phần tệp cron của tôi nhưng không phải tất cả. Giải pháp của bạn (tạo bc-public-cron trong thư mục GIT và bc-private-cron bên ngoài nó) phù hợp với hóa đơn độc đáo.
barrycarter

4

Tại sao bạn lại làm vậy? Bạn có thể sử dụng nhiều dòng trong crontab - Tôi nghĩ rằng điều đó cũng sẽ làm công việc đó.

Ngoài ra còn có các thư mục bạn có thể có thể sử dụng:

cron.d/
cron.daily/
cron.hourly/
cron.monthly/
cron.weekly/

Đó là cách bây giờ :) Tôi chỉ muốn biết liệu có cách nào để làm điều này không
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.