Tag Archive for 'unix'

FreeBSD: Как проверить firewall ?

Иногда нужно бывает по-быстрому проверить работу firewall - какой трафик пропускается, а какой нет.

Самый быстрый, грубый и неточный способ - это просканировать порты :)

Сканер портов nmap

Ставим приложение nmap


cd /usr/ports/security/nmap
make install

После инсталяции запускаем его, эта команда просканирует порты занимаемые наиболее распространенными сервисами:

nmap -vv -n -F TARGET_IP

Если вам нужно просканировать конкретный порт или диапазон портов (скажем с 1 по 1024)

nmap -vv -n -p 1-1024 TARGET_IP

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Linux VPS: Переносим apache на отдельный порт

Еще одна задача, которая возникла после настройки VPS под свои нужды.

У меня на VPS работает frontend - аккселератор и поэтому мне нужно, чтоб 80-ый порт был бы свободен. А apache при этом использовал бы какой-то другой порт.

Если у вас на VPS стоит панель управления cpanel - в ней придется покопаться.

Переносим apache на порт 8080

Открываем /var/cpanel/cpanel.config и подправляем apache_port=80 на apache_port=8080

Далее - нужно пересоздать конфигурацию - /usr/local/cpanel/whostmgr/bin/whostmgr2 –updatetweaksettings

После этого нужно проверить, что в файле /usr/local/apache/conf/httpd.conf прописался нужный порт

grep Listen /usr/local/apache/conf/httpd.conf

И скрипт, проверяющий работоспособность сервисов, тоже обновил свои настройки:

@www1 /etc> cat /etc/chkserv.d/httpd
service[httpd]=8080,GET / HTTP/1.0,HTTP/1..,/scripts/checkmaxclients;killall -TERM httpd;sleep 2;killall -9 httpd;/etc/rc.d/init.d/httpd stop;/etc/rc.d/init.d/httpd startssl;/usr/local/apache/bin/apachectl startssl;/etc/rc.d/init.d/httpd start;/usr/local/apache/bin/apachectl start
@www1 /etc>

После этого стоит перезапустить apache  (/etc/init.d/httpd restart) и ChkServ (/scripts/restartsrv_chkservd ) — иначе он вас забросает письмами о том, что сервис не работает и будет постоянно его перезапускать.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Как быстро переименовать группы файлов

Иногда нужно бывает быстро переименовать много файлов, при этом делая какие-то хитрые замены в названиях файлов.

Хочу вам показать метод, как это делаю обыкновенно я.Скажем нужно обработать только mp3 файлы:

ls '*.mp3' > filelist
ls '*.mp3' > filelist1

Итак у нас два списка файлов. Правим filelist1 и заменяем там имена на то что нужно. При этом не меняем порядок строчек.

Зачем это делать внутри файла? Потому что можно его редактировать при помощи vim, а там возможности по автоматической замене текста просто огромные.

Итак, у нас есть отредактированый файл. Набираем

paste filelist filelist1 | sed 's/^/mv /' | sh

И дело в шляпе :)

Самое важное здесь - это команда paste, которая склеивает два текста вместе. Все подробности о работе - в базовом курсе по Unix.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Linux VPS: Backup MySQL баз данных

Предыдущие записи: Переезд Backup Выбор хостера

Да, в продолжение темы Backup-а хостинга и переезда.

Как правильно перемещать базы MySQL?

В идеале, стоит выключить MySQL сервер, потом скопировать базы. Но это в идеале. В действительности получается либо приходится копировать с живых баз - потому что серверу нельзя простаивать, либо приходится копировать уже с упавшего сервера.

Как копировать базы с работающго MySQL сервера ?

Есть цивилизованый вариант при помощи mysqldump - он неплохо работает, но если при этом происходят изменения в базе данных - то потом будет проблема синхронизировать сервера.

Самый цивилизованый и правильный вариант - это настраивать синхронизацию master/slave. Перегонать всю базу на slave, а потом уже с него и запускать. НО! Есть несколько но - это сложнее и это требуется только на тех хостах, где нельзя допустить даже кратковременного отключения базы.

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

  • Делаем копию базы на новом хосте при помощи rsync или tar.gz - без разницы чем
  • Останавливаем MySQL сервер
  • Делаем окончательную синхронизацию при помощи rsync
  • Поднимаем MySQL сервер на новом хосте и перенастраиваем все приложения на него

Как правильно копировать “упавшие” базы MySQL?

Тут, поскольку уже все и так само упало, процесс немного проще.

  • Копируем все базы на новый хост (rsync/tar.gz)
  • Прогоняем по ним myisamchk , если база хранилась исключительно в InnoDB - тогда этот шаг не нужен. (Как это делать и как ускорять процесс - есть в книжке по FreeBSD+apache+mysql+php , на Linux процедура ничем не отличается ).
  • Запускаем MySQL сервер уже на новой машине

Ну как, есть вопросы? Готовы переживать переезд к новому хостеру прямо сейчас? :)

Продолжение, естественно, следует …

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Linux VPS: Падение хостинга или “Пожелай врагу переезд”

Добрый день!

Наверно вы заметили, что этот сайт был недоступен последние несколько дней.  Это последствие того, что мой хостер поступает очень нехорошо и очень плохо обслуживает сайты.

Итак, приготовьтесь - скоро я начну описывать в подробностях, как переежжать с одного VPS  на другой, с чем это связано и как минимизировать убытки и простой сайта.

Что такое VPS?

VPS расшифровываестя как Virtual Private Server — Виртуальный Частный Сервер.  А если просто и в двух словах - то берется один мощный сервер и при помощи какой-либо технологии виртуализации (Xen/OpenVZ) нарезается на много маленьких изолированных друг от друга серверов. У всех у них меньше памяти/дискового пространства/процессорного времени, но зато они существенно дешевле, чем арендовать большой сервер. Тем более когда вам и не нужны мощности выделенного сервера.

Итак

Из чего состоит переезд?

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

Но в целом вам нужно представить этапы:

  1. Делаем предварительный полный backup
  2. Находим новый хост, оплачиваем, получаем к нему доступ
  3. Перекачиваем весь полный backup на новый хост
  4. Поднимаем/восстанавливаем на новом хосте конфигурацию со старого (не всегда это возможно проверить, но тем не менее можно все подготовить) - тут есть много тонкостей
  5. Снижаем время обновления DNS до 5-10 минут
  6. Приостанавливаем/переводим в readonly старый хостинг
  7. Делаем окончательную синхронизацию файлов
  8. Поднимаем все сервисы на новом хосте
  9. Вносим изменения в DNS
  10. PROFIT
  11. Поднимаем время обновления DNS до нормального

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

Итак — следите за обновлениями в блоге. Я буду рассказывать и показывать в примерах, что именно нужно было сделать.

В качестве примера будет испльзоваться CentOS, поскольку он стоит на большинстве нормальных VPS хостингов.

Я буду выпускать бесплатную версию курса - где можно будет просто скачать аудио файлы и послушать их.

Будет так же и платная версия курса

  • доступ во время к онлайн вещания, возможность задавать вопросы на ходу
  • скринкасты
  • примеры скриптов и живой, работающей конфигурации

После окончания переезда (ну и соответственно и курса) я, как всегда, подыму цену — до 4500 рублей.

Я знаю, что запишутся немногие, поэтому там можно смело раздавать вкусные и полезные советы и приемы — все равно большая часть читателей с ними не познакомится :)

Спешите записаться, потому что курс будет идти прямо в режиме online - я сейчас в процессе переезда и буду его подробно освещать.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Ошибки безопасности в FreeBSD, пора обновить систему

Если вы не следите за обновлениями системы FreeBSD, то сейчас
настало самое подходящее время.

Вчера были опубликованы 3 ошибки безопасности в ОС FreeBSD.

FreeBSD-SA-09:11.ntpd

Ошибка в демоне ntdp (синхронизация времени). Возможно выполнение
произвольного кода с правами суперпользователя.

Ошибку можно использовать только если у вас в файле /etc/ntp.conf
стоит опция “autokey”. По умолчанию, у вас этого файла вообще
быть не должно.

FreeBSD-SA-09:10.ipv6

Локальные пользователи могут менять настройки IPv6 стека. Если у
вас нет локальных пользователей, которым вы не доверяете, можете
смело пропускать это предупреждение.

Эта ошибка касается ТОЛЬКО IPv6 , IPv4 ей не подвержен.

FreeBSD-SA-09:09.pipe

Ошибка при использовании pipes (конвейера). Из-за специфичной для
FreeBSD оптимизации есть возможность читать память других
процессов, что можетп риводить к утечке паролей и другой важной
информации.

Если у вас нет локальных пользователей, которым вы не доверяете,
на вас это не распространяется. Но для повышения безопасности
системы все-таки стоит обновить ядрօ.

Успешного make world вам!

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Shell: Автодополнение имен файлов в tcsh

Я давно всем рекомендую использовать tcsh в качестве своей оболочки для работы. В предыдущем посте насчет настроек tcsh я написал, какие настройки нужно поставить.

А вот зачем это нужно:

Автодополнение имен файлов в tcsh

Если у вас есть файл

a12312039akasd.avi

вы можете набрать a.avi<Tab> и получить полное имя файла.

или есть файлы

a.jpg
a.a.jpg
a.a-b.jpg

a.-<Tab> откроет шаблон в a.a-b.jpg

А если будут файлы

a.jpg
a.a.jpg
a.a-b.jpg
a.a-c.jpg

то, скажем, .-<Tab> откроется в a.a- и список возможных оставшихся вариантов :)

Так же с предыдущими настройками tcsh работает и автодополнение имен директорий

Имена директорий и <tab> в tcsh

Если вы введете команду cd и потом нажмете Tab, то тогда tcsh выведет только имена директорий, а не вообще список всех файлов.

Если же набрать ./<Tab> , то тогда tcsh выведет все исполняемые файлы в этой директории и все поддиректории — таким образом помогаю вам сформировать путь к исполняемому файлу.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Удобная конфигурация tcsh и других программ

Давным-давно, я наткнулся на специальную программу для генерации файлов настроек для разных программ и, в частности, для оболочек.

Называлась она The Dotfile Generator.

Проект по утверждению автора уже немного мертвый, но тем не менее он не становится от этого менее полезным :)

Из настроек tcsh, которые вы точно захотите включить в свой .tcshrc файл :)

###---------->command line editor/bindings<----------
### Bindings for the command line editor
### искать взад вперед по истории команд при помощи кнопочек вверх/вниз
### набираете префикс команды - скаем l и кнопочку наверх и он выводит предыдущие
### ls, less, locate и так далее ;)
bindkey -k up history-search-backward
bindkey -k down history-search-forward

###———->completion/misc<———-
### Configuration on filename completion
### автодополнение пути, просто скопируйте :) voodoo magic :) но сильно облегчает жизнь
set addsuffix
set autolist
set complete = enhance
set autoexpand
set matchbeep = nomatch
set recognize_only_executables

###———->files<———-
### configuration of files
set listlinks
set noclobber
set rmstar
set symlinks ignore
umask 066

###———->history<———-
### Configuration of the history mechanism
### злопамятно запоминать много shell команд :) можно увеличить число до 2 тысяч
set savehist = (1000 merge)

###———->logout<———-
### Configuration of logout
### никогда не делать автологаут - только по команде!
set autologout = (0 0)
set ignoreeof = 1

Надеюсь, это сэкономит у вас много секунд в вашей жиззни :)

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Уменьшаем нагрузку на сервер FreeBSD

А вы ведь в курсе, да, что если у вас есть большое количество (от 30-50 и наверх) клиентов, обращающихся параллельно, то в FreeBSD можно неплохо снизить нагрузку на apache сервер.

Часть обработки http запроса можно передать в ядро и оно будет вызывать apache уже только когда эта обрачтка сделана и запрос целиком дошел до сервера.

Одним словом - об этой интересной технике - читайте в книжке ‘Установка и настройка сервера FreeBSD+apache+mysql+php‘.

Это специфичная для FreeBSD штука, но загруженность сервера она понижает :)

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Сохранение резервной копии при работе

Иногда нужно бывает какой-то один файл постоянно сохранять, делать с него резервные копии, что не потерялось.

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

Итак, самописное, хамское решение на коленке.

#!/bin/sh
[ -d backup ] || mkdir backup/

DATE=`date +%Y%m%d%H%M%S`

FILE=”networking1.tex”
DST=”./backup/networking1-$DATE.tex”

cp networking1.tex $DST
gzip $DST

Записываем в какой-нибудь файл backup.sh, делаем chmod 755 backup.sh и, вуаля, после каждого запуска у нас есть сохраненая, сжатая резервная копия файла :)

Имена файлов поменять по вкусу, естественно :)

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).