http://www.joomla3x.ru/joomla3-templates.html - joomla 3 шаблоны

FreeBSD

Заметки о FreeBSD

scp - копирование файлов через ssh

Автор: GAMER вкл. .

Скопировать локальный файл на сервер:

scp file.gz Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.:/home/dir

Скопировать всё содержимое папки на сервере (рекурсивно) в локальную папку (с подробным выводом):

scp -r Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.:/home/dir/ /home/local/my/

Между серверами:

scp -r Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.:/home/dir/ Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.:/home/dir/

С указанием порта:

scp -P 9999 file.zip Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.:~/

Дополнительные флаги

  • -r - рекурсивное копирование (для директорий)
  • -C - использовать сжатие при передачи
  • -P - порт ssh

 

-P большая! и -P указывает перед ssh хостом.
  • -p - сохранить информацию о времени создания, модификации файла.

 

Для передачи файлов часто бывает лучше использовать утилиту rsync.
 

Если не грузится ядро

Автор: GAMER вкл. .

1. Попадаем в loader prompt (через Esc).

2. Вводим команду: unload kernel.

3. Вводим команду: boot /boot/kernel.old/kernel

 

Если попали в синглмод и нужно перемонтировать / для чтения-записи, то используем команду: mount -u /

 

 

FREEBSD and two default gw

Автор: GAMER вкл. .

Попалось мне на форуме Лиссяры. Цитирую:

В общем дело обстоит так. В свое время мутил распределение нагрузки между двумя провайдерами. Начитался о setfib, о setfib + ipfw, все понял и все заработало. Но потом, чисто случайно сделал такую хрень ....

# route add default x.x.x.x
# route add 0.0.0.0 y.y.y.y 2

И твою мать что я увидел:

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
0.0.0.0&0x2        y.y.y.y            UGS         0        0    vr0 =>
default            x.x.x.x            UGS         0        0    vr0


И что еще удивительнее, они оба работают, каким то чудом рандомно срабатывает то первый то второй дефолт. Как же так то блеять?! Неужели раньше этого никто не замечал??? Можно хоть 8 таких маршрутов и все срабатывают??? Каким образом выбирается какой маршрут???
P.S.
Во второй таблице маршрутизации, сделал два default и запустил торрент. Работает одновременно через двух провайдеров и качает с сумарной скоростью от обоих провайдеров.

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

 # ipcalc 0.0.0.0 2

Address:   0.0.0.0              00 000000.00000000.00000000.00000000
Netmask:   192.0.0.0 = 2        11 000000.00000000.00000000.00000000
Wildcard:  63.255.255.255       00 111111.11111111.11111111.11111111
Network:   0.0.0.0/2            00 000000.00000000.00000000.00000000
HostMin:   0.0.0.1              00 000000.00000000.00000000.00000001
HostMax:   63.255.255.254       00 111111.11111111.11111111.11111110
Broadcast: 63.255.255.255       00 111111.11111111.11111111.11111111
Hosts/Net: 1073741822           Class A, In Part Private Internet

так что, если адрес пира (в твоем случае) попадает в диапазон 0.0.0.1 - 63.255.255.254, запрос уйдет через один шлюз, иначе - через другой.

Взято здесь:  Форум Лиссяры

Ремарки

Автор: GAMER вкл. .

Часто система не грузится при сбоях в файловой системе. Зайдя однопользовательский режим мы видим, что корневая ФС загрузилась в режиме "только чтение".

Поможет команда:

# mount -u /

Если скрипт на perl ругается что-то типа:

Can't locate HTML/Parser.pm in @INC (@INC contains: /usr/lib/perl5/5.10.1 ... /usr/lib/perl5/vendor_perl .) at ./sl_balance.pl line 6. BEGIN failed--compilation aborted at ./sl_balance.pl line 6.

то скорее всего не установлены соответствующие модули из CPAN, используемые скриптом. Установить их несложно, из-под рута надо сделать:

# perl -MCPAN -e 'shell' > install HTML::Parser

Мониторинг системы: http://habrahabr.ru/sandbox/31010/

Для определения размера под каталогов в заданом каталоге используем команду:

# du -h -d 1 /var

Определение физической памяти (http://arsmx.ru/archives/216):

# sysctl -n hw.physmem

 Текущая скорость на интерфейсах:

# systat -ifstat 1

 Текущие соединения на интерфейсе (rl0), скорость и т.д. Cтавим с портов iftop.

# iftop -i rl0 -P

Если нужно посмотреть, какой процес нагружает дискову систему, то смотрим так:

# top -m io -o total

Для анализа нагрузки на разделы:

# gstat

 

 

Exim (проверка отправителя)

В файле /usr/local/etc/exim/configure

drop   message     = Rejected - Sender Verify Failed
       log_message = Rejected - Sender Verify Failed
       hosts       = *
       !verify     = sender/no_details/callout=2m,defer_ok
       !condition  =  ${if eq{$sender_verify_failure}{}}

Если нужно исключить из проверки ІР одного хочта, то меняем так:

hosts = *
на
!hosts = IP

Для того, чтобы системную почту отправлял не sendmail, а exim нужно в файле /etc/mail/mailer.conf внести изменения:

# $FreeBSD: stable/9/etc/mail/mailer.conf 93858 2002-04-05 04:25:14Z gshapiro $
#
# Execute the "real" sendmail program, named /usr/libexec/sendmail/sendmail
#
#sendmail       /usr/libexec/sendmail/sendmail
#send-mail      /usr/libexec/sendmail/sendmail
#mailq          /usr/libexec/sendmail/sendmail
#newaliases     /usr/libexec/sendmail/sendmail
#hoststat       /usr/libexec/sendmail/sendmail
#purgestat      /usr/libexec/sendmail/sendmail
sendmail        /usr/local/sbin/exim
send-mail       /usr/local/sbin/exim
mailq           /usr/local/sbin/exim -bp
newaliases      /usr/local/sbin/exim -bi
hoststat        /usr/local/sbin/exim
purgestat       /usr/local/sbin/exim

и выполнить в каталоге /etc/mail

# make restart

chown - изменение владельца и группы на файлы и директории

Если в почтовой системе exim "замерзли" сообщения, то протолкнуть их на отправку можна такой командой:

# mailq | grep "*** frozen ***" | awk '{print $3}' | tail -10 | xargs exim -d -M

Изменение шела в текущего пользователя:

# chsh -s zsh

# chsh -s /usr/local/bin/bash USER изменение шела в пользователя USER

[ipfw] Шейпинг

Скрипт для эмуляции приема письма от заданого отправителя:

#!/bin/sh

# Тестирование от mail.ru
(echo "EHLO mxs.mail.ru"; echo "MAIL FROM:Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."; echo "RCPT TO: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."; echo "DATA"; echo "Subject: test"; echo "."; echo "QUIT";) \
| exim -d -bhc 194.67.23.20 > testlog 2>&1

# sockstat -4 -l  - посмотреть какие порты заняты определенными сервисами

# sockstat -4 -l | grep dovecot - посмотреть какие порты занял dovecot

Процес эмуляции:

Подключение к НАШЕМУ_СЕРВЕРУ НА 25 ПОРТ с IP-Адреса 194.67.23.20
EHLO mxs.mail.ru
MAIL FROM:Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
RCPT TO: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
DATA
Subject: test
.
QUIT

Данный скрипт эмулирует получение письма нашим сервером exim от mail.ru. Exim обработает так, будто это реальное письмо, но без реальной доставки (только логи). Далее читам созданный файл testlog, в котором ищем ошибку. Нарыто на форуме Лиссяры.

 

FreeBSD & UTF-8 в консоли

Меняем некоторые строки в файле /etc/login.conf:

russian|Russian Users Accounts:\
:charset=UTF-8:\
:lang=ru_RU.UTF-8:\
:tc=default:
Далее, выполняем:

# cap_mkdb /etc/login.conf
# pw usermod -n $username -L russian

где $username - юзер, которому меняем локаль. Взято здесь: http://noted.org.ua/487

Монтирование линуксовых ресурсов: http://blog.ataboydesign.com/2014/04/23/freebsd-10-mounting-usb-drive-with-ext4-filesystem/

 

 Установка VMWare Tools on ESXi.

http://wiki.itprof.net.ua/doku.php?id=freebsd:vmware-tools

 

Как пользоваться редактором vi написано здесь: https://docs.altlinux.org/ru-RU/archive/2.4/html-single/master/alt-docs-extras-linuxcovice/ch02s10.html

 

DHCP- сервер на FreeBSD

Автор: GAMER вкл. .

DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической конфигурации узла) — это сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели «клиент-сервер». Для автоматической конфигурации компьютер-клиент на этапе конфигурации сетевого устройства обращается к так называемому серверу DHCP, и получает от него нужные параметры. Сетевой администратор может задать диапазон адресов, распределяемых сервером среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок. Протокол DHCP используется в большинстве крупных (и не очень) сетей TCP/IP.

И так, устанавливаем и настраиваем DHCP сервер на FreeBSD:

Установка сервера

# cd /usr/ports/net/isc-dhcp42-server
# make config

    ┌──────────────────────────────────
    │ Options for isc-dhcp42-server 4.2.3_2                
    │ ┌─────────────────────────────────
    │ │      [ ] DHCP_IPV6      Enable support for IPv6  
    │ │      [*] DHCP_PARANOIA  Enable support for chroot  
    │ │      [ ] DHCP_LDAP      With LDAP support                 
    │ │      [ ] DHCP_LDAP_SSL  Support LDAP over SSL/TLS
    │ │      [*] BIND_SYMBOLS   Enable BIND internal symbol table    
    ─────────────────────────────────────────────
# make reinstall

 

Настройка

# cd /usr/local/etc
# cat dhcpd.conf

dhcpd.conf:

# Настройки, общие для всех поддерживаемых сетей
option domain-name “example.org”;
option domain-name-servers 10.0.0.199, 10.0.0.200, 192.168.1.105;

# Параметры времени аренды IP-адреса, выставлены на максимум
default-lease-time 720000;
min-lease-time 720000;
max-lease-time 720000;

# Наш сервер – официальный сервер для нашей сетки, что мы и подтверждаем
authoritative;

# Ведение логов
log-facility local7;

# Различные настройки локальной сети:
subnet 10.0.0.0 netmask 255.255.255.0 { # сеть 10.0.0.0/24
range 10.0.0.1 10.0.0.30; # диапазон выдаваемых IP-адресов
option routers 10.0.0.200; # шлюз
option subnet-mask 255.255.255.0; # маска подсети
option broadcast-address 10.0.0.255; # широковещательный адрес
option domain-name-servers 10.205.1.10, 94.12.80.1; # DNS
option ntp-servers 10.0.0.100, 10.0.0.200; # адреса серверов синхронизации времени
}

# Привязка статичных IP к MAC-адресам
host server.example.org {
hardware ethernet 00:aa:bb:cc:dd:ee;
fixed-address 10.0.0.88;
}

Настройки /etc/rc.conf:

dhcpd_enable=”YES”
dhcpd_conf=”/usr/local/etc/dhcpd.conf” # указываем конфиг
dhcpd_ifaces=”rl0″ # интерфейс, на котором слушает сервер
dhcpd_withuser=”dhcpd” # запускать от пользователя
dhcpd_withgroup=”dhcpd” # запускать от группы
dhcpd_chuser_enable=”YES” # runs w/o privileges?
dhcpd_chroot_enable=”YES” # запуск в песочнице
dhcpd_devfs_enable=”YES” # использовать devfs
dhcpd_rootdir=”/var/db/dhcpd” # путь к песочнице

или, если не заморачиваться безопасностью:

dhcpd_enable=”YES”
dhcpd_conf=”/usr/local/etc/dhcpd.conf” # указываем конфиг
dhcpd_ifaces=”rl0″ # интерфейс, на котором слушает сервер
dhcpd_withuser=”dhcpd” # запускать от пользователя
dhcpd_withgroup=”dhcpd” # запускать от группы

 Запуск:

# /usr/local/etc/rc.d/isc-dhcpd start

По материалам: http://yurasik.org.ua/nastrojka-servera-dhcp-v-freebsd/ 
и http://www.sergeysl.ru/freebsd-isc-dhcp-server/