Author Archive

Блокировки в репозитории CVS

Написал admin . Опубликовано в Unix просмотров 152

Так себеПойдетХорошоПонравилосьОтличный пост (No Ratings Yet)
Загрузка...

Видимое пользователем поведение блокировок CVS описано в section Совместный доступ нескольких разработчиков к CVS. Эта глава ориентирована на людей, пишущих утилиты, обращающиеся к репозиторию CVS, не конфликтуя при этом с другими программами, обращающимися к тому же репозиторию. Если вы запутаетесь в описываемых здесь концепциях, как то блокировка чтения, блокировка записи и мертвая блокировка, то обратитесь к литературе по операционным системам или базам данных.

Файлы в репозитории, чьи имена начинаются с `#cvs.rfl’ — это блокировки чтения. Файлы, чьи имена начинаются с `#cvs.wfl’ — это блокировки записи. Старые версии CVS (до @cvsver{1.5}) создавали также файлы с именами, начинающимися с `#cvs.tfl’, но такие файлы здесь не обсуждаются. Каталог `#cvs.lock’ служит основной блокировкой, то есть перед тем, как создавать какую-либо еще блокировку, сначала необходимо создать основную блокировку.

Чтобы создать блокировку чтения, сначала создайте каталог `#cvs.lock’. В большинстве операционных систем операция создания каталога является атомарной. Если попытка создания завершилась неудачно, значит, основная блокировка уже существует, поэтому подождите немного и попробуйте еще. После получения блокировки `#cvs.lock’ создайте файл, чье имя состоит из `#cvs.rfl’, и информацией по вашему выбору, например, имя машины и номер процесса. Потом удалите каталог `#cvs.lock’, чтобы снять основную блокировку. Теперь можно читать репозиторий. Когда чтение окончено, удалите файл `#cvs.rfl’, чтобы снять блокировку чтения.

Чтобы получить блокировку записи, сначала создайте каталог `#cvs.lock’, как и в случае с блокировкой чтения. Затем убедитесь, что в репозитории нет файлов, чьи имена начинаются с `#cvs.rfl’. Если они имеются, удалите `#cvs.lock’, подождите немного и попробуйте снова. Если блокировок чтения нет, создайте файл с именем, состоящим из `#cvs.wfl’ и какой-нибудь информации по вашему выбору, например, имени машины и номера процесса. Не удаляйте блокировку `#cvs.lock’. Теперь вы можете писать в репозиторий. Когда запись окончена, сначала удалите файл `#cvs.wfl’, а затем каталог `#cvs.lock’. Заметьте, что в отличие от файла `#cvs.rfl’, файл `#cvs.wfl’ имеет чисто информационное значение; он не оказывает блокирующего эффекта, который в данном случае достигается использованием главной блокировки (`#cvs.lock’).

Заметьте, что каждая блокировка (чтения или записи) блокирует единственный каталог в репозитории, включая `Attic’ и `CVS’, но не включая подкаталоги, которые представляют собой другие каталоги, находящиеся под контролем версий. Чтобы заблокировать целое дерево, вам следует заблокировать каждый каталог (заметьте, что если вы не сможете получить хотя бы одну блокировку в этом процессе, то следует отменить все уже полученные блокировки, затем подождать и попробовать снова, во избежание мертвых блокировок.)

Заметьте также, что CVS ожидает, что доступ к отдельным файлам `foo,v’ контролируется блокировками записи. RCS использует в качестве блокировок файлы `,foo,’, но CVS не поддерживает такую схему, поэтому рекомендуется использование блокировки записи. Смотри комментарии к rcs_internal_lockfile в исходном коде CVS, где находится дополнительное обсуждение и мотивация.

Защита от легкой flood и ddos атаки по HTTP-протоколу используя mod_dosevasive

Написал admin . Опубликовано в Unix просмотров 550

Так себеПойдетХорошоПонравилосьОтличный пост (No Ratings Yet)
Загрузка...

Защита от ddos
mod_evasive — (mod_dosevasive) HTTP DoS or DDoS attack or brute force attack
Apache модуль для организации защиты от DDoS атак.

Преамбула
Не стоит думать что слабый ddos не сможет нанести ущерба вашему серверу. Например атакующих зомби-машин всего 50-150, все они с толстыми каналами, а вы уехали в командировку или у вас 10-ки серверов и вы не успеваете физически мониторить все.

В таком случае даже не большое количество машин смогут зафлудить канал, или заставить выйти из строя веб сервер apache, mysql, etc. Другое дело когда администратор 24 часа в сутку мониторит сервер, и с легкостью обнаруживает атаки, далее с легкостью и в считанные секунды заносит несколько правил в таблицу фаервола при этом спокойно попивая кофе, продолжает заниматься своими делами. Но такое бывает редко, смотреть сутками и мониторить вывод комманд netstat, top, mtop убийственно для вашего мозга, и глаза устанут, не будет весело это точно, поэтому нужно автоматизировать процесс блокировки атакующих зомби-машин.

Один из методов как защитить свой сервер от флуд атак и слабого ddos-a по http протоколу это установить модуль для веб-сервера Apache — mod_dosevasive.

Настройки прав доступа к FTP серверу

Написал admin . Опубликовано в Unix просмотров 2 292

Так себеПойдетХорошоПонравилосьОтличный пост (1 votes, average: 3,00 out of 5)
Загрузка...

Так как контент сервера расположен на файловой системе хостинговой машины, права доступа к нему управляются при помощи стандартного механизма прав операционной системы UNIX. При регистрации услуги FTP-сервера в домашней директории владельца сервера создается директория pub. Контент сервера должен располагаться в этой директории. При подключении к серверу пользователям доступна только часть файловой системы, лежащая ниже этой директории, т.е. пользователи видят эту директорию как корневую (‘/’) и не могут получить доступ к данным, расположенным вне ее.

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

Смена кодировки у множества файлов

Написал admin . Опубликовано в Mac OS X, Unix просмотров 1 370

Так себеПойдетХорошоПонравилосьОтличный пост (No Ratings Yet)
Загрузка...

Перед пользователем, переходящим с Windows на Mac, порой может встать задача, невыполнимая, на первый взгляд, в разумное время. Это перекодирование большого количества текстовых файлов (Notepad, etc.) в кодировку используемую в MacOSX. Или обратно — в случае регулярного обмена файлами с Windows-пользователями.

Использование команды iconv

* Запустите Terminal

* Перейдите в каталог с файлами, которые Вы хотите преобразовать из кодировки Windows (windows-1251) в кодировку MacOSX (utf-8)

* Выполните следующую команду:

for i in *; do iconv -f windows-1251 -t utf-8 «$i» >tmp; mv tmp «$i»; done

Что можно изменить:

* вместо wildcard «*» можно указать более точное значение, скажем, «*.txt»
* если Вы хотите обратную перекодировку — поменяйте местами входную и выходную кодировки (-f utf-8 -t windows-1251)
* если вы хотите перекодировать между другими кодировками, то вот список поддерживаемых командой iconv кодировок можно получить командой iconv -l

Возможная проблема: если слишком много файлов, может не поместиться в environment (там ограничение на размер). Или куча подкаталогов, которые тоже надо обработать.

Решение:

find . -name «*.txt» | while read i; do iconv -f windows-1251 -t utf-8 «$i» >tmp; mv tmp «$i»; done

Нюансы: ищет во всех подкаталогах от текущего. Не обязательно переходить в обрабатываемый каталог — для этого достаточно будет заменить «.» в параметрах find на имя каталога в который переходить (не забывайте, что имя с пробелами и некоторыми другими символами лучше всего заключать в двойные или даже одинарные кавычки)

Похожие статьи:

Меняем ленточку

Написал admin . Опубликовано в Unix просмотров 80

Так себеПойдетХорошоПонравилосьОтличный пост (No Ratings Yet)
Загрузка...

Перематываем и переводим в офлайн загруженную ленточку

mt -f /dev/tape rewoffl

Вынимаем и загружаем другую

mtx unload
mtx load

Похожие статьи:

Раскидать ssh ключи по машинкам

Написал admin . Опубликовано в Unix просмотров 199

Так себеПойдетХорошоПонравилосьОтличный пост (No Ratings Yet)
Загрузка...

Сначала раскидываем по машинкам в свой хомдир
for i in `seq 1 13`; do echo "copy to host$i"; scp file [email protected]$domain.com:~/; done;

Теперь через sudo уже в конкретное место. Можно было конечно и за раз все сделать…
for i in `seq 1 13`; do echo "copy on host$i"; ssh [email protected]$domain.com sudo cp file /path/name/; done;

Установка Shared memory

Написал admin . Опубликовано в Unix просмотров 481

Так себеПойдетХорошоПонравилосьОтличный пост (No Ratings Yet)
Загрузка...

Можно динамически изменить параметры shared memory

sysctl -a | grep shm

SHMMAX = SHMALL * PAGE_SIZE + 1

Где PAGE_SIZE равно 4096 Б для i386

SHMALL = k * RAM * 1024 / PAGE_SIZE

Где RAM — физическая оперативная память в МБ; k — коэффициент, равный 0.5; PAGE_SIZE — размер одной страницы в КБ, PAGE_SIZE = 4 КБ для i386.

Как читать статистику (vmstat, iostat, top)

Написал admin . Опубликовано в Unix просмотров 1 079

Так себеПойдетХорошоПонравилосьОтличный пост (No Ratings Yet)
Загрузка...

ОПЦИИ КОМАНДНОЙ СТРОКИ TOP

* S — ПОКАЗЫВАТЬ СИСТЕМНЫЕ ПРОЦЕССЫ (КОМАНДА S)
* I — НЕ ПОКАЗЫВАТЬ СПЯЩИЕ ПРОЦЕССЫ (КОМАНДА I)
* T — НЕ ПОКАЗЫВАТЬ САМОГО СЕБЯ (КОМАНДА T)
* MCPU — СТАТИСТИКА CPU
* MIO — СТАТИСТИКА ВВОДА/ВЫВОДА (КОМАНДА M)
* Q — УСТАНОВИТЬ ПРОЦЕССУ TOP НАИВЫСШИЙ ПРИОРИТЕТ
* U — ПОКАЗЫВАТЬ UID ВМЕСТО ИМЕНИ ПОЛЬЗОВАТЕЛЯ
* S — ВРЕМЕННОЙ ПРОМЕЖУТОК МЕЖДУ ОБНОВЛЕНИЯМИ (КОМАНДА S, ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ — 2)
* U — ПОКАЗЫВАТЬ ПРОЦЕССЫ ТОЛЬКО ДАННОГО ЮЗЕРА (КОМАНДА U)
* H — ПОКАЗЫВАТЬ НИТИ (КОМАНДА H)