apt-get のアップグレードは、crontab ジョブを通じてインストールおよびアップグレードされません。

apt-get のアップグレードは、crontab ジョブを通じてインストールおよびアップグレードされません。

crontabを使用して自動更新する方法を確認したら、rootとして編集して次の行を追加しました。

00 11 * * * /usr/bin/apt-get upgrade -q -y >> /var/log/apt-upgrade.log

数分後に apt-get Upgrade を手動で実行すると、アップグレードがインストールされていないと表示されます。ログにはエラーや警告はまったく報告されません。これは普通のリストです。

Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be upgraded:
  binutils fontconfig fontconfig-config gnupg gpgv libcurl3
  libcurl4-openssl-dev libfontconfig1 libgcrypt11 libgcrypt11-dev libgd2-xpm
  libidn11 libidn11-dev libperl5.14 libpq5 libsqlite3-0 libssl-dev libssl-doc
  libssl1.0.0 libtiff4 linux-image-3.2.0-4-amd64 linux-libc-dev openjdk-7-jre
  openjdk-7-jre-headless openssh-client openssh-server openssl perl perl-base
  perl-modules ssh
31 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/93.7 MB of archives.
After this operation, 613 kB of additional disk space will be used.

また、他の作業も試みたが(もちろん同時にではない)結果はなかった。

00 11 * * * apt-get upgrade -q -y >> /var/log/apt-upgrade.log
00 11 * * * root /usr/bin/apt-get upgrade -q -y >> /var/log/apt-upgrade.log
00 11 * * * apt-get upgrade -y >> /var/log/apt-upgrade.log

何も起こらず、実際にアップグレードはインストールされません。私は何が間違っていましたか?

答え1

設定をしなければなりませんが、実際にはオプションなのでDEBIAN_FRONTEND=noninteractive探しがちょっと難しかった記憶が出ますね。しかし、例えば、次のように言及されます。debconfapt-getここ、もちろんマニュアルにdebconf

したがって、以下を含むスクリプトを作成します。

#/bin/sh
DEBIAN_FRONTEND=noninteractive apt-get upgrade -q -y 

cronで実行してください。そして走ることも忘れないでくださいapt-get update

もちろん、おそらくあなたは使用する必要がありますunattended-upgradesまたはそれのために特別に設計されたもの。

しかし、このスクリプトを使用するDebianコンピュータがあります。

#/bin/sh
apt-get -q -q  update 
if apt-get -s upgrade | grep -q "0 upgraded" ; then
        true
else
        DEBIAN_FRONTEND=noninteractive apt-get -y -q upgrade
fi

1つ目apt-get -sは、アップグレードするアイテムがない場合に備えて、出力と役に立たない電子メールを抑制することです。

似たような質問アクベンツから。

関連情報