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 crontab
lệ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.daily
và 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 60
và 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.
echo $PASSWD