Tôi có nên lưu tệp crontab của mình trong / tmp không?


11

Tôi ssh đến một máy chủ và muốn thêm một số công việc hàng ngày (cụ thể là để gia hạn vé Kerberos ngay cả khi tôi đăng xuất và tôi vẫn muốn các chương trình của mình trên màn hình hoặc tmux tiếp tục chạy) vào cron. Vì vậy, tôi chạy crontab -e, và thêm sau đây,

00 00 * * * kinit -R
00 12 * * * kinit -R

Khi tôi lưu nó, tôi được biên tập viên hỏi:

File Name to Write: /tmp/crontab.HMpG7V 

Có phải các tập tin trong /tmphệ điều hành có thể bị xóa không? Đặc biệt là sau khi tôi đăng xuất khỏi máy chủ?

Tôi sẽ lưu tập tin crontab của mình ở đâu? Tôi có thể lưu tệp crontab dưới $ HOME hoặc không gian tốt hơn không?


Tôi có thể lưu tệp crontab dưới $ HOME không? Tại sao tôi cần một liên kết tượng trưng?
Tim

Câu trả lời:


15

crontab -emở một tệp trong / tmp thay vì crontab thực tế để nó có thể kiểm tra lỗi crontab mới của bạn và ngăn bạn ghi đè lên crontab thực tế của bạn với những lỗi đó. Nếu không có lỗi, thì crontab thực tế của bạn sẽ được cập nhật. Nếu crontab -echỉ viết thẳng vào crontab thực tế của bạn, thì bạn sẽ có nguy cơ tất cả các cronjobs của bạn không chạy do lỗi cú pháp trong crontab mới của bạn.

sudoedit, visudo, vipwVv hoạt động trên cùng một nguyên tắc.

Đừng lo lắng, crontab thực tế của bạn sống ở một vị trí không bay hơi trên đĩa.


tập tin crontab của tôi cuối cùng được lưu trữ ở đâu? Nếu tôi đăng xuất khỏi máy chủ, điều gì sẽ xảy ra với tệp crontab của tôi? (Tôi không phải là quản trị viên và không có quyền truy cập root vào máy chủ)
Tim

1
crontab thực tế của bạn sống ở đâu đó /var/spool(thường), nhưng bạn không bao giờ nên chạm vào crontab thực tế của mình và bạn không bao giờ cần phải sử dụng - crontab -ethay vào đó. Bạn có thể không có cấp truy cập phù hợp để chỉnh sửa tệp crontab thô.
jayhendren

nếu bạn đăng xuất, sẽ không có gì xảy ra với crontab của bạn. nó không sống trong / tmp.
jayhendren

(1) Tập tin crontab dành cho người dùng cá nhân hay cho tất cả người dùng? (2) Làm cách nào để xác minh xem chỉnh sửa của tôi đối với tệp crontab có hoạt động không?
Tim

crontabs là trên mỗi người dùng. để xác minh rằng cronjob của bạn chạy, bạn có thể kiểm tra nhật ký cron. thường là trong /var/log/cron.log, nhưng cũng có thể là các vị trí khác.
jayhendren

5

/tmplà nơi tập tin crontab tạm thời được ghi vào. Sau khi bạn lưu và thoát, crontabsẽ cam kết thay đổi một thư mục khác phù hợp hơn trên hệ thống của bạn (thường là tại /var/spool/cron, nếu tôi nhớ đúng). Vì vậy, đừng lo lắng, hệ điều hành có thể xóa / tmp của bạn, nhưng nó sẽ không bao giờ lấy đi crontabs của bạn.


1

Các tệp Crontab nằm trong / var / spool / cron / crontabs / dưới tên người dùng hoặc ID người dùng. Vì các tình huống có thể phát sinh khi crontab ở đây không còn được kết nối với tài khoản đăng nhập của bạn, bạn nên lưu một bản sao vào thư mục chính của mình, giả sử /home/userid/.crontab, để bạn có thể dễ dàng khôi phục nó nếu cần đến. Điều này cũng cho phép bạn đặt nó dưới sự kiểm soát sửa đổi nếu bạn muốn.

Nếu thư mục nhà của bạn được chuyển đến một hệ thống khác, thường thì crontab từ thư mục spool sẽ không đi kèm với nó trừ khi quản trị viên hệ thống của bạn tính đến điều này. Cũng không phải là / var / spool luôn được sao lưu hoặc khôi phục khi hệ thống cần được làm lại.

Vì vậy, một lần nữa chúng tôi khuyên bạn nên giữ một bản sao của crontab trong thư mục nhà của bạn.

Sử dụng trình soạn thảo yêu thích của bạn (pico, vi, emacs, v.v.) để chỉnh sửa ~ / .crontab và sau đó sử dụng crontab để áp dụng nó cho / var / spool / crontabs. Như thế này:

% pico ~/.crontab; crontab ~/.crontab

Nếu bạn thích bí danh, bạn có thể tạo một cái để chạy thay thế.


1
Tôi có phải làm gì đó để làm cho tệp crontab của nhà tôi ghi đè lên các tệp crontab ở vị trí khác không?
Tim

Chỉ cần chạy "crontab ~ / .crontab" và bạn sẽ áp dụng nó cho một trong / var / spool / cron / crontabs. Sử dụng pico, emacs hoặc vi để chỉnh sửa ~ / .crontab trước khi thực hiện bất kỳ thay đổi nào.
JonathanS

Điều này không thực sự trả lời câu hỏi.
không ai vào

@AndrewMedico: Câu hỏi chính dường như là "Tôi sẽ lưu trữ tệp crontab của mình ở đâu? Tôi có thể lưu tệp crontab dưới $ HOME hoặc không gian tốt hơn không?" Hay bạn đang đề cập đến câu hỏi của Tim trong bình luận ở đây?
JonathanS
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.