저는 데스크톱 환경 없이 Debian 9.7.0에서 작업하고 있습니다. 내 패키지를 업데이트하는 스크립트를 만들고 이를 /etc/crontab에 추가하여 시작 시 실행되도록 했습니다. 스크립트는 다음과 같습니다.
#!/bin/bash
apt-get update && apt-get upgrade
수동으로 실행하면 잘 작동하지만 시작 시 apt-get은 데비안 URL을 얻지 못합니다. 로그는 다음과 같습니다.
Err:1 http:///ftp.be.debian.org/debian stretch InRelease
Temporary failure resolving 'ftp.be.debian.org'
Err:2 http://ftp.be.debian.org/debian stretch-updates InRelease
Temporary failure resolving 'ftp.be.debian.org'
Err:3 http://security.debian.org/debian-security stretch/updates InRelease
Temporary failure resolving 'security.debian.org'
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
제 기억이 맞다면 apt-get은 데비안 서버에 접근할 수 없나요?
편집: 또한 /etc/apt/sources.list에서 서버를 변경하려고 시도했지만 여전히 동일한 오류가 발생합니다.
어떻게 이런 일이 발생하고 어떻게 처리하는지 아는 사람이 있나요?
답변을 찾을 수 없으므로 재게시가 아니길 바랍니다. 좋은 하루 되세요.
답변1
이 스크립트는 네트워크가 시작되기 전에 실행되는 것 같습니다.
시작 시 실행되는 서비스를 사용하는 것이 좋습니다 systemd
. 그러면 네트워크가 시작된 후에 실행되도록 요청할 수 있습니다.
예를 들어:
# /etc/systemd/system/update.service
[Unit]
Description=Apt Update & Upgrade
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
KillMode=process
ExecStart=/usr/local/bin/update-script
[Install]
WantedBy=multi-user.target
그런 다음 다음을 실행하십시오.
systemctl daemon-reload
systemctl enable update.service
아니면 이 unattended-upgrades
패키지를 사용하여 이 모든 작업을 수행할 수도 있습니다.