Nhận xét chung: Thay vì sử dụng sudo
bên trong người dùng
crontab, hãy xem xét đặt các lệnh này trong nguồn gốc
crontab, để chúng có thể chạy mà không cần sudo.
Đối với 3 dòng crontab của bạn:
@midnight Sudo apt-get update && sleep 60 && apt-get upgrade -y
Nó hoàn toàn khả thi để làm cập nhật apt-get
và nâng cấp apt-get -y
theo cách này. (Không dành cho máy chủ sản xuất và với điều kiện bạn hiểu tác động của việc nâng cấp không giám sát.)
00 02 * * 1,3,5 sudo tắt máy -r
Tôi không nghĩ cần phải khởi động lại 3 lần một tuần. Bản thân tôi sử dụng tập lệnh khởi động lại rất đơn giản này: (được gọi là tự động khởi động lại.sh
)
#!/bin/bash
[[ -f /var/run/reboot-required.pkgs ]] && khởi động lại
Vì vậy, tôi chạy tập lệnh này với cron hàng tuần, sau tập lệnh nâng cấp và dọn dẹp của tôi. Nó chỉ khởi động lại nếu máy cần được khởi động lại (nếu /var/run/reboot-required.pkgs
hiện hữu). (Một lần nữa, điều này không dành cho máy chủ sản xuất.)
@reboot sleep 60 && sudo netplan apply && sleep 15 && sudo omd start website
Tôi không hiểu tại sao bạn cần phải chạy áp dụng kế hoạch mạng
khi khởi động lại.
Ngoài ra, một cách đáng tin cậy hơn để bắt đầu một dịch vụ phụ thuộc vào một dịch vụ hoặc điều kiện khác (ví dụ: mạng) là tạo một systemd .dịch vụ
để làm công việc đó. Có một số hướng dẫn cho việc này (1, 2), mà tôi khuyên bạn nên xem qua.