Jump to content
iT4iT.CLUB

Search the Community

Showing results for tags 'freebsd'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Operating systems
    • UNIX
    • Mac OS
    • Windows
  • Monitoring System
    • Zabbix
  • Network hardware
    • Cisco Systems
    • MikroTik
    • Ubiquiti Networks
  • Microcontrollers
    • Arduino

Blogs

There are no results to display.

There are no results to display.

Calendars

  • Community Calendar

Categories

  • Zabbix
    • Templates
  • Arduino
    • Espressif Systems
    • Libraries
  • UNIX

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 3 results

  1. Так получилось, что у меня имеются два провайдера у одного из которых я вижу внутреннюю сеть, а ещё есть Zabbix который начинает ничего мне не сообщать если я не на работе про то, что происходит если провайдер через которого он это делает "уснул". Встретив на просторах интернета интересный скриптик я немного модифицировал его под себя и радуюсь жизни. Сим хочу с вами поделиться. Имеем два шлюза с апи нашей локалки 1.1.1.1 и 1.1.1.2. Имееем айпи 3.3.3.3 из внутренней сети провайдера. Создаём рабочую директорию для скрипта в /usr/local/scripts/bin/status В принципе это всё что нам надо. #!/bin/sh FPING="/usr/local/sbin/fping" WRKDIR='/usr/local/scripts/bin' DATE=`/bin/date` MAININET='3.3.3.3' MAIN='1.1.1.1' BACKUP='1.1.1.2' main_status_old=`/bin/cat $WRKDIR/status/main | /usr/bin/awk '{ print $1 }'` main_try=`/bin/cat $WRKDIR/status/main | /usr/bin/awk '{ print $2 }'` router=`/bin/cat $WRKDIR/status/router` main_status_new=`$FPING $MAININET | /usr/bin/awk '{ print $3 }'` back_status=`$FPING $BACKUP | /usr/bin/awk '{ print $3 }'` if [ $main_status_new != 'alive' ] then { if [ $router = 'main' ] then { if [ $back_status = 'alive' ] then { if [ $main_try != 0 ] then { route change default 1.1.1.2 echo 'backup' > $WRKDIR/status/router } else { main_try=`expr $main_try + 1` echo "$main_status_new $main_try" > $WRKDIR/status/main } . fi } fi } fi . } else { if [ $router = 'backup' ] then { route change default 1.1.1.1 echo 'main' > $WRKDIR/status/router echo "$main_status_new 0" > $WRKDIR/status/main } fi } . fi Делаем статический маршрут до айпи 3.3.3.3 через шлюз 1.1.1.1 route add -net 3.3.3.3 1.1.1.1 Добавляем этот маршрут в rc.conf static_routes="local-prov" route_local-prov="-net 3.3.3.3 1.1.1.1" Добавляем выполнение в крон по желаемому временному интервалу и радуемся тому, что сообщения о состоянии будут приходить если провайдер один отвалится. И тому что провайдер так любезен. Удачи!
  2. Распространённая проблемка, когда при падении сервера на котором развёрнут DHCP наступает неприятная ситуация в общении с пользователями. Довольно просто предотвратить данную ситуацию развёртыванием дублирующего DHCP на другом сервере в локальной сети. Что мы сейчас и проделаем, правда начнём просто с настройки, считая что у вас уже есть установленные два сервака на FreeBSD Первичный сервер: Для удобства дробим конфигурационный файл на несколько. У нас получается три файла с таким содержимым. /usr/local/etc/dhcpd.conf : option domain-name "mycompany.local"; option domain-name-servers 10.0.0.2, 10.0.0.3; option subnet-mask 255.255.255.0; default-lease-time 86400; max-lease-time 604800; ddns-update-style none; authoritative; subnet 10.0.0.0 netmask 255.255.255.0 { option routers 10.0.0.1; interface em0; pool { failover peer "mynetwork"; range 10.0.0.20 10.0.0.250; } } include "/usr/local/etc/dhcpd-primary"; include "/usr/local/etc/dhcpd-hold"; Что мы тут имеем в первом и так сказать главном файле конфигурации: option domain-name "mycompany.local"; - Задаём доменное имя, которое клиенты будут использовать при запросах к DNS. Если имена разрешены. option domain-name-servers 10.0.0.2, 10.0.0.3; - Собственно, адреса DNS серверов в сети. option subnet-mask 255.255.255.0; - Сетевая маска локальной сети где будет находится DHCP сервер. default-lease-time 86400; - Период времени по умолчанию в секундах, на который будет выданный адрес закреплён за устройством. max-lease-time 604800; - Максимальный период времени в секундах, на который будет выданный адрес закреплён за устройством. subnet 10.0.0.0 netmask 255.255.255.0 - Подсеть с её маской. option routers 10.0.0.1; - Шлюз сети. interface em0; - На каком интерфейсе слушать запросы и отвечать с которого. Далее описание пула для выдачи адресов: failover peer "mynetwork"; - название. range 10.0.0.20 10.0.0.250; - диапазон адресов для выдачи клиентам. Влючаем в конфиг другие файлы конфигурации: include "/usr/local/etc/dhcpd-primary"; include "/usr/local/etc/dhcpd-hold"; Далее /usr/local/etc/dhcpd-primary : failover peer "mynetwork" { primary; address 10.0.0.4; port 647; peer address 10.0.0.5; peer port 647; max-response-delay 60; max-unacked-updates 10; mclt 3600; split 128; load balance max seconds 3; } Это описание самой технологии failover, что мы имеем тут: primary; - К какому серверу DHCP относится этот файл, грубо говоря :-) . В данном случае к первичному. address 10.0.0.4; - Его адрес в сети port 647; - Порт? :-) peer address 10.0.0.5; - Адрес вторичного сервера в сети. peer port 647; - Его порт. max-response-delay 60; - Ожидание в секундах ответа первичным сервером от вторичного. По истечении считает его недоступным. max-unacked-updates 10; - Непонятная хрень. Максимальное количество несанкционированных обновлений? mclt 3600; - Время в секундах, по истечении которого продлевается или прекращается аренда без синхронизации. split 128; - Нужно для балансировки. load balance max seconds 3; - Время в секундах, по истечении балансировка прекращается. Топаем дальше /usr/local/etc/dhcpd-hold . Это файл со статическими назначениями ip-адресов в соответствии с mac-адресами. Приведу только один пример: host BLA-BLA { hardware ethernet FF:FF:FF:FF:FF:FF; fixed-address 10.0.0.81;} BLA-BLA - описание хоста FF:FF:FF:FF:FF:FF - Mac-адрес сетевой карты 10.0.0.81 - Закреплённый ip-адрес Ну в принципе с первичным сервером закончили. Перейдём к вторичному. /usr/local/etc/dhcpd.conf У нас немного меняются только две строчки: include "/usr/local/etc/dhcpd-secondary"; include "/usr/local/etc/dhcpd-hold-nowrite"; Но это при условии, что у нас имя сетевого интерфейса такое-же, в данном случае em0 . Далее /usr/local/etc/dhcpd-secondary failover peer "mynetwork" { secondary; address 10.0.0.5; port 647; peer address 10.0.0.4; peer port 647; max-response-delay 60; max-unacked-updates 10; mclt 3600; load balance max seconds 3; } Ну и последний, создаём /usr/local/etc/dhcpd-hold-nowrite . Это тот-же dhcpd-hold, там ничего не меняется. В принципе всё готово. Запускаем, и радуемся жизни. Но радость была недолгой ибо неудобно после каждой правки перезапускать два сервака ручками, мы сразу захотели автоматизацию. Но это уже совсем другая история. Надеюсь ничего не упустил, у меня бывает. Если это так, пишите. Удачи.
  3. Ну, стоит и это на хранение положить, дабы потом быстрее было вытаскивать. В принципе бекапить всё и вся более менее важное, должен каждый хоть чуточку уважающий себя админ. И им это будет не интересно, но как я уже сказал на главной своего блога "Всё опубликованное является написанным для памяти и не претендует на исключительность". Будем складывать дамп мускуля на отдельно стоящий и настроенный FreeNAS с NFS шарой. Запишу как делал на Linux и FreeBSD. Начнём с не любимого мной Debian. Тачу файл скрипта. # touch /root/backup.shНазначаем привилегии. chmod 540 /root/backup.sh chown root:root /root/backup.shЧитать и исполнять его может только root. Нефиг остальным там делать. Создаём директорию куда будем монтировать #mkdir /mnt/archНаполняем его содержимым. #!/bin/sh n=$(date +%Y%m%d%H%M) cd /home/tmpbkp mysqldump -uroot -pСУПЕРПАРОЛЬ mail > $n.mail.sql mount.nfs КРАСИВЫЙИП:/mnt/rm1/arch/mail /mnt/arch mv /home/tmpbkp/$n.mail.sql /mnt/arch/$n.mail.sql umount /mnt/archВ принципе всё понятно, и тут нечего разбирать. Кому надо спросите. Пишем в кронтаб автозапуск. #crontab -e 1 01 * * * /root/backup.shВ принципе всё, перейду к любимому дьяволёнку. Почти ничем не отличаются манипуляции, кроме. Я на фре, спасибо моему старшему товарищу приучившему меня к этому, создаю отдельную дирректорию для скриптов. Тачу файл там. #touch /usr/local/scripts/backup.shДаю права #chmod 540 /usr/local/scripts/backup.sh #chown root:wheel /usr/local/scripts/backup.shНаполняю его содержимым #!/bin/sh n=$(date +%Y%m%d%H%M) cd /usr/home/vit/bacup mysqldump -uroot -pСУПЕРПАРОЛЬ telefon > $n.telefon.dump.sql mount -t nfs -o 'vers=3' КРАСИВЫЙИП:/mnt/rm1/arch/stat /mnt/arch mv /usr/home/vit/bacup/$n.telefon.dump.sql /mnt/arch/$n.telefon.dump.sql umount /mnt/archПишем в кронтаб запуск #ee /etc/crontab 1 01 * * * root /usr/local/scripts/backup.shНу как-то так. Да, и не забываем о блокировке баз при снятии дампа, думаю для больших баз нужно по изучать "man mysqldump". Enjoy
×
×
  • Create New...