FreeBSD
Падение ProFTPD и Alarm Clock
Давненько ничего не писал. Всех поздравляю с наступившими праздниками.
Заметил сегодня, что у меня на одном сервере не работает ftp сервер proftpd. Посмотрел логи, в них пусто. Запустил, но он проработал буквально 10 секунд и упал. Стал дебажить:
#/usr/local/sbin/proftpd -d 10 -4 -n
Выдал примерно следующее:
server proftpd[77756] server: RELINQUISH PRIVS at pidfile.c:49 Alarm clock
И все. Житие демона прекратилось. Гуглив не дин час решение было найдено, естественно колхозное.
Добавляем в Makefile строку:
LDFLAGS+= -pthread
Переустанавливаем порт и все работает.
Бэкап MySQL+FS+CRON+FTP. Обновление.
Когда-то была запилена статья про резервное копирование бд, некоторых папок на фтп. Помогал этому добру планировщик.
Предыдущая статейка актуальная. В новой публикации я немного извратился с уровнем компрессии. Писать много не буду, не зачем. Выкладываю код скриптов на обозрение. Если будет желание, поделитесь своими наработками.
Итак:
Rsync. Бэкап FreeBSD
Бэкапы, бэкапы, бэкапы. Дошли руки сделать резервную копию сервера. После гугления интернетов были найдены заметки камрадов по этому добру. После курения мануалов и статей, озарение пришло не сразу. Судя по многим статьям не всегда понятно какие настройки необходимо сделать конкретно на сервере, где будет храниться резервная копия и клиенте, откуда документы будут бэкапиться.
В принципе статей как я уже сказал достаточно в интернетах, эту заметку сделаю на будущее для себя, т.к. не охота опять шерстить сеть в поисках вменяемого руководства.
Ставим на обе машины софт:
# portmaster net/rsync
После установки на обе машины добавляем строку автозапуска в /etc/rc.conf:
rsyncd_enable="YES"
И, если есть фаервол, например PF, добавим правило в /etc/pf.conf:
pass in on $ext_if proto tcp from any to $ext_if port 873 flags S/SA synproxy state
Перезапустим:
Анонимный интернет с помощью i2p
Цитата:
I2P — это двойник сети Tor, но его авторы часто применяют "противоположные" методы для решения тех же инженерных задач. Например, вместо транспортного протокола TCP используется UDP, вместо роутинга в интернет — внутренняя закрытая сеть (хотя возможно и то и это), вместо "луковичной" маршрутизации — "чесночная", а цепочки называются туннелями. Есть аналоги скрытых сервисов Tor. Туннели разделены на два пути, проходящие через разные наборы узлов (по замыслу авторов это усиливает анонимность, но однозначного мнения исследователей на этот счёт нет — возможны аргументы в пользу обоих мнений). Каждый узел I2P является в принудительном порядке и клиентом и сервером. Ради лучшей анонимности пользователи могут выбирать более длинные цепочки и более высокие задержки трафика, но доказательства того, что это не упрощает профилирование трафика пользователей, не предоставлено. Сеть I2P также нестойка к глобальному наблюдателю. Интересно, что сами разработчики I2P предпочитают оставаться анонимными, что имеет, по крайней мере, такой недостаток: хотя исходный код проекта и открыт, сам проект (его теоретическая проработка) получит заведомо меньше внимания со стороны научного сообщества.
Решил и я попробовать поюзать сию сеть. Что есть на моем сервере:
# uname -srm FreeBSD 9.2-RELEASE-p2 amd64
Порты обновляю следующем образом:
# svn up /usr/ports && cd /usr/ports && make fetchindex && pkg version -v | grep "need"
Инфа svn по портам:
# svn info /usr/ports Path: /usr/ports Working Copy Root Path: /usr/ports URL: https://svn0.eu.freebsd.org/ports/head Relative URL: ^/head Repository Root: https://svn0.eu.freebsd.org/ports Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5 Revision: 335384 Node Kind: directory Schedule: normal Last Changed Author: olivierd Last Changed Rev: 335384 Last Changed Date: 2013-12-01 21:10:59 +0700 (Sun, 01 Dec 2013)
Зависимости установки i2p:
FreeBSD и Plex медиа сервер
Есть несколько DLNA программ для линупсов и фряхи. Я пользовался minidlna и mediatomb. Minidlna простецкий по настройкам, но убогий по функционалу. MediaTomb же обладает веб мордой и настройками по кодированию на лету, жрет практически все форматы, но в тоже время геморроен по настройке.
У меня не было цели получить красноглазие в процессе настройки dlna. Нужен был простой и в тоже время функционально-удобный софт для организации медиа сервера.
На роль сего был выбран Plex после поиска в интернетах. Вот, что говорит хабр:
Этот монстр вырос из XBMC и умеет все и даже больше. К фильмам найдет постеры, рейтинги и кучу данных. Сериалы к тому-же ещё и распределит по сезонам и эпизодам. Музыкальную коллекцию упорядочит из любого исходного вида.
Транскодирование делает из всего под всё. Параметрами можно управлять прямо из экранного меню телевизора. Для умных устройств вроде телевизоров LG Smart TV и Apple TV поддержка выходит далеко за пределы протокола DLNA.
Есть поддержка собственного облачного сервиса, что позволяет смотреть домашнее видео удаленно — сервер подстроит параметры отправляемого видео под возможности устройства и канала связи.
Есть отдельно написанные клиенты под мобильные OS и плитки Windows 8.
Для Ubuntu, Fedora, CentOS и массовые модели NAS есть готовые пакеты. Под все остальное — устанавливается простой распаковкой. Из зависимостей требует лишь Avahi-daemon.
К сожалению механизм транскодирования слабо допускает вмешательства в работу — профили подправить можно, но возможности сильно ограничены.
Способен решить любые задачи в рамках темы, при этом бесплатен, стабилен и как ни странно — быстр.
Есть эта вещь в портах.
# whereis plexmediaserver plexmediaserver: /usr/ports/multimedia/plexmediaserver
Ставим:
# portmaster multimedia/plexmediaserver
Добавим строки в /etc/rc.conf:
plexmediaserver_enable="YES"
Файлики и логи находятся тут:
/usr/local/share/plexmediaserver/Plex DLNA Server
/usr/local/plexdata/'Plex Media Server'/
После старта Plex, все настройки производятся через адекватную вебформу по адресу:
https://plexmediaserver:32400/web
Вот и все. В LG телеках есть клиент Plex, смотреть киношки можно через него, либо через железный медаплеер типа dune.
FreeBSD, порты и CLANG
Поменял на досуге компилятор для системы.
Что имеем:
$ uname -a FreeBSD proliant 9.2-STABLE FreeBSD 9.2-STABLE #0 r256720: Fri Oct 18 15:35:32 MSK 2013 vovas@proliant:/usr/obj/usr/src/sys/PROLIANT amd64 $ clang -v FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610 Target: x86_64-unknown-freebsd9.2 Thread model: posix $
Далее добавил в /etc/make.conf строки:
CC=clang CXX=clang++ CPP=clang-cpp
И пересобрал все порты перед пересборкой мира:
$portmaster -fa
Все переустановилось без ошибок. В следующий раз попробую пересобрать мир с этим компилятором, заодно замерю в течении какого времени вся эта операция пройдет:
$ rm -rf /usr/obj && time make -j2 buildworld