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

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

Метод 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 не будет опубликован. Обязательные поля помечены *