Тут расписаны лишь малые советы! Почему я считаю что FreeBSD это лучшие решение для сервера? Все очень просто - на FreeBSD в интернете легче найти решение чем на определенный дистрибутив Linux.
Начнем пожалуй с сервера FreeBSD.
Для начала, я решил дать только 4 совета при работе в нем.
1. Первая проблемма когда стоит FreeBSD, это нормальная переносимость системы из-за того, что например на одном ПК корень находится в /dev/ad0s1a, а на другом может быть и /dev/ad6s1a.
Значит после чистой установки идем в перезагрузку и в меню загрузчика жмем 6 и пишем
boot -s
После чего FreeBSD загрузится в монопольном режиме. Представим, что корень находится на /dev/ad0s1a. Тогда пишем команду:
glabel label rootfs0 /dev/ad0s1a
потом впадаем в перезагрузку:
shutdown now
и сново:
boot -s
Далее пишем:
mount -rw /
ee /etc/fstab
меняем строчку: /dev/ad0s1a /dev/label/rootfs0
ctrl+C
exit
shutdown -r now
Теперь, если вытащить жесткий диск из одного сервера и вставить в другой система загрузится, но не до конца, чтобы система полностью была переносима нужно сделать это со всеми разделами!
2. Проблема, это тогда когда внезапно был отключен свет и через кое-какое время сервер сново включается, но система не загружается, так как файловая система была повреждена и нужно ехать в компанию чтобы прописать fsck -y для дальнейшей загрузки и для того, чтобы этого не было можно автоматизировать процесс проверки файловой систмы:
идем ee /etc/rc
после строчки:
HOME=/
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export HOME PATH
пишем то, что нужно проверять при загрузки системы:
fsck -y -f /dev/label/rootfs0
fsck -y -f /dev/label/usr0
fsck -y -f /dev/label/var0
ctrl+c
exit
Минус такого решения в том, что не зависимо правильно ли сервер был отключен или нет, проверка будет проходить в обязательном порядке!
Но если вы правельный пользователь FreeBSD то перезагружаете сервер вы очень очень редко :)
3. Идем далее. Бывает валится интернет через ppp к примеру megaline. Идем в /etc/status_ppp.sh и пишем следующий скрипт:
#!/bin/sh
host='www.ru' # Имя хоста, который будет пинговаться для проверки соединения
if /sbin/ping -c 5 -o $host # Пингуем хост пятью пакетами
then
echo 'conection ok' # Если получен ответ, говорим ОК
echo 'conection ok' >> /var/log/messages # пишем в лог
else # иначе
echo 'conection is down'
echo '$(date +%m%d%g) connect faile' # говорим в лог что было утеряно подключение
/usr/bin/logger Host $host not accessible, ppp will be restarted # Делаем запись в системный журнал
/usr/bin/killall -KILL ppp # убиваем ppp соединение
/bin/sleep 5 # выдерживаем паузу 5 секунд
/usr/sbin/ppp -ddial -nat inet # Запускаем ppp соединение inet имя подключение которое вы указывали в /etc/rc.conf ppp_profile
Далее даем права, командой:
chmod +x /etc/status_ppp.sh.
Идем в crontab.
ee /etc/crontab:
*/5 * * * * root /usr/libexec/atrun #после этой строчки пишем следующие
*/5 * * * * root /etc/status_ppp.sh # добавляем запускать каждые 5 минут
4- Все знают о славных прогах dump, restore - тут просто скрипт:
вносим в ee /etc/unix_backup.sh:
#!/bin/sh
# резервное копирование основных разделов за исключением home
echo 'Начал копирование корневого раздела'
DATE=`date +%Y.%m.%d`
echo 'Начато копирование корневого раздела'
dump -0 -L -f - / | gzip -9 > /backup/unix/root.${DATE}.img.gz
echo 'Корневой раздел скопирован, жду 4 секунды'
sleep 4
dump -0 -L -f - /usr | gzip -9 > /backup/unix/usr.${DATE}.img.gz
echo 'Раздел usr скопирован, жду 4 секунды'
sleep 4
dump -0 -L -f - /var |
gzip -9 > /backup/unix/var.${DATE}.img.gz
Папка unix находится на другом сервре - сделал через nfs- Если хотите атоматизировать, то можно добавить в crontab к примеру следующие правила, которые делают копию каждый день d в 2 часа ночи:
chmod +x /etc/unix_backup.sh
ee /etc/crontab
0 2 * * * root /etc/unix_backup.sh
Этот скрипт делает копию в реальном времени, без перезагрузки!
8. Сервера на *nix славятся удаленным администрированием!
Но что делать если у сервер отсутвсвует статический ip адрес а впн не куда к примеру цеплять?
Но сервером надо управлять хоть даже через ssh!
Есть известный наверника вам сервис dyndns!
Опущу принцип регистрации на !
whereis ddclient
/usr/ports/dns/ddclient
cd /usr/ports/dns/ddclient
make install clean
после установки топаем в ee /etc/rc.conf
и дописываем ddclient_enable="YES"
редактируем конф ee /usr/local/etc/ddclient.conf
daemon=600 # интервал времени за которое сервис должен проверять ваш IP
syslog=yes # писать ли логи?
mail-failure=тут_будет_Ваш_email_который_ввели_при_регистрации # Mail failed updates to user
pid=/var/run/ddclient.pid # record PID in file.
## Detect IP with our CheckIP server
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
## DynDNS username and password here
login=user # имя пользователя который вы вписали на сайте dyndns.com
password=passwd # пароль который вы присвоили пользователю на сайте dyndns.com
## Default options
protocol=dyndns2
server=members. # оставляем без изменений
## Dynamic DNS hosts
domen. # тут пишем список доменов третьего уровня которые вы создали на сервисе dyndns.com
ctrl+c
exit
пишем в терминале /usr/local/etc/rc.d/ddclient start
теперь у вас работает даймон который обновляет ваш динамический ip вашему домену третьего уровня к примеру
я войду в ssh shell вписав с любого места ssh domen.
или например можите зацепить туда свой сайт почту все что захотите это ведь домен!
9. скажем в предыдущей статье вы зарегистрировали домен третьего уровня dyndns или у вас статический ip
но не в любом месте есть putty чтобы подключиться к серверу но всегда есть браузер!
Есть сервис который предоставляет безопастный shell через web браузер и завется это чудо shellinabox
идем в порты
cd /usr/ports/www/shellinabox
make install clean
идем в ee /etc/rc.conf
дописываем
shellinabox_enable="YES"
shellinabox_user="root"
и стартуем сервис /usr/local/etc/rc.d/shellinabox start
и заходим с любой точки мира к примеру domen.:4200
shellinabox по умолчанию слушает пот 4200 и работает через ssl!
Пока что все на сегодня. :)
Пишу впервый раз, поэтому приму критику как самосабой разумеющиеся!
Спсибо за внимание!
Да и если у вас проблемы с FreeBSD спрашивайте - отвечу :)
nbsp;