Rate this post

В данной статье мы рассмотрим как запустить команду непосредственно после выполнения ‘apt-get upgrade‘ или ‘apt-get dist-upgrade, т.е. не вручную её выполнить, а запустить автоматически по окончани команды apt-getnnКак подключить скрипт к apt-get команде на моем сервере Ubuntu Linux?  Вы можете настраивать команду apt-get с помощью файла конфигурации  /etc/apt/apt.conf или добавить конфигурационый файл в определенную директорию  /etc/apt/apt.conf.d/nnСледующие две опции позволяют запускать скрипт или выполнять команду до или после dpkg/apt-getn

DPkg::Post-Invoke

Выполнить команду после apt-get, cинтаксис следующий:n

n

n

n

n

n

n

n

n

# This is a list of shell commands to run after invoking dpkg/apt-get #nDPkg::Post-Invoke {"command";};nDPkg::Post-Invoke {"/path/to/sbin/command";};nDPkg::Post-Invoke {"/path/to/script";};

n

n

DPkg::Pre-Invoke

Выполнить команду до apt-get, cинтаксис следующий:n

n

n

n

n

n

n

n

n

# This is a list of shell commands to run before invoking dpkg/apt-get #nDPkg::Pre-Invoke {"command";};nDPkg::Pre-Invoke {"/path/to/sbin/command";};nDPkg::Pre-Invoke {"/path/to/script";};

nЭти команды выполняются по очередности, если команда выполнится с ошибкой то apt прерветсяnnПримерыnnВ этом примере автоматически перемонтируется папка /use/ которая была в readonly, что бы могла выполниться команда apt-get. Отредактируем или создадим следующий файл  /etc/apt/apt.conf.d/100updaten

sudo vi /etc/apt/apt.conf.d/100update

Добавить или заменитьn

Pre-Invoke {"/bin/mount -o remount,rw /usr/";};nPost-Invoke {"/bin/mount -o remount,ro /usr/";};

nДругой примерn

 Updaten  {n     Pre-Invoke {"touch /var/lib/apt/pre-update-stamp"; };n     Post-Invoke {"touch /var/lib/apt/post-update-stamp"; };n  };

Запуск пользовательского скрипта в apt-get на Debian или Ubuntu Linux.nnНапример я хочу добавить в команду apt-get выполнение скрипта /root/bin/helpern

n

n

n

n

n

n

n

#!/bin/bashn# Name: /root/bin/helpern# ------nfunction update_php(){n	local u="apache"  # имя нового пользователяn	local r="www-data"   # имя старого пользователяn	local f="/usr/lib/tmpfiles.d/php7.0-fpm.conf" # файл конфигурацииn	local wrcmd="/etc/init.d/lighttpd restart"    # перезапуск службыn	local prcmd="/etc/init.d/php7.0-fpm restart"n	# patch itn	echo "$0: Patching $f..."n	sed -i "s/$r/$u/g" $fn	# restart itn	$prcmdn	$wrcmdn}n# main #nupdate_php

nСоздадим файл  /etc/apt/apt.conf.d/80upgradehook  содержимымn

DPkg::Post-Invoke {"/root/bin/helper";};

Теперь при запуске команды  sudo apt-get upgrade выполнится скриптn

/root/bin/helper

apt-get-hook