起動時に更新スクリプトをインポートできません。

起動時に更新スクリプトをインポートできません。

私はデスクトップ環境なしでDebian 9.7.0で作業しています。私のパッケージを更新するスクリプトを作成し、それを/ etc / crontabに追加して起動時に実行するようにしました。スクリプトは次のとおりです。

#!/bin/bash
apt-get update && apt-get upgrade

手動で実行するとうまくいきますが、起動時にapt-getはDebian 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はDebianサーバーにアクセスできませんか?

編集:また、/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パッケージを使用してこれらすべてを実行できます。

関連情報