Tôi đang cố gắng sử dụng cron để tự động cập nhật hệ thống của mình. Bạn có thể thấy crontab của tôi, các lệnh và kết quả là lỗi bên dưới.
Khi tôi chạy nâng cấp.sh với quyền root, tập lệnh chạy tốt. Khi cron chạy nó, apt-get -y update
chạy không có vấn đề, nhưng aptitude -y safe-upgrade
không thành công. Tôi đoán lỗi này: debconf: (This frontend requires a controlling tty.)
là bởi vì có một bản cập nhật kernel, lần lượt cập nhật grub, điều này đòi hỏi tôi phải nói rõ ràng là không cần ghi đè /boot/grub/menu.lst
. Nhưng tôi không hiểu các lỗi đường dẫn. Và tôi muốn các bản cập nhật không yêu cầu sự giám sát của tôi.
Tôi đã đọc qua câu hỏi này và đó là giải pháp chưa được chấp nhậnunattended-upgrades
và cuối cùng tôi có thể sử dụng nó, nhưng tại sao tôi không thể sử dụng cron? Có vẻ như nó phải thực sự đơn giản và nhiều linuxy.
Crontab
root@daedalus:~/bin# crontab -l
# m h dom mon dow command
45 06 * * * ~/bin/upgrades.sh
nâng cấp.sh
root@daedalus:~/bin# cat upgrades.sh
#!/bin/bash
/usr/bin/apt-get -y update
/usr/bin/aptitude -y safe-upgrade
Lỗi
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:
Fetched 37.6MB in 4min 23s (143kB/s)
dpkg: warning: 'ldconfig' not found on PATH.
dpkg: warning: 'start-stop-daemon' not found on PATH.
dpkg: warning: 'update-rc.d' not found on PATH.
dpkg: 3 expected program(s) not found on PATH.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)
A package failed to install. Trying to recover:
dpkg: warning: 'ldconfig' not found on PATH.
dpkg: warning: 'start-stop-daemon' not found on PATH.
dpkg: warning: 'update-rc.d' not found on PATH.
dpkg: 3 expected program(s) not found on PATH.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
Writing extended state information...