cron을 사용하여 시스템 업데이트를 자동화하려고합니다. 내 crontab, 명령 및 결과 오류가 아래에 표시됩니다.
upgrades.sh를 루트로 실행하면 스크립트가 제대로 실행됩니다. cron이 실행하면 apt-get -y update
아무런 문제가 없지만 aptitude -y safe-upgrade
실패합니다. 나는이 오류를 추측하고 있습니다 : debconf: (This frontend requires a controlling tty.)
커널 업데이트가 있기 때문에 grub을 업데이트합니다 /boot/grub/menu.lst
. 이렇게 하면 덮어 쓸 수 있다고 명시 적으로 말해야합니다 . 그러나 경로 오류를 이해하지 못합니다. 그리고 감독이 필요없는 업데이트를 원합니다.
나는 이 질문unattended-upgrades
을 읽었 으며 아직 받아 들여지지 않은 해결책이며 , 그것을 사용하게 될 수도 있지만 왜 cron을 사용할 수 없습니까? 정말 간단하고 리눅스처럼 보입니다.
크론 탭
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
오류
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...