Автоматизация процесса обновления системы

Как часто мы обновляем порты? Раз в день, неделю? Я их обновляю как минимум раз в неделю. И уже давно стал замечать, что на это уходит достаточно много времени. Пока войдешь в систему, пока обновишь порты, пока обновишь софт… Очень долго. Тут я опишу два метода, которые позволят ускорить процесс.

Метод 1. Метод упрощения.

Данный метод позволяет обновлять порты, находясь в папке /usr/ports, командой

# make update

Для этого надо отредактировать файл /etc/make.conf:

...
SUP_UPDATE=
SUP=/usr/bin/scup
SUPFLAGS=-g -L 2
SUPHOST=cvsup2.ru.FreeBSD.org
SUPFILE=/usr/share/examples/cvsup/standard-supfile
PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=/usr/share/examples/cvsup/doc-supfile
...

Метод 2. Метод частичной автоматизации.

Для этого метода надо создать скрипты и добавить их выполнение в крон. В принципе, все тут должно быть понятно. Приведу пример скрипта, который обновляет порты и выводит список софта, который надо обновить, в файл.

Создаем файл /var/scripts/portsupdate.sh:

#!/bin/sh
rm /var/logs/portsupdate.log
cd /usr/ports
make update >> /var/log/portsupdate.log
make fetchindex
pkg_version -v -l '<' >> /home/av3nger/needs_updating

Тут мы сначала удаляем старые логи, потом обновляем порты, потом записываем названия программ, которые надо обновить в файл needs_updating, который находится в моей домашней папке.

Далее, надо сделать:

# chmod 755 /var/scripts/portsupdate.sh

И добавить скрипт в cron:

5 0 * * * /var/scripts/portsupdate.sh

Это означает, что скрипт будет исполняться каждый день в 00:05. Для меня это удобно, т.к. каждое утро перед работой я могу быстро проверить, что надо обновить на домашнем серваке.

Забыл сказать, что для второго метода необходимо добавить строчки в make.conf из первого метода. Или модифицировать скрипт таким образом, чтобы он обновлял порты через файл ports-supfile.

Если пойти еще дальше, то таким же образом можно настроить обновление мира раз в месяц, например. Я, правда, так делать не стал. Но раз в месяц я, все же, скачиваю обновленную версию исходников.

2 комментария

  1. всё конечно отлчино, НО! перед любым обновлением надо читать ports/UPDATING — ибо автоматическое обновление всего сразу может привести к катастрофическим последствиям. Сам испытал это на себе ;)

    + обновление — занятие не особо долгое — обновлять надо только критически важные в плане безопасности пакеты (апач к примеру) и пакеты, в новых версиях которых появляется новый необходимый функционал, остальное можно не трогать или обновлять раз в год/полгода.

  2. согласен. по этому, дома у меня лишь проверяются обновления. а потом я уже смотрю что надо мне обновить.

    т.е. я писал скрипт для того, чтобы потом, например, можно было бы слать себе на почту список пакетов, требующих обновления.

Добавить комментарий для Антон Ванюков Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *