Актуален и свеж? Всегда!!! (автоматическое обновление пакетов)

Хорошо пользователям современных linux-десктопов — не успел загрузиться, как сразу же тебе сообщают, что вышли новые обновления. А серверу как быть? Неужели придется регулярно запускать рабочий стол только для того, чтобы узнать — «А были ли какие-то обновления для установленных у меня пакетов?» Не прийдется! Нужно-то ведь всего лишь как обычно «выполнять задание по расписанию«…

Данный совет — не мой. Я его прочел на странице http://www.howtoforge.com/perfect_server_mandriva_2008.0. И воплотил у себя. А теперь вот опишу его тут.

Суть подсказки проста. Нужно в папке /etc/cron.daily создать файл software_update (назвать его Вы можете и по другому) следующего содержания:

#!/bin/bash
urpmi.update updates
urpmi --auto --update --auto-select &> /var/log/auto_update.log

Кроме того, файл этот нужно сделать исполняемым (командой «chmod 700 software_update«). И, естественно, все приведенные выше манипуляции нужно выполнять от имени администратора (root).

Что в конечном итоге это нам дает?  Итак:

  • Размещение вновь созданного файла скрипта в папке /etc/cron.daily автоматически приводит к тому, что планировщик задач cron будет безоговорочно выполнять данный скрипт один раз в сутки (а чаще, думаю, нам и не нужно).
  • Сам скрипт, первым делом командой urpmi.update обновляет источники пакетов, относящиеся к updates (обновлениям).
  • После этого командой urpmi —auto —update —auto-select выполняется непосредственно загрузка и установка новых версий пакетов, если таковые были.
  • Ну а вторая «половина» второй команды скрипта (то есть —  «&> /var/log/auto_update.log«) перенаправляет вывод сообщений в файл протокола /var/log/auto_update.log (чтобы мы впоследствии смогли проконтролировать результат).

Ниже приведен пример файла /var/log/auto_update.log для случая, когда были обновления пакетов:

ftp://fr2.rpmfind.net/linux/Mandrakelinux/official/2008.0/i586/media/main/updates/cups-common-1.3.6-1.4mdv2008.0.i586.rpm 0% of 703k completed, ETA = 1:37:25, speed = 123 0% of 703k completed, ETA = 0:48:49, speed = 127k ....... ....... 99% of 703k completed, ETA = 0:00:01, speed = 7901 100% of 703k completed, ETA = --:--:--, speed = 5111 ftp://fr2.rpmfind.net/linux/Mandrakelinux/official/2008.0/i586/media/main/updates/cups-1.3.6-1.4mdv2008.0.i586.rpm 0% of 2870k completed, ETA = 1:41:48, speed = 481 0% of 2870k completed, ETA = 0:22:55, speed = 4962 ....... ....... 99% of 2870k completed, ETA = 0:00:01, speed = 10784 100% of 2870k completed, ETA = --:--:--, speed = 10177 ftp://fr2.rpmfind.net/linux/Mandrakelinux/official/2008.0/i586/media/main/updates/libcups2-1.3.6-1.4mdv2008.0.i586.rpm 0% of 171k completed, ETA = 0:06:32, speed = 444 ....... ....... 100% of 171k completed, ETA = --:--:--, speed = 29629 100% of 171k completed, ETA = --:--:--, speed = 25153 installing cups-common-1.3.6-1.4mdv2008.0.i586.rpm cups-1.3.6-1.4mdv2008.0.i586.rpm libcups2-1.3.6-1.4mdv2008.0.i586.rpm from /var/cache/urpmi/rpms Preparing... ############################################# 1/3: libcups2 ############################################# 2/3: cups-common ############################################# 3/3: cups #############################################

(Единственное, в приведенном выше примере я сократил число строк, сообщающих о ходе загрузки файлов (в процентаз), заменивши их многоточиями).

В случае же, если обновлений не было, наш лог выглядит вообще весьма лаконично:


Packages are up to date

DrWeb для linux с честным ключом от самого DrWeb-а ;-)

По большому счету, где взять DrWeb для linux ни для кого не секрет — естественно, на сайте сомого DrWeb . А вот где взять честный ключ? Ответ прост — ТАМ ЖЕ!!! Никаких «хитрых ходов» делать не нужно. Нужно всего лишь на сайте DrWeb найти и скачать образ DrWeb Live CD. Вот там и живет нормальный абсолютно честный и полнофункциональный (для всех версий) ключ — в папке /opt/drweb. Копируем его в аналогичную папку на своем компьютере и пользуемся:

Игтерфейс drweb для linux

И закладка с данными о ключе:

внизу справа данные о ключе drweb

Вот, собственно, и все….

Bitflu — демон для torrent-закачек

Начал я недавно всякие там torrent-ы качать. И коль уж стоит на холодильнике сервер, то логичнее всего было нагрузить этой работой именно его.

Первое решение было исполнено тупо в лоб. Запускал я NX-сессию, а в ней — установленного под Wine клиента — программу µTorrent. Накидывал в µTorrent закачек, а потом отключался от NX-сессии, не завершая ее. Все работало нормально, но только вот грузил весь этот «слоеный пирог» процессор сервера на всю катушку:

График загрузки процессора

Кто-то скажет — «Ну и что? Ну подумаешь, загружен процессор по самое не могу, но не в Квэйк же на нем параллельно играть». В игры я действительно на своем сервере не играю, да и сложно это сделать без монитора, клавиатуры и мыши. Однако, он выполняет много других задач. Но самое отвратительное было в том, что от такой загрузки процессор разогревался (градусов до 70) и материнка, чтоб охладить его, разгоняла вентилятор до пары с лишним тысяч оборотов. И шум этого пропеллера ну очень уж мешал!

Выход был в том, чтобы найти программу в «традиционном» для Linux стиле — запускающуюся в режиме демона и управляющуюся либо с консоли, либо через вэб-интерфейс. После непродолжительных поисков я для себя выбрал программу bitflu.  В программе присутствует именно все то, что я от нее хотел:

  • запуск в режиме демона с консоли (после этого можно сессию консоли закрыть, а программа остается в работе);
  • управление программой возможно как из консоли (в telnet-сессии), так и через вэб-интерфейс.

Кроме того,  лично мне очень понравилась еще одна фишка — программа создает специальную папку autoload и периодически ее просматривает. Если в папке при проверке находится torrent-файл, программа автоматически начинает его закачку. Это позволяет стартовать закачки, находясь «вдали» от сервера (например, подключившись ftp-клиентом к серверу и накидавши в данную папку ссылок).

Из недостатков следует отметить следующее:

  • программа не может самостоятельно создавать torrent-ы для раздачи (она может лишь раздавать уже созданные);
  • у программы нет ограничения максимальной скорости закачки (есть лишь ограничение скорости раздачи).

На данном этапе лично для меня оба эти недостатка не критичны…

Установка программы проста до безобразия — скачанный архив нужно распаковать в папку. Требование лишь одно — пользователю, от имени которого будет запускаться программа, должна быть разрешена запись в данную папку. Изначально, в папке с только что распакованной программой отсутствует файл конфигурации (.bitflu.config). Но он автоматически создается при первом запуске программы. После этого, его можно отредактировать, изменив параметры в соответствии с собственными потребностями. Описание параметров можно почитать на этой странице. Все, что отредактировал лично я — это номер порта, открытого для torrent-а.

В режим демона программа запускается командой:

./bitflu.pl —daemon

Чтобы управлять программой в консоли, нужно  ввести комманду:

telnet 127.0.0.1 4001

Вот так выглядит интерфейс управления программой в консоли (telnet-сессии):

Управление bitflu с помощью telnet (в консоли)

Чтобы подключиться к веб-интерфейсу программы, нужно запустить браузер (любой) и ввести следующий адрес:

http://127.0.0.1:4081/

А вот так выглядит веб-интерфейс программы:

Html-интерфейс

Как видно по адресу (127.0.0.1), что консольное управление программой, что веб-интерфейс запускаются только локально (для удаленного управления нужно войти в компьютер по ssh или nx сессии)…

Итого — свою проблему я решил. Процессор загружен на пару-тройку процентов, температура его не выше 50 градусов, и вентилятор крутится со скоростью  менее полутора тысяч оборотов. И тихо, и торренты качаются!…

Как стать root-ом в Ubuntu Live CD

Я периодически использую Ubuntu именно в режиме загрузки с компакт-диска (т.н. Live CD). Причем, в последнее время, благодаря публикациям данного сайта, загрузку выполняю уже не с диска, а с флешки…

И все хорошо, но вот только загрузившись в режиме Live CD, мне иногда так не хватает возможности стать root-ом. Обычно, советуют выполнять:

sudo ‘команда

… мол, у пользователя ubuntu, да с паролем ubuntu, есть все административные права… Хорошо, наверное, но все-таки хочется root-а. А пароль как пишет сама Ubuntu в своей документации, «засекречен из соображений безопасности»… Выход есть, и довольно простой — в консоли выполняем команду

sudo passwd root

На приглашение вводим пароль (сами придумываете какой), затем вводим его повторно, и все — у Вас есть свой собственный пароль root-а! После этого, вводим в консоли

su

… и на запрос вводим  свой новый пароль.

Как открыть порт в файерволе Mandriva Linux

Просматривая лог ссылок, приведших людей на мой сайт, я увидел ссылку от Google, отвечавшего на вопрос «как открыть порт 8080 в Mandriva?«.

Для этого нужно мышью щелкнуть «Меню», а далее «Утилиты» -> «Системные» -> «Настройка компьютера«. Или же просто в консоли ввести команду ‘mcc‘. В ответ на запрос вводим пароль администратора (root) и после этого запустится т.н. «Центр управления Mandriva Linux«. В нем выбираем слева закладку «Безопасность«, а в открывшемся окне — пункт «Настройка файервола» (см. рис. ниже).

Вход в настройку файервола
Вход в настройку файервола

Открывается окно, показанное ниже:

Выбор портов, которые нужно открыть
Выбор портов, которые нужно открыть

В этом окне можно просто проставить галочки для «стандартных» портов, или же (для нестандартных значений) щелкнуть стрелку рядом со словом «Дополнительно» и в открывшейся строке ввести требуемые номера портов. И все…

Вот такой простой способ для тех, кто привык к GUI, мыши и т. п. Метод абсолютно одинаков для дистрибутивов Mandriva 2007.1, 2008.0, 2008,1 и 2009.0. Разве что картинки иконок отличаются немного…

А теперь — любителям консоли, «прямых рук» и пр. В Mandriva управление файерволом осуществляется программой shorewall. Все ее настройки хранятся в папке /etc/shorewall. Настройки, вносимые Mandriva описываемым выше графическим методом, хранятся в файле /etc/shorewall/rules.drakx и директивой include файла /etc/shorewall/rules включаются в общий алгоритм работы файервола. Содержимое файла /etc/shorewall/rules.drakx выглядит например  вот так:

ACCEPT net fw udp 137,138,139 - ACCEPT net fw tcp 80,443,22,20,21 -

Понять систему записей и вручную добавить необходимое, думаю, труда не составит. Естественно, «рулим» файл, залогинившись с правами администратора, иначе не получится. После внесения изменений shorewall необходимо перезапустить.

Ну, а если же охота рулить непосредственно сам shorewall, то тогда можно просто добавлять свои строки в файл /etc/shorewall/rules. Необходимость такого редактирования может быть вызвана, например, желанием администратора скрыть от пользователей настройки правил файервола, либо простым отсутствием графического рабочего стола. С shorewall поставляется большой набор уже готовых макросов правил, хранящихся в папке /usr/share/shorewall/ с именами вида macro.*, например, macro.BitTorrent или macro.HTTP. Чтобы задействовать готовый макрос, в файл правил /etc/shorewall/rules нужно вписать его название (но, только ту часть имени, что после точки), потом через дробь — действие (ACCEPT, DNAT, DROP или REJECT), а затем зону-источник и зону приемник. Например, приведенная ниже строка использует макрос macro.FTP и открывает порт FTP (позволяет принимать из интернета (зона net) FTP-траффик):

FTP/ACCEPT net fw 

Посмотреть зоны файервола можно в файле /etc/shorewall/zones. И также, не забываем:

  • «Рулим» файл, залогинившись с правами администратора, иначе не получится.
  • После внесения изменений shorewall необходимо перезапустить.