Debian或Ubuntu Linux 怎样在执行apt-get命令后如何运行脚本
时间:2019-11-20 08:53:10 来源:igfitidea点击:
如何在运行" apt-get upgrade"或" apt-get dist-upgrade"后,执行一个命令或者脚本?
可以在/etc/apt/apt.conf文件中配置apt-get命令
或者将配置文件放在/etc/apt/apt.conf.d/目录中。
下面将演示如何在调用dpkg/apt-get工具之前或者之后运行shell脚本。
在dpkg调用之后运行脚本
语法为:
# This is a list of shell commands to run after invoking dpkg/apt-get # DPkg::Post-Invoke {"command";}; DPkg::Post-Invoke {"/path/to/sbin/command";}; DPkg::Post-Invoke {"/path/to/script";};
在调用dpkg之前运行脚本
语法为:
# This is a list of shell commands to run before invoking dpkg/apt-get # DPkg::Pre-Invoke {"command";}; DPkg::Pre-Invoke {"/path/to/sbin/command";}; DPkg::Pre-Invoke {"/path/to/script";};
示例
下面的例子中,我们将在apt-get调用之后,重新挂载/usr/文件系统。
首先,创建一个文件:
$ sudo vi /etc/apt/apt.conf.d/100update
添加如下内容:
Pre-Invoke {"/bin/mount -o remount,rw /usr/";}; ## Post-Invoke {"/bin/mount -o remount,ro /usr/";};
或者内容使用下面的格式
Update { Pre-Invoke {"touch /var/lib/apt/pre-update-stamp"; }; Post-Invoke {"touch /var/lib/apt/post-update-stamp"; }; };
示例 在Debian Ubuntu执行apt-get命令时运行自定义脚本
在运行apt-get命令时,执行/root/bin/php7helper修补配置文件:
#!/bin/bash # Name: /root/bin/php7helper function update_php7(){ local u="theitroad" # new user name local r="www-data" # old user name local f="/usr/lib/tmpfiles.d/php7.0-fpm.conf" # config file local wrcmd="/etc/init.d/lighttpd restart" # restart services local prcmd="/etc/init.d/php7.0-fpm restart" # patch it echo "$ vi /etc/apt/apt.conf.d/80upgradehook: Patching $f..." sed -i "s/$r/$u/g" $f # restart it $prcmd $wrcmd } # main # update_php7
创建一个新文件:
DPkg::Post-Invoke {"/root/bin/php7helper";};
内容如下:
$ sudo apt-get upgrade
只要运行apt-get upgrade命令,就会执行脚本/root/bin/php7helper:
##代码##