在 ubuntu apt 升级和无人值守升级之前和之后运行命令

在 ubuntu apt 升级和无人值守升级之前和之后运行命令

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

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

有没有办法在无人值守升级/apt 启动升级时运行命令(以停止监视器),并在无人值守升级/apt 完成时再次运行命令(以重新启动监视器)?

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

答案1

您可以使用三个钩子来实现此目的:

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

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

相关内容