Saya mencoba menggunakan cron untuk mengotomatiskan pembaruan sistem saya. Anda dapat melihat crontab saya, perintah, dan kesalahan yang dihasilkan di bawah ini.
Ketika saya menjalankan upgrades.sh sebagai root, skrip berjalan dengan baik. Ketika cron menjalankannya, apt-get -y update
tidak ada masalah, tetapi aptitude -y safe-upgrade
gagal. Saya menduga kesalahan ini: debconf: (This frontend requires a controlling tty.)
karena ada pembaruan kernel yang pada gilirannya memperbarui grub, yang mengharuskan saya secara eksplisit mengatakan tidak apa-apa untuk menimpa /boot/grub/menu.lst
. Tapi saya tidak mengerti kesalahan jalur. Dan saya ingin pembaruan yang tidak memerlukan pengawasan saya untuk pergi.
Saya telah membaca pertanyaan ini dan ini belum merupakan solusi yang dapat diterimaunattended-upgrades
, dan akhirnya saya dapat menggunakannya, tetapi mengapa saya tidak dapat menggunakan cron? Sepertinya itu harus sangat sederhana, dan lebih linuxy.
Crontab
root@daedalus:~/bin# crontab -l
# m h dom mon dow command
45 06 * * * ~/bin/upgrades.sh
upgrade.sh
root@daedalus:~/bin# cat upgrades.sh
#!/bin/bash
/usr/bin/apt-get -y update
/usr/bin/aptitude -y safe-upgrade
Kesalahan
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...