系统更新后如何启动应用程序或脚本

系统更新后如何启动应用程序或脚本

我想在每次 Ubuntu 更新之后或期间启动我的脚本。例如:

如果我发出命令 sudo apt-get upgrade,我希望在成功更新后启动我的脚本。如果我通过软件更新程序进行更新,情况也是如此。可以吗?

答案1

如何在系统启动后启动应用程序或脚本升级

留意以下变化/var/log/apt/history.log

sudo inoticoming /var/log/apt/ upgrade_success {} \;

脚本upgrade_success

#!/bin/bash


if [ $1 == "history.log" ]
then

    echo "Changes in \"/var/log/apt/history.log\""

    if [ ! -f "/tmp/upgrade_success_last_run" ] || [ $(stat -c %Y "/tmp/upgrade_success_last_run") -lt $(date "+%s") ]
    then
        # look for changes since the last run
        # of this script ("upgrade_success")
        # in "/var/log/apt/history.log"
        # and make what you want.
    fi

    touch /tmp/upgrade_success_last_run

fi

如何在系统启动后启动应用程序或脚本更新

你写下以下内容:

...
我想在每次 Ubuntu 更新之后或期间启动我的脚本
。...


创建此文件:

/etc/apt/apt.conf.d/16my-script

并添加以下行:

APT::Update::Post-Invoke-Success {"<path_to_your_script> 2>/dev/null || true";};

不幸的是,没有办法对升级执行相同操作,例如:

APT::Upgrade::Post-Invoke-Success {"<path_to_your_script> 2>/dev/null || true";};

或者


在文件中/etc/apt/apt.conf.d/15update-stamp

你可以找到这一行:

APT::Update::Post-Invoke-Success {"touch /var/lib/apt/periodic/update-success-stamp 2>/dev/null || true";};

因此,您可以观察文件的变化/var/lib/apt/periodic/update-success-stamp。在任何更新命令,甚至通过软件更新程序,该文件的修改日期是最后一次成功更新

/var/lib/apt/periodic/使用以下命令查看文件夹inoticoming

sudo inoticoming /var/lib/apt/periodic/ upgrade {} \;

脚本upgrade

#!/bin/bash

if [ $1 == "update-success-stamp" ]
then
    sudo apt-get upgrade
fi

还有这里:不幸的是,没有办法对升级执行相同操作,例如:

APT::Upgrade::Post-Invoke-Success {"touch /var/lib/apt/periodic/upgrade-success-stamp 2>/dev/null || true";};

并观察文件的变化/var/lib/apt/periodic/upgrade-success-stamp

答案2

upgrade您可以通过向添加 say别名~/.bashrc,然后运行别名来执行升级来实现此目的:

  1. 将您的脚本标记为可执行:chmod +x <path_to_script>

*<path_to_script> = 您要运行的脚本的路径

  1. 添加upgrade别名至~/.bashrc<<< "alias upgrade='sudo apt-get upgrade && <path_to_script>'" tee -a ~/.bashrc

*<path_to_script> = 您要运行的脚本的路径

  1. 更新~/.bashrc. ~/.bashrc

这样,每次运行upgrade两者时sudo apt-get upgrade,您的脚本都会被执行,只有在成功后才会执行脚本sudo apt-get upgrade

相关内容