FreeBSD

warning: Creating default object from empty value in /usr/local/www/drupal6/modules/taxonomy/taxonomy.pages.inc on line 33.

Мониторинг температуры сервера под FreeBSD и оповещение при превышении

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

В итоге нашел инструменты и наваял скриптики.

Для получения температуры, скорости вращения вентиляторов и напряжения под FreeBSD использовал mbmon, lmmon и sysctl, в зависимости от того, на каком сервере что заработало.

mbmon

Установка как обычно:

cd /usr/ports/sysutils/mbmon
make install clean

При запуске получаем температуру, скорость вращения куллеров и некоторые напряжения на плате:

# mbmon

Temp.= 19.0, 19.0,  0.0; Rot.= 1520, 2220,    0
Vcore = 2.27, 3.50; Volt. = 3.34, 5.62, 12.83,   2.20,  1.69

Из непонятного, если несколько раз подряд запросить данные, то температура будет прыгать на 2-3 градуса.

Для облегчения получения информации, снимаю только температуру с одного датчика и устанавливаю демоном, для этого в /etc/rc.conf добавляю:

mbmon_enable=YES
mbmon_flags=-T1

lmmon

Установка как обычно:

cd /usr/ports/sysutils/lmmon
make install clean

При запуске получил ошибку:

#lmmon
Failed to open device /dev/smb0.
If your system does not support intpm(4),
try to use /dev/io (-i flag) or check
the permissions of /dev/smb0.

0
Your rating: Нет

Резервыне копии данных в FreeBSD через snapshot

Черновик

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

Фо FreeBSD, и наверное не только, есть такое понятие как моментальная копия файловой системы, или snapshot.

При этом, чисто теоретически, должно неплохо экономиться место.

Из первых неудобств - делается некоторое время (60 гб делалось около 20 минут) и снять процесс создания снепшота нельзя. Возникает ощущение, что процес завис и больше счастья не будет. Ощущение обманчивое.

То же самое возникло при попытке удалить снепшот - т.е. создание и удаление снепшотов больших разделов достаточно длительный процесс.

При использовании файловой системы ZFS снепшоты делаются значительно быстрее - секунды, даже при условии, что железо используется более слабое и диски подключены в зеркало.

Удобная утилита:

cd /usr/ports/sysutils/freebsd-snapshot
make install clean

По материаллам - snapshot UFS2 во FreeBSD.

При наличии ZFS снэпшоты можно делать так:

zfs snapshot -r system64@`date "+%Y-%m-%d-%H:%M"`

0
Your rating: Нет

Создание одноразового зашифрованного контейнера под FreeBSD

В продолжение темы возникла идея-мысль, по поводу того, что нужо сделать отдельное зашифрованное хранилище, информация на котором имеет ценность исключительно в момент работы с ней. Т.е. кинули туда информацию, обработали ее, перегрузились/переподключили диск и у нас уже все опять чистое и красивое, а то что было раньше уже найти или восстановить нельзя. Очень полезно было-бы для папочки del и ее производным, чтобы не разрасталась wink

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

#Единожды, подготовка устройства/файла
dd if=/dev/zero of=test_img bs=1m count=100

#Каждый раз, при необходимости подключить шифрованное хранилище
mdconfig -a -t vnode -f test_img -S 4096 -u 5
geli onetime -l 256 -s 4096 /dev/md5
newfs /dev/md5.eli
mount /dev/md5.eli /mnt/

Ну и при необходимости размонтируем:

umount /dev/md5.eli
geli detach /dev/md5
mdconfig -d -u 5

После размонтрирования или перезагрузки системы данные востановить уже невозможно.

0
Your rating: Нет

Создание шифрованного раздела на работающем сервере FreeBSD с дополнительными возможностями

Потребовалось создать зашифрованное файловое хранилище на уже работающем сервере FreeBSD. Задумался - как это сделать, чтобы было наиболее гибко и удобно в дальнейшем. Скорость работы у меня стояла на последнем месте, поэтому особо не рассматривал на сколько все сильно тормозит.

Т.к. сервер уже настроен, работает и перебивать диски и добавлять новые, не хочется соответственно, защищенное хранилище буду располагать в файле. Далее этот файл подключаем как устройство, шифруем его и поднимаем ZFS, на случай, если что-то нужно поменять она является наиболее гибкой.

Итого для создание нужно выполнить следующие шаги:

  • создать файл контейнер необходимого размера
  • подключить его как устройство, иначе geli с ним работать не будет
  • зашифровать устройство
  • создаем на нем файловую систему ZFS

#Создаем файл контейнер
dd if=/dev/zero of=test_img bs=1m count=100

#Создаем ключевой файл
dd if=/dev/random of=test_img.key bs=64 count=1

#Подключаем контейнер как устройство
mdconfig -a -t vnode -f test_img -S 4096 -u 5

#Инициилизируем шифрованное устройство
geli init -s 4096 -K test_img.key /dev/md5

#Подключаем зашифрованное устройство
geli attach -k test_img.key /dev/md5

#Создаем на шифрованном устройстве файловую систему ZFS
zpool create -m /backup backup /dev/md5.eli

Полностью отключаем всю нашу конструкцию

zpool export backup
geli detach /dev/md5
mdconfig -d -u 5

0
Your rating: Нет

rsync между windows и FreeBSD

Бился тут с тем, чтобы с компьютера под Windows с помощью rsync забирать данные.

Нашел два варианта сервера под Windows:

После разных попыток, остановился на DeltaCopy. Но возникло две проблемы:

  1. Не корректные имена русских названий файлов
  2. Неправильные права доступа к файлам. Точнее отсутствие права доступа к файлам после синхронизации

Победить русские имена файлов получилось следующим образом:

в файл deltacd.conf вставляем

charset = cp1251

а на FreeBSD rsync запускаем с ключем

--iconv=koi8-r

После этих манипуляций, на FreeBSD появлялись файлы с русскими именами в кодировке KOI8-R

Для того чтобы дать права доступа к синхронизированным файлам потребовалось использовать ключ

--chmod=oug=rx

Возможно не безопасно, но нормально работает.

Итоговый вид deltacd.conf

use chroot = false
strict modes = false
charset = cp1251

[Backup]
    path = /cygdrive/c/Backup
    comment = Backup Drive
    read only = false
    auth users = backup
    secrets file = rsync.secret

Вид rsync.secret

backup:password

0
Your rating: Нет

Отправка файлов по почте из консоли

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

Этой ночью таки нашел программу которая это красиво и удобно делает - sendEmail.

Под FreeBSD ставится из портов:

cd /usr/ports/net/sendemail/
make install clean

Использование тоже очень простое:

sendEmail -f my_adress@test.com -t my2_adress@test.com -u Subject -m message -a atachment.file

При необходимости можно указать необходимый сервер SMTP, логин и пароль к нему и т.д.

0
Your rating: Нет

Создание FTP-зеркала

Т.к. потихоньку запускаю в строй бекап сервер потребовалось делать архивную копию сайта расположенного на фтп.

Нашлась программа fmirror -  простенькая, но как раз для этих целей. Судя по описанию, она позволяет только делать локальное зеркало с фтп сервера, но не умеет обратно закачивать или синхронизировать. Зато умеет скачивать только изменившиеся файлы и поддерживает фильтры, что исключить, а что включить. Этого мне вполне достаточно.

Основной причиной выбора этой программы стало то, что у нее нет никаких зависимостей и она написана на C, т.е. по идее должна работать с минимальными затратами и с максимальной скоростью.

Устанавливается во FreeBSD из портов:

cd /usr/ports/ftp/fmirror/
make install clean

Использование:

fmirror -4 -N -S -V1 -d0 -f my_ftp_mirror.cfg

Содержание my_ftp_mirror.cfg

0
Your rating: Нет

zfs - файловая система с кучей возможностей

Пока черновик.

Захотел собрать себе из старого железа собрать сервер для резервного хранения данных.

Основная проблема старого железа - неизвестно когда загнется, но скорее всего скоро. wink

Тут возник вопрос, как сделать чтобы при этом сохранность информации была на должном уровне и при этом можно было достаточно легко заменять и добавлять диск. Умный Stinky рассказал мне волшебное слово - ZFS. ZFS - файловая система, которая на ходу позволяет в нее добалять и удалять диски, готова сама создавать из них разные рейды, поддерживает квоты для разделов, сжатие и кучу разных вкусностей.

Из смешного, под Linux ее вроде потихоньку переносят, а под FreeBSD - уже перенесли и она штатно готова к работе.

Идея использования этой системы и старых винтов.

Ситуация с дисками:

  • диски старые - могут выйти из строя в любой момент, обязательно требуется дублирование - рейд 1 или 5 (mirror или raidz)
  • диски разного размера - стандартный рейд не проходит, т.к. тогда на каждом диске будет использоваться объем равный самому маленькому диску

Мое решение (пока в процессе размышления):

Чтобы наша ZFS система автоматически монтировалась rc.conf нужно добавить:

zfs_enable="YES"

0
Your rating: Нет

Отмена перевода часов на зимнее время

В связи с великим указом г-на Медведева, возникла дополнительная проблема, как заставить часы ходить правильно. Нашел статью "Летнее время! Теперь ты всегда с нами!!!"

FreeBSD

Сегодня с сожалением обнаружил, что FreeBSD перевела часы с летнего времени. Увы, нужно обновлять мир. Но есть и более быстрый, но в то же время надёжный способ скорректировать часовые пояса: Не забываем сначала обновить порты, чтобы гарантированно получить свежий tzdata. Далее:

0
Your rating: Нет
Ленты новостей