Làm cách nào để định cấu hình Ubuntu để khởi động lại mỗi ngày tại một thời điểm nhất định?


11

Sử dụng thiết bị đầu cuối hoặc tệp bash, làm cách nào tôi có thể định cấu hình Ubuntu để khởi động lại mỗi ngày vào lúc (ví dụ) 3 giờ sáng?

Nói cách khác, tôi muốn lên lịch khởi động lại tự động thông qua thiết bị đầu cuối.

Tôi chưa thể tìm thấy bất cứ điều gì liên quan đến điều này trên Google hoặc AskUbfox và nói chung tôi khá mới với Ubuntu (vừa có Raspberry Pi mới của tôi).

Câu trả lời:


13

Chỉnh sửa các mục crontab bằng crontab -elệnh (theo mặc định, điều này sẽ chỉnh sửa crontab của người dùng đã đăng nhập hiện tại) và thêm dòng sau:

0 3 * * * echo $PASSWD | sudo -S reboot
#change $PASSWD with your password

Lưu tệp và kiểm tra mục crontab mới với crontab -l.

Nếu bạn chỉ muốn sử dụng:

0 3 * * * sudo reboot

như crontab, điều này không hoạt động bình thường và bạn nên kiểm tra bài đăng này để xem làm thế nào bạn có thể làm cho nó hoạt động.

Hoặc, đơn giản thêm crontab vào tệp crontab của người dùng gốc cung cấp đường dẫn đầy đủ cho rebootlệnh bằng cách sử dụng sudo crontab -e:

0 3 * * * /sbin/reboot

Bạn không thể đặt cái này vào crontab của root và đừng quá lo lắng vềecho $PASSWD
Dan

Tôi không biết điều này. Đây có phải là một lỗi của cron hay nó là bình thường? Ý tôi là, nếu bạn chỉnh sửa crontab là root, thì công việc sẽ chỉ được thực hiện nếu bạn đăng nhập bằng root? Tôi nghĩ rằng điều này là sai. (hoặc nên).
NickTux

@ RaduRădeanu Điều đó không đúng. Root cronjobs sẽ chạy mà không cần đăng nhập với quyền root.
OrangeTux

@OrangeTux Bạn có quyền, xin lỗi, tôi đã nói rằng vì tôi đã kiểm tra mà không đưa ra đường dẫn hoàn chỉnh cho rebootlệnh. Nếu không sẽ không hoạt động. Xem các chỉnh sửa mới của tôi.
Radu Rădeanu

@NikTh Tôi đã nhầm, xem nhận xét trên .
Radu Rădeanu

1

Lưu ý rằng việc đặt mật khẩu văn bản rõ ràng của bạn vào một tệp văn bản không phải là một ý tưởng hay, vì vậy tốt nhất là để công việc này chạy như root từ việc di chuyển. Thông thường, thay vì chỉnh sửa crontab của root thông qua crontablệnh, để lại các mục trong /var/spool/cron/crontabs, một vị trí hơi khó hiểu, tôi thích nhập chúng một cách rõ ràng /etc/cron.d. Các mục trong cron.d được chạy dưới dạng các mục crontab của hệ thống, được coi là tệp cấu hình để chúng tồn tại trong quá trình khởi động lại hệ thống, cập nhật và nâng cấp và bạn có thể chỉ định rõ ràng người dùng đang chạy:

echo "0 3 * * * root /sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.d/reboot-at-3-am

Nếu bạn không cần thời gian cụ thể, nhưng thay vào đó, chỉ muốn hệ thống khởi động lại mỗi ngày một lần, hãy thêm tập lệnh thực thi hoặc tập lệnh /etc/cron.dailyvà nó sẽ tự động chạy vào thời gian định trước (theo mặc định của hệ thống 6:25 AM):

echo "/sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.daily/reboot-me

Lưu ý rằng thay vì chỉ khởi động lại hệ thống mà không có cảnh báo, tôi đang đặt cảnh báo trong 5 phút, vì vậy nếu có ai đăng nhập, họ có cơ hội lưu công việc hoặc thậm chí làm gián đoạn tắt máy sudo shutdown -c, thay vì kéo hệ thống tắt từ dưới họ. Bạn có thể điều chỉnh những điều này cho phù hợp, nếu bạn muốn đưa ra cảnh báo rộng rãi hơn (ví dụ: sử dụng shutdown -h 60và chạy lệnh vào lúc 2:00 sáng và bạn sẽ cung cấp cho người dùng cảnh báo 1 giờ hào phóng).

Điều này dựa trên kinh nghiệm trong quá khứ của tôi; tại một số điểm bạn sẽ đăng nhập làm việc khi mục crontab chạy và nếu nó chỉ khởi động lại mà không cảnh báo bạn sẽ là một con gấu trúc rất buồn.


-1

Tại sao bạn muốn - hoặc cần phải làm điều này? Mặc dù khá đơn giản để thực hiện, nhưng gần như chắc chắn có một giải pháp tốt hơn với Linux mà không liên quan đến việc khởi động lại. Không giống như Windows, hệ điều hành dựa trên Linux không yêu cầu khởi động lại hầu hết mọi thứ trừ nâng cấp kernel.

Nếu bạn giải thích những gì bạn đang cố gắng để đạt được, chúng tôi có thể giúp bạn tốt hơn.


3
Anh ta muốn khởi động lại máy tính mỗi đêm để nó khởi động lại
Michael Butler
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.