Ich versuche, meine Systemaktualisierungen mit cron zu automatisieren. Sie können meine crontab, Befehle und daraus resultierende Fehler unten sehen.
Wenn ich upgrades.sh als root ausführe, läuft das Skript einwandfrei. Wenn cron es ausführt, läuft es apt-get -y update
kein Problem, aber es aptitude -y safe-upgrade
schlägt fehl. Ich vermute diesen Fehler: debconf: (This frontend requires a controlling tty.)
liegt daran, dass es ein Kernel-Update gibt, das wiederum grub aktualisiert, was erfordert, dass ich ausdrücklich sage, dass es in Ordnung ist, es zu überschreiben /boot/grub/menu.lst
. Aber ich verstehe die Pfadfehler nicht. Und ich möchte die Updates, für die meine Aufsicht nicht erforderlich ist.
Ich habe diese Frage durchgelesen und es ist eine noch nicht akzeptierte Lösung vonunattended-upgrades
und ich werde sie möglicherweise verwenden, aber warum kann ich cron nicht verwenden? Scheint, als sollte es wirklich einfach und mehr Linux sein.
Crontab
root@daedalus:~/bin# crontab -l
# m h dom mon dow command
45 06 * * * ~/bin/upgrades.sh
upgrades.sh
root@daedalus:~/bin# cat upgrades.sh
#!/bin/bash
/usr/bin/apt-get -y update
/usr/bin/aptitude -y safe-upgrade
Fehler
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...