在 ubuntu apt upgrade & unattended-upgrades 之前和之后运行命令

sim*_*ser 3 ubuntu apt

在 Ubuntu 16.04.3 LTS 服务器上,我运行一些进程监视器,但我也手动运行 apt 以及用于安全更新的无人值守升级。

这有时会导致监视器报告并处理在 apt 升级期间被 apt 停止的程序。

有没有办法在 unattended-upgrades/apt 开始升级(停止监视器)和 unattended-upgrades/apt 完成(重新启动监视器)时运行命令?

我发现APT::Update::Pre-InvokeAPT::Update::Post-Invoke挂钩,但 apt更新步骤不是问题,而且 apt 本身似乎没有任何升级前/升级后挂钩。

Ste*_*itt 5

您可以使用三个钩子:

  • DPkg::Pre-Invoke在一次apt调用中的所有包操作序列之前运行一次;
  • DPkg::Pre-Install-Pkgs也运行一次,在包操作序列之前,在Pre-Invoke钩子之后,以及将安装的所有包的列表;
  • DPkg::Post-Invoke 在包操作序列之后运行一次。

文档不是很清楚(man apt.conf尽管阅读),但阅读源代码支持上述内容。指定钩子也证实了这一点(例如,这就是apt-listbugs工作原理)。