Советы

mysql_secure_installation cвоими руками во FreeBSD

В большинстве пакетов mysql-server под Linux входи хороший скрипт mysql_secure_installation, которого очень не хватает в порте mysql во FreeBSD. Сделаем все своими руками!
› Continue reading

Tags: , ,

Вторник, Июнь 29th, 2010 Советы Нет комментариев

Как узнать версию CentOS

Для меня, старого FreeBSD-ка, было несколько неожиданно, что команда uname мне не помогла определить версию системы…

% uname -a
Linux servername.ru 2.6.18-164.15.1.el5.028stab068.9 #1 SMP Tue Mar 30 18:07:38 MSD 2010 x86_64 x86_64 x86_64 GNU/Linux
%

Т.е. конечно про ядро мне все тут рассказали, но вот какая версия CentOS? Загадка…
Попробовал иначе:

% cat /proc/version
Linux version 2.6.18-164.15.1.el5.028stab068.9 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Tue Mar 30 18:07:38 MSD 2010
%

Уже лучше, теперь я знаю, что уши CentOS торчат из указанной версии RedHat… Хм, все равно не то!
Вот он, правильный вариант!

% cat /etc/redhat-release
CentOS release 5.4 (Final)
%

Так же есть утилита lsb_release:

% lsb_release -a
LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description:    CentOS release 5.4 (Final)
Release:        5.4
Codename:       Final
%

Tags:

Пятница, Июнь 25th, 2010 Советы Нет комментариев

Вывод сообщения в stderr из shell скрипта

Очень полезная вещь – перенаправление потоков вывода. С ее помощью в shell скриптах можно сделать многое, в том числе и вывод сообщений в stderr. Пример простого скрипта ниже:

#/bin/sh

DEBUG=0

print_debug()
{
  if [ "x$DEBUG" != "x0" ]; then
    echo $* >&2
  fi
}

print_debug hello world

Переменная DEBUG, если не равно 0, указывает, что нужно выводить сообщения в функции print_debug. Обычное echo выводи строку со всеми аргументами функции (переменная $*) в stdout, которые перенаправляется в stderr ( >&2 ).

Tags: ,

Вторник, Июнь 1st, 2010 Советы Нет комментариев

Запись сообщений в syslog из shell скрипта

Логи в скриптах можно вести несколькими способами, один из самых простых – записывать новые сообщения в какой-то файл. Но мне такой подход кажется неправильным. В системе уже есть специальный инструмент для ведения логов syslog. Вот его и стоит использовать!
Для добавления сообщений в syslog есть утилита logger. В принципе может писать сообщения и в отдельный файл. Напишу небольшую функцию, которую можно будет добавлять в любой скрипт для ведения логов.

add_log_message ()
{
 local logger='/usr/bin/logger'
 local tag='My Script'
 local port=514
 local host=localhost
 local facility='user'
 local level='notice'
 local message=$1
  if [ -z $message ]; then
        return 1
  else
    $logger -t "$tag" -p ${facility}.${level} -P $port -h $host "$message"
    if [ "x$?" != "x0" ]; then
        return 2
    fi
  fi
}

add_log_message 'Hello world'

Опция -t задает TAG, фактически TAG можно использовать для идентификации источника сообщения. Так же logger умеет отправлять сообщения syslog-у на другом сервер, т.е. легко можно организовать сбор всех типов логов на один сервер.

logger -P 514 -h logger.domain.ru 'Hello World'

По умолчанию logger пишет все сообщения в facility user с приоритетом notice, но это можно поменять используя ключ -p:

logger -p cron.warning 'Hello world'

Tags: , ,

Среда, Апрель 28th, 2010 Советы Нет комментариев

ipset в CentOS

CentOS отличается некоторой консервативностью в версиях установленного ПО, что иногда приводит к проблемам с установкой нужной программы, не исключением стал и ipset. › Continue reading

Tags: , , ,

Вторник, Апрель 20th, 2010 Советы Нет комментариев

Resize partition in FreeBSD with growfs

It’s hard to say, which partition will grow more during system work at installation time. So in one good day nagios will start alerting you about space shortage! Nowadays it’s not topical problem, but it could happen, as it was with me. › Continue reading

Tags: ,

Пятница, Апрель 2nd, 2010 Советы Нет комментариев

Изменение размера партиции в FreeBSD через growfs

Иногда при установке системы не удается предугадать, какие разделы будут расти больше, а какие меньше и в один прекрасный день nagios начинает орать о нехватке места. Вообще задача встречается все реже, так как диски все больше да и все все чаще создается они большой /. Но вот так случилось, что я с ней столкнулся. › Continue reading

Tags: ,

Пятница, Апрель 2nd, 2010 Советы Нет комментариев

mtree на страже вашей FreeBSD

К сожалению в любом программном обеспечение есть уязвимости и дыры, который могут использовать хакеры в свои целях. С момента выхода обновления или security патча до момента исправления в вашей ОС может пройти какое-то время, т.е. это потенциальная возможность получить управление ваши серверов для злоумышленника, который может оставить закладки для будущего использования даже после того, как вы все исправите. Например он может заменить файл su или sudo, даже ps вместе ls могут стать смертельно опасными! Для защиты нужно отслеживать состояние системных файлов (владельцы, права, размер, хеши и т.п.)!
Tripwire – достаточно сложный и тяжелый продукт, конечно можно поставить из портов, но в FreeBSD уже есть утилита, которая прекрасно справится с поставленной задачей. › Continue reading

Tags: , , ,

Среда, Март 31st, 2010 Советы Нет комментариев

Генерация случайного числа в sh

Для Linux проблема получения случайного числа в скрипте решается переменной $RANDOM, которая специфична для bash и ряда других оболочек. Для FreeBSD с sh все несколько сложнее. Есть несколько решений, например в awk есть функция rand(). Но работа с awk мне не понравилась, так что пойдем другим путем. Получилось так, что мне нужно было получить число из промежутка от 1 до 3. Эту задачу и будем решать:

get_random_number()
{
        local upper=3
        local lower=1
        local random=`/usr/bin/head -n 1 /dev/random | cksum | cut -f1 -d" " | sed 's/^.*\([0-9]\).*/\1/'`
        if [ $random -le $upper ] && [ $random -ge $lower ]; then
                echo $random
                return 0
        else
                get_random_number
        fi
}

/dev/random генерирует для нас произвольные байты, далее подсчитывается их cksum, из него берем одну цифру. Если попадает в нужный диапазон – выходим, если нет запускаем функцию еще раз.

Tags: , ,

Вторник, Март 30th, 2010 Советы Нет комментариев

Как легко запомнить диапазоны разных классов IP сетей!

Для определения класса сети нужно смотреть на первый октет и помнить диапазон. А можно поступить проще!
Сети А класса: 0 – 127.
Или запоминаем, что в битовом исполнении сети класса А всегда выглядят так 0XXXXXXX.
Сети В класса: 128 – 191.
Или запоминаем, что первый октет всегда начинается на 10XXXXXX.
Сеть C класса: 192 – 223.
Или запоминаем, что первый октет 110XXXXX.

Tags: ,

Четверг, Март 25th, 2010 Советы Нет комментариев
Tinkerbell Personal Checks |Garden Planters | Jewellery For Women | Best Dog Foods | Budget Wedding Gowns | Shop For Jewellery | Vintage Jewellery| Diamante Jewellery | Car Finance Credit | DoorStep Loans