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

AgR^ Live Blog

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

Архив

Рубрика: FreeBSD

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


1. "chflags noschg /var/empty" - после этого можно удалить не удаляемый пустой каталог.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
27 views

После очередного обновления выяснилось что порт 3proxy не запускается. Время для разбора самое не подходящее — середина рабочего дня. Принял решение откатиться на предыдущую версию. Самое первое что вспомнилось так это portdowngrade.

Начинаем ставить и откатываться:
1. cd /usr/ports/ports-mgmt/portdowngrade
2. make install clean
3. cd /home/user - сюда скачается директория с файлами для отката.

Запускаем с проблемным портом:
1. portdowngrade net/3proxy
получаем вывод кучи ревизий из которых выбираю предпоследнюю и следую совету программы portdowngrade:
/usr/local/sbin/portdowngrade net/3proxy r399259
далее:
самое главное!!! заходим в новую директорию /home/user/3proxy и там выполняем:
make deinstall install clean

Всё! Откатились на предыдущую версию. Осталось перезапустить сервис.
После отката, всё встало на свои места, и заодно отправили баг-репорт.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
422 views

Буквально пару недель назад, стали приходить люди и жаловаться, что не работают переходы с яндекса на нужный сайт(ошибка 400 Bad Request). Стали разбираться. И выяснили, что во всём виноват 3proxy. Но причину такого поведения узнали уже на сайте прокси сервера, пару дней назад. Как оказалось — в яндекс поисковике увеличили длину строки, передаваемой в запросе. И естественно она не умещалась в буфере 3proxy, длина которого на данный момент была 2048 байт. Решение — увеличить буфер в 2 раза.
И поскольку у меня стоит FreeBSD, то я делаю так:
>whereis 3proxy
3proxy: /usr/local/bin/3proxy /usr/local/man/man8/3proxy.8.gz /usr/ports/net/3proxy
> cd /usr/ports/net/3proxy
> make patch
>ee /usr/ports/net/3proxy/work/3proxy-0.6.1/src/proxy.c
Находим такие строчки:
#define BUFSIZE 4096
#define LINESIZE 2048
и меняем на:
#define BUFSIZE 8192
#define LINESIZE 4096
Далее:
>make install clean
>/usr/local/etc/rc.d/3proxy restart

После этого данная ошибка полностью исчезла.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Загрузка...
655 views

В связи с окончанием поддержки php53 на FreeBSD, решил переехать на php55, при этом перескачив ветку php54.
Приступим....

1. Запускаем обновление:
portmaster -o lang/php55 lang/php53
2. сохраняем и (или) распечатываем файл подключаемых модулей - /usr/local/etc/php/extensions.ini , тк он нам ещё понадобится.
3. Удаляем ВСЕ модули начинающиеся с php53-########
pkg delete -f php53-########
...
...
...
pkg delete -f php53-########
и
удаляем также модули начинающиеся с pecl-####### , ессно предварительно сохранив их список (pkg version -v | grep pecl >> ext.txt)
pkg delete -f pecl-#######
...
pkg delete -f pecl-#######

4. Устанавливаем расширения:
cd /usr/ports/lang/php55-extensions
make config
И выбираем все те модули которые находились у нас в файле /usr/local/etc/php/extensions.ini
Жмём ОК и далее:
make install clean

Устанавливаем из портов pecl-####### модули, которые удалили.
5. И напоследок, на всякий случай, а вдруг что то зависящее забыли пересобрать:
portmaster -R -r php55-5.5.18

и оказались правы. Пересобралось ещё с десяток зависящих портов.

6. Проверяем:
php -v
должно вывести информацию о php без вывода ошибок:
-
PHP 5.5.18 (cli) (built: Oct 28 2014 09:08:34)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
-
И ещё так, чисто для профилактики - проверка всех библиотек:
pkg check -Ba

7. Устанавливаем модуль php для apache, тк его вынесли отдельно:
cd /usr/ports/www/mod_php55
make install clean

И фиг....не ставится по причине окончания поддержки apache22 во фре.
Делать нечего. Будем обновляться до apache24

portmaster -o www/apache24 www/apache22
Обновились.
Про все прелести переноса конфигов писать не буду, тк у каждого будет своя пляска с бубном, ибо апач24 это отдельная история.

А теперь подключаем PHP:
cd /usr/ports/www/mod_php55
make install clean
Готово!

Не забываем поправить /etc/rc.conf для запуска apache24.
Запускаем апач:
/usr/local/etc/rc.d/apache24 start

Уффффф. На всё ушло три часа. Но зато теперь веб сервак на фре снова в строю.

И напоследок. Очень важно посмотреть что изменилось. Какие директивы удалены(будут удалены), какие добавились(взамен), чтобы после очередного обновления не получить что-то не работающее как надо.

Вот такое глобальное обновление получилось!

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
1 884 views

Скрывал свой административный email до последнего. Но утечка всё же произошла и адрес попал спамерам в базу. Ставить что то из фильтров не особо охота. Поэтому решил средствами самого postfix-а банить надоедливых пидорасов.

Всё оказалось просто.
Открываем конфиг postfix-а:
>ee /usr/local/etc/postfix/main.cf

и в конце добавляем следующие строчки:
smtpd_sender_restrictions = cidr:/usr/local/etc/postfix/access_ip
smtpd_client_restrictions = cidr:/usr/local/etc/postfix/access_ip
Сохраняем конфиг.

Создаём сам файл access_ip
>touch /usr/local/etc/postfix/access_ip
и заполняем следующим образом:

37.34.84.207 REJECT
71.103.246.189 REJECT
113.240.66.246 REJECT
176.103.48.0/20 REJECT
193.203.48.0/22 REJECT

после даём команду
>postmap /usr/local/etc/postfix/access_ip
и
>postfix reload
Каждый раз когда добавляем новый IP, не забываем выполнять эти две команды!

Ну и как результат — СПАМЕРЫ ОПЯТЬ СОСУТ ХУЙ!!!

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
502 views

Обнаружил сегодня, что порты перестали нормально обновляться через portupgrade.
Стали сыпаться какие то сообщения и прочее.
В общем это напрягло.
И тут подсказали, что с 1 сентября 2014 года — полный переход на pkgng!!!
И тут я вспомнил что всегда это предупреждение вылезало при пересборке портов, которое я успешно стал игнорить.
Но! Нужно исправлять ситуацию.
Приступим:
1. Для начала установим новый pkg
>cd /usr/ports/ports-mgmt/pkg
>make reinstall clean
2. Переустановим portupgrade
>cd /usr/ports/ports-mgmt/portupgrade
>make deinstall clean
>make reinstall clean
3. Конвертируем базу в новый формат
>pkg2ng
На этом всё!
Далее обновляем базу портов и обновляемся
>portsnap fetch update
>portupgrade -u -a
Всё отлично обновилось, никаких ошибок и предупреждений.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
582 views

Решил переехать на mysql server 5.5 тк считаю что пришло то время когда новую версию можно спокойно не огребая кучи проблем, установить.
Начнём.
1. Делаем бэкап всех баз
mysqldump --all-databases > alldb.sql
2. Останавливаем mysql
mysqladmin shutdown
3. Удаляем старую версию
cd /usr/ports/databases/mysql51-server
make deinstall clean
cd /usr/ports/databases/mysql51-client
make deinstall clean
4. Устанавливаем новую версию
cd /usr/ports/databases/mysql55-server
5. Запускаем
/usr/local/etc/rc.d/mysql-server start
6. Восстанавливаем базы
mysql -uroot -ppassword < alldb.sql 7. Делаем обновление mysql_upgrade

На этом всё. Обновил версии на двух серверах. Всё отлично обновилось и работает.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
527 views

Впервые с 2010 года вылезло такое сообщение. Ну чтож. Видимо что то случилось с базой данных. Будем лечить! В качестве движка установлен wordpress. Соответственно и способ восстановления базы описанный ниже подходит для wordpress-a, да и кстати проблема достаточно известная и легко решаемая.
Для этого делаем следующее:
Открыть файл wp-config.php и добавить в него следующую строку:
define(‘WP_ALLOW_REPAIR’, true);
После этого зайти по адресу http://site.ru/wp-admin/maint/repair.php
и нажимаем кнопку — ПОЧИНИТЬ БАЗУ ДАННЫХ.
Если всё ОК! То после исправления ошибки обязательно удаляем строку WP_ALLOW_REPAIR из файла wp-config.php!
Заметка в как раз написана после восстановления базы по данной технологии. Хотя можно было бы починить через PHPMyAdmin.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
719 views

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

mount_smbfs -I 10.0.0.1 //win-user-login@serv2003/install /home/user-freebsd/win-install

А проблема была в том,что вместо serv2003 я указывал IP адрес сервера(10.0.0.1)
В общем вот памятка, чтоб в дальнейшем не косячить.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
621 views

Понадобилось отправлять вложения в почте. Перепробывал встроенный mail, устанавливал mutt, но ни то ни другое нормально не заработало. И вот наконец то подвернулся mpack.
Ставится из портов:
cd  /usr/ports/converters/mpack
make install clean

Теперь можно прикреплять то что хотим и отправлять:
mpack -s "Subject" file.zip email@mail.ru
Тут только один недостаток — прикреплять можно только один файл, но меня это устраивает.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Загрузка...
488 views