Перейти к собственно контенту

AgR^ Live Blog

Общественные записки не поддающиеся вкуриванию…

Архив

Метка: FreeBSD

Решил подключиться к проекту narodmon.ru Пришлось повозиться, но результат был получен.
Из железа использую вот такой адаптер с датчиком DS18B20 — http://blog.amigas.ru/?p=1501
Адаптер подключен к серверу на FreeBSD. Скрипт, который предлагается на сайте narodmon.ru немного переписан мной и полностью рабочий. Комментарии кое где добавил и выделил красным цветом, для прояснения ситуации, что и где менять.

>cat narodmon.ru.sh
#!/bin/sh
# run every 10 min
#ifconfig | grep ether | awk '{FS=" "; if(NR==1) {print "#"$5}};' > /var/log/narodmon
#echo "#" > /var/log/narodmon

echo "#7171bdae364f#" > /var/log/narodmon # код - мак адрес сетевухи
sleep 7 # - ждём 7 секунд для того чтобы не попасть на одновременный опрос датчика из разных скриптов(если опрашивается только отсюда, то необязательно)
/usr/local/bin/digitemp_DS9097 -i -q -t 1 -s /dev/cuau0 -c /scripts/.digitemprc | /usr/bin/awk '{FS=" "; if($2==":") { mac[NR-1]=$1;}; if($4=="Sensor") { print "#"mac[$5]"#"$7;}}' >> /var/log/narodmon
echo "##" >> /var/log/narodmon
LC=`cat /var/log/narodmon | wc -l`
if [ $LC -gt 2 ]
then cat /var/log/narodmon | nc narodmon.ru 8283 > /var/log/narodmon.log
fi

и загоняем его в крон:
>echo "*/12 * * * * /scripts/narodmon.ru.sh > /dev/null 2>&1" >> /var/cron/tabs/root

После регистрации на сайте и добавления датчика, получаем вот такой результат:
http://narodmon.ru/?lat=54.737&lng=55.975&zoom=14&map=map
Заодно добавил скриншот с уличной камеры.
Вот. Ничего сложного. Удачи в повторении.

(1 votes, average: 5,00 out of 5)
1 128 views

Это по моему самый быстрый способ редиректа (форвардинга) входящей почты, на другие адреса.
Создаём в директории пользователя файл — .forward, в котором построчно прописываем адреса e-mail получателей почты.
ex:
.forward
xxx@1xxx1.cdm
sdfg@dsgjkh.ri
итд.
В итоге вся входящая почта юзера, рассылается по указанным адресам в файле .forward

(No Ratings Yet)
949 views

Понадобилось подключить диски хранилища Thecus Nas8800Pro и FreeNas к серваку на FreeBSD. Задача оказалась очень лёгкой, тк у хранилища 8800pro оказались все подсказки, как это сделать!

Начнём.
Сперва ломимся в админку хранилища:


1. Заходим в Хранилище ->Папки.
2. Создаём необходимую нам папку.
3. Нажимаем кнопочку «NFS».

4. Нажимаем кнопку «Добавить».
5. И заполняем соответствующие поля своими данными и необходимыми настройками и получаем то что указано на рисунке.

6. Далее заходим в «Сетевая служба -> Настройка NFS»
7. И включаем сервис. Далее «Применить».
На этом настройка хранилища закончена.

Ниже привожу порядок настройки FreeNASа:
Также заходим в админку:


1. Идем в меню «Службы» -> «Управление службами»
2. Переводим слайдер в положение «ON»
3. Нажимаем на кнопку с гаечным ключом, для настройки. Если настройки такие же как и на рисунке, то жмём «ОК».

4. Идем далее в пункт «Совместное использование» -> «Unix (NFS) общие ресурсы»
5. Жмём «Добавить Unix (NFS)»
6. И заполняем таким вот образом данный пункт и потом «ОК».
Настройка на этом закончена. Осталось подключить данные сетевые ресурсы к серверу на FreeBSD.

Подклюаем так:
mount -t nfs 10.0.0.10:/raid0/data/_NAS_NFS_Exports_/nfs1 /home/obmen/public_html — NAS8800
mount -t nfs 10.0.0.11:/mnt/data/dvd /home/obmen/10.0.0.11 — FreeNAS

В итоге получили следующее:
Filesystem Size Used Avail Capacity Mounted on
/dev/ad2s1a 2.1G 210M 1.7G 11%
/ devfs 1.0k 1.0k 0B 100%
/dev /dev/ad2s1h 61G 1.5G 54G 3%
/data /dev/ad2s1g 104G 37G 57G 39%
/home /dev/ad2s1d 1.0G 112k 954M 0%
/tmp /dev/ad2s1e 62G 4.1G 53G 7%
/usr /dev/ad2s1f 10G 1.2G 8.4G 12%
/var linprocfs 4.1k 4.1k 0B 100%
/usr/compat/linux/proc
10.0.0.10:/raid0/data/_NAS_NFS_Exports_/nfs1 10T 2.9T 7.8T 27% /home/obmen/public_html
10.0.0.11:/mnt/data/dvd 78G 66G 11G 85% /home/obmen/10.0.0.11

Ну вот и всё. Абсолютно ничего сложного.

(No Ratings Yet)
1 472 views

Хоть это для меня и не особо критично, но всё же ради эксперимента решил защитить сервер от попыток перебора пароля. Самый простой способ — смена порта. Но мне захотелось оставить на стандартном. Ставить связку с фаерволом, тоже как-то не хотелось. И после очередного обновления портов, попалась на глаза, утилита написанная на перле, делающая то что мне нужно и без всяких «вагонов с тележками» в комплекте…
#cd /usr/ports/security/sshblock
#make install clean
#echo sshblock_enable="YES" >> /etc/rc.conf
#/usr/local/etc/rc.d/sshblock start
Опций минимум:
Usage: sshblock [ -b ] [ -l ] [ -t ]

Trigger list is a list of seconds:attempts threshold pairs for determining
whether a host should be blocked (Пара - время в секундах:количество попыток входа)

Default blockfile: /etc/hosts.allow
Default logfile: /var/log/auth.log
Всё остаётся по умолчанию, в том числе и тайминги, которые я подсмотрел в теле программы:
%SSHBlock::thresholds = (
# 5 attempts in 15 seconds
15 => 5,
# 10 attempts in 60 seconds
60 => 10,
# 20 attempts in one hour
3600 => 20,
# 30 attempts in one day
86400 => 30

Этого нам вполне хватит.

(No Ratings Yet)
1 094 views

После установки FreeBSD v9.0 , как всегда понадобилось русифицировать консоль. На удивление, с версии 9 немного изменился способ русификации. Вернее он просто упростился.
Здесь я опишу как это было до 9-ой ветки и как стало теперь.
Начнём:
1. Проверим для начала наличие таких строчек в файле /etc/login.conf
#
# Russian Users Accounts. Setup proper environment variables.
#
russian|Russian Users Accounts:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:\
:tc=default:
Если нету, то добавляем и потом выполняем следующую команду:
cap_mkdb /etc/login.conf
2. Отредактируем файл /etc/rc.conf , добавив следующие строчки:
font8x14="cp866-8x14"
font8x16="cp866-8x16"
font8x8="cp866-8x8"
scrnmap="koi8-r2cp866"
keymap="ru.koi8-r"
3. Отредактируем файл /etc/ttys изменив следующим образом:
было так:
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
стало так:
ttyv0 "/usr/libexec/getty Pc" cons25r on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25r on secure
ttyv2 "/usr/libexec/getty Pc" cons25r on secure
ttyv3 "/usr/libexec/getty Pc" cons25r on secure
ttyv4 "/usr/libexec/getty Pc" cons25r on secure
ttyv5 "/usr/libexec/getty Pc" cons25r on secure
ttyv6 "/usr/libexec/getty Pc" cons25r on secure
ttyv7 "/usr/libexec/getty Pc" cons25r on secure
4. Даём юзерам возможность использовать русскую локаль:
pw usermod user -L russian
5. Перезагружаемся.

Этот способ для версий FreeBSD ниже 9.0
Начиная с 9-ой ветки, теперь нет необходимости вносить изменения в файл /etc/ttys !!!

Начиная с 11-ой ветки:
для русификации терминала при создании пользователя указывайте class russian:
pw useradd user_name -L russian

Или можете изменить класс существующего пользователя командой:
pw user mod user_name -L russian

После всего перезайти в сессию или перезапустить шелл.

P.S. Для поддержки кириллицы в консоли добавьте строку в /boot/loader.conf:
hw.vga.textmode=0
и перезагружаем комп.

(No Ratings Yet)
2 409 views

Решил наконец-то обновиться до ветки FreeBSD v8.3 Release + все патчи что успели выйти после релиза. Ну и естественно пересобрать со своими настройками ядро.
В общем план таков:
1. Для начала делаем бинарное обновление:
# freebsd-update upgrade -r 8.3-RELEASE
# freebsd-update install
# shutdown -r now
# freebsd-update install
# shutdown -r now
Всё. Бинарное обновление сделали. Теперь нам нужны соответствующие исходные коды системы.
2. Скачиваем с помощью svn соответствующие «сырцы»:
# rm -d /usr/src
# mkdir /usr/src
# svn checkout http://svn.freebsd.org/base/releng/8.3/ /usr/src
# svn update /usr/src/
Осталось пересобрать ядро и установить.
3. Ядро:
# cd /sys/i386/conf && config AGR83 && cd ../compile/AGR83 && make cleandepend && make depend && make && make install
# shutdown -r now
И вот что стало:
$ uname -a
FreeBSD k.xxxxxx.ru 8.3-RELEASE-p2 FreeBSD 8.3-RELEASE-p2 #0 r236713M: Thu Jun 7 19:07:20 YEKT 2012 v@x.xxxxx.ru:/usr/src/sys/i386/compile/AGR83 i386

Ну вот и всё. Теперь имеем новую ветку, плюс патчи и свои настройки. По времени это обновление заняло около часа, на машинке с процом на каком то там атоме.

(No Ratings Yet)
1 652 views

В один прекрасный момент слетели базы со статистикой сетевых интерфейсов. Естественно понадобилось восстановить. Архивы у меня создаются еженедельно. Но распаковывать пару гигов — не айс.
Поэтому делаем так:
#tar -xvzf archive.tar.gz var/db/vnstat — извлечение папки с файлами
#tar -xvzf archive.tar.gz var/db/vnstat/re0 — извлечение определённого файла
или же списка папок и файлов:
#tar -xvzf archive.tar.gz var/db/vnstat var/log usr/ports

(No Ratings Yet)
1 424 views

Словив пару «глюков» при обновлении исходников с помощью cvsup, я решил наконец то перейти на svn.
Для начала установим subversion.
#cd /usr/ports/devel/subversion
#make install clean
После установки, можно почитать информацию по svn.
#svn help
Сперва я решил очистить каталог исходников подчистую.....#rm /usr/src
Дальше всё ещё проще.
Скачиваем нужную нам ветку:
#svn checkout http://svn.freebsd.org/base/releng/8.3/ /usr/src - через HTTP
или так:
#svn checkout svn://svn.freebsd.org/base/releng/8.3/ /usr/src - через SVN

Обновляем так:
#svn update /usr/src/
At revision 234940

Проверяем:
#grep -A 2 'TYPE="' /usr/src/sys/conf/newvers.sh
TYPE="FreeBSD"
REVISION="8.3"
BRANCH="RELEASE"

Вывод. Используйте SVN. Намного проще и надёжнее. И меньше шансов словить "глюки".

UPDATE 04-05-2012
Решил проверить обновления. И получил такое:
koms# svn update /usr/src/
Updating '/usr/src':
Skipped '/usr/src/crypto' -- Node remains in conflict
Skipped '/usr/src/UPDATING' -- Node remains in conflict
Skipped '/usr/src/sys' -- Node remains in conflict
At revision 234994.
Summary of conflicts:
Skipped paths: 3

Что делать!? А ничего. Просто ждать пару дней или больше. Происходит изменение кода на сервере в этих папках. И как код будет принят, исходники обновятся нормально, без всяких предупреждений.

p.s. Помогло полное удаление каталога src и по новому полное скачивание.

p.p.s. Чуть позже допишу статейку по поводу обновления и команды resolved.

(1 votes, average: 5,00 out of 5)
2 933 views

Довольно таки часто приходится собирать своё собственное ядро со своими опциями и устройствами. И соответственно бинарное обновление через интернет, отпадает напрочь. Вот и займёмся обновлением исходников в системе.

Создадим конфигурационный файл для cvsup:
koms# ee  /root/updatefile.cvs

и заполним следующим:
*default host=cvsup6.ru.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs
*default delete use-rel-suffix
*default compress
*default tag=RELENG_8_2
src-all

Запускаем обновление исходников:
koms# cvsup -L 2 /root/updatefile.cvs

Проверяем что скачалось:
koms# grep -A 2 'TYPE="' /usr/src/sys/conf/newvers.sh
TYPE="FreeBSD"
REVISION="8.2"
BRANCH="RELEASE-p6"
koms#

А далее уже пересобираем и устанавливаем как обычно.

(No Ratings Yet)
854 views

Однажды очень понадобились квоты. Ну раз понадобились, значит делаем. Приступим.
Т.к. по умолчанию во фряхе квоты отключены, то сперва необходимо добавить в конфиг ядра опцию, пересобрать ядро и установить его.

Отредактирую свой конфиг ядра:
>ee /usr/src/sys/i386/conf/AGR
и добавляю сюда строчку:
options QUOTA
Сохраняем конфиг и пересобираем ядро:
cd /sys/i386/conf && config AGR && cd ../compile/AGR && make depend && make && make install

Добавляем пару строчек в /etc/rc.conf
enable_quotas="YES"
check_quotas="YES"

Далее включаем квоты на тех "ФС", там где это нам нужно, добавляя опцию - userquota.(Лично мне нужны были только пользовательские квоты)
vadim# cat /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/ad2s1b none swap sw 0 0
/dev/ad2s1a / ufs rw 1 1
/dev/ad2s1h /data ufs rw,userquota 2 2
/dev/ad2s1g /home ufs rw,userquota 2 2
/dev/ad2s1d /tmp ufs rw 2 2
/dev/ad2s1e /usr ufs rw,userquota 2 2
/dev/ad2s1f /var ufs rw 2 2
/dev/cd0 /cdrom cd9660 ro,noauto 0 0
linproc /compat/linux/proc linprocfs rw 0 0

Далее перезагружаемся.
И проверяем:
vadim# quota -v
Disk quotas for user root (uid 0):
Filesystem usage quota limit grace files quota limit grace
/data 13404 0 0 90 0 0
/home 19074004 0 0 677 0 0
/usr 3309778 0 0 284614 0 0

Ну и самое последнее. Раздаём юзерам квоты на разных файловых системах:
>edquota -u user
Quotas for user vadim:
/data: kbytes in use: 0, limits (soft = 0, hard = 0)
inodes in use: 0, limits (soft = 0, hard = 0)
/home: kbytes in use: 448260, limits (soft = 0, hard = 0)
inodes in use: 1769, limits (soft = 0, hard = 0)
/usr: kbytes in use: 228784, limits (soft = 0, hard = 0)
inodes in use: 75, limits (soft = 0, hard = 0)
Тут можно задать мягкое (Soft) и жёсткое (Hard) ограничение.

Новые ограничения вступят в силу после выхода из редактора.
Вот так. Если нужно больше инфы по квотам, то тогда курим хэндбук. Там всё расписано и разрисовано.

(No Ratings Yet)
1 394 views