Vị trí của tập tin crontab


53

như nhiều (hầu hết?) những người khác, tôi chỉnh sửa crontab của mình thông qua crontab -e, nơi tôi giữ tất cả các hoạt động thường ngày như sao lưu gia tăng, ntpdate, các hoạt động rsync khác nhau, cũng như làm cho nền tảng máy tính để bàn của tôi theo chủ đề mỗi năm một lần. Từ những gì tôi đã hiểu, trên một bản cài đặt mới hoặc người dùng mới, điều này cũng tự động tạo tệp nếu nó không tồn tại. Tuy nhiên, tôi muốn sao chép tệp này sang người dùng khác, vậy tệp thực sự tôi đang chỉnh sửa ở đâu?

Nếu điều này thay đổi giữa các bản phát hành, tôi đang sử dụng Centos5 và Mint 17


15
+1 chỉ để làm nền cho máy tính để bàn của bạn theo chủ đề Giáng sinh mỗi năm một lần
Celada

5
@Celada Nó có thể không thường xuyên, tuy nhiên đó là một nhiệm vụ thường xuyên.
Jarmund

Câu trả lời:


54

Vị trí của croncác tập tin cho người dùng cá nhân là /var/spool/cron/crontabs/.
Từ man crontab:

Mỗi người dùng có thể có crontab của riêng họ và mặc dù đây là các tệp trong đó /var/spool/cron/crontabs, nhưng họ không có ý định chỉnh sửa trực tiếp.


7
Các từ khóa có "chúng không có ý định chỉnh sửa trực tiếp", vì vậy câu trả lời này không đầy đủ nếu không có lệnh của Celada bên dưới, cung cấp câu trả lời an toàn hơn cho phần "sao chép cho người dùng khác" của câu hỏi. Nếu mọi người có thói quen chỉnh sửa trực tiếp crontab mà không gửi chúng thông qua lệnh crontab, họ sẽ từ bỏ rất nhiều việc kiểm tra sự tỉnh táo mà lệnh cung cấp.
Monty Harder

@MontyHarder Tôi đồng ý "họ không có ý định chỉnh sửa trực tiếp" nhưng nếu có nhu cầu thì giống như có nhu cầu tạo một mục trong crontab thông qua tập lệnh bash. bạn phải sử dụng tệp chính xác, tôi không nghĩ bất kỳ giao diện bên ngoài nào sẽ giúp ích trong trường hợp đó, hãy sửa tôi nếu tôi sai.
Bohhat Kumar Singh

@PrabhatKumarSingh Bạn vẫn không nên trực tiếp chỉnh sửa tệp. Nếu bạn đọc lệnh của Celada bên dưới, bạn sẽ thấy một ví dụ về cách tập lệnh có thể thao tác với tệp crontab mà không cần chỉnh sửa trực tiếp. man crontabgiải thích làm thế nào điều này hoạt động.
Monty Harder

34

heemayl đúng về vị trí của các tệp crontab trên Linux, nhưng nó có thể khác trên các hệ điều hành khác và "về mặt lý thuyết" cũng có thể ở một vị trí khác trên Linux. Về cơ bản, khi một giao diện đặc biệt được cung cấp để truy cập các tệp, bạn nên sử dụng nó. Điều này sẽ đảm bảo rằng cronphải kiểm tra các tệp trước khi cài đặt chúng, đảm bảo các tệp có quyền mà chúng cần có, v.v ...

Do đó, bạn nên sao chép một crontab từ người dùng này sang người dùng khác bằng giao diện đó, như thế này, không phải bằng cách truy cập trực tiếp vào các tệp.

crontab -u <user1> -l | crontab -u <user2>

3
Có nhiều lý do chính đáng tại sao các tệp crontab không nên bị thao túng trực tiếp bởi bất kỳ thứ gì khác ngoài chính hệ điều hành. Đây là một giải pháp tốt hơn nhiều. Tôi thực sự nghĩ rằng nó cần được đưa vào câu trả lời chính thức.
Monty Harder

@MontyHarder Thực sự không có câu trả lời "chính thức". Có câu trả lời mà người hỏi đã chọn là hữu ích cho cá nhân anh ấy / cô ấy (câu trả lời có dấu) và câu trả lời mà cộng đồng đã chọn (với hầu hết các upvote). Nói tóm lại, bạn có 15 đại diện, bạn có thể đề nghị đây là câu trả lời đúng bằng cách nâng cao nó. Ngoài ra, nếu bạn muốn đề xuất cải tiến cho câu trả lời khác, bạn cần bình luận về câu trả lời đó nếu không, tác giả của nó sẽ không được thông báo về nhận xét của bạn.
derobert

2
Hệ quả của câu trả lời này là người ta nên chuyển hướng đầu ra của crontab -ltệp, di chuyển tệp sang hệ thống khác và chuyển nó sang crontab. Hoặc thậm chí có thể làm điều đó trực tiếp ( crontab -l | ssh $remote_host crontab).
Blacklight Shining

6
"khi một giao diện đặc biệt được cung cấp để truy cập các tệp, bạn nên sử dụng nó." Tuy nhiên, hãy tưởng tượng mọi ứng dụng được cung cấp một giao diện đặc biệt để chỉnh sửa các tệp cấu hình thay vì chỉ hiển thị chúng qua fs. Đó sẽ là khá khó chịu để theo dõi.
Witiko

1
Là người hỏi ban đầu, tôi nghĩ rằng tôi nên cân nhắc về vấn đề này: Câu trả lời được chấp nhận đã được chọn trên cơ sở câu hỏi của tôi theo nghĩa đen của nó; vị trí của tập tin. Ý định của tôi cho tập tin đó là không liên quan. Tôi không nghĩ rằng chỉnh sửa trong thông tin bổ sung sẽ thay đổi câu trả lời, nhưng nó có thể được coi là thừa.
Jarmund
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.