FreeBSD timezone для России после перехода на летнее время.

Этой весной в России отменили переход на летнее время. Хорошо это или плохо для всей страны – покажет время. Для нас же, юниксойдов, это скорее проблема. Нужно обновлять файлы timezone. Многие linux дистрибутивы уже это сделали, а вот старушка FreeBSD, как всегда, сама у себя на уме. В RELENG_8 все хорошо, а в старых системах 7.X, 8.X чтобы обновиться, нужно допилить напильником. Ниже я дам несколько линков о теоретической части вопрос, а тут практика:
1) Нужно достать новый файл с описанием европейских timezones.
Сделать это можно или из cvs/svn FreeBSD RELENG_8 или с ftp проекта, который собственно на добровольных началах мейнтейнит базу всех timezone планеты (ftp://elsie.nci.nih.gov/pub/).
2) После получения файла europe версии 8.33 или выше, его нужно положить в /usr/src/share/zoneinfo
3) cd /usr/src/share/zoneinfo && make clean ; make install clean
4) Получили новые файлы в /usr/share/zoneinfo/
5) Проверяем, что все ок. Делается это утилитой zdump, сейчас лето и старая зона должна показывать MSD для Москвы, и MSK для нового файла зоны. Причем время должно быть одинаковым.
# zdump /usr/share/zoneinfo/Europe/Moscow
/usr/share/zoneinfo/Europe/Moscow Fri Aug 12 17:11:22 2011 MSK
6) Если нужно, то копируем /usr/share/zoneinfo/Europe/Moscow в /etc/localtime

Линки:
Статья про время в linux на opennet
Tz database

P.S
Я написал соответствующий PR в FreeBSD, с запросом как же быть с системами, которые будут поддерживать еще несколько лет (7.3 например), но имеют старые файлы зон для России. Мне вежливо ответили, что понимают мое беспокойство, но ничего сделать не могут. В базовую систему изменения вносятся только в случае проблем с безопасностью. Т.е. ждем, когда кто-нибудь придумает, как использовать старый файл зоны для проникновения в систему? Забавно.

P.S 2
Как мне подсказал Максим Коновалов из Russian FreeBSD Team, можно использовать порт:
misc/zoneinfo

P.S 3
Самый простой и самый некрасивый вариант:
cp /usr/share/zoneinfo/Etc/GMT+4 /etc/localtime

Tags: , ,

Пятница, Август 12th, 2011 Советы Нет комментариев

sysctl.conf.local или как настроить sysctl не ломая стандартизацию

Часто парк серверов не такой уж стандартный, как того хотелось бы. И в тоже время хочется держать стандартные настройки на всех серверах, чтобы обновлять и изменять их особо не парясь… Это я к чему? Возникла задача поменять sysctl.conf на одном из серверов, но sysctl.conf должен быть стандартным на всех серверах! Вот незадача! Что же делать?
Ради интереса посмотрел содержание /etc/rc.d/sysctl и нашел в нем

sysctl_start()
{
        parse_file /etc/sysctl.conf $1
        parse_file /etc/sysctl.conf.local $1
}

Разработчики FreeBSD уже подумали о этой проблеме =) Все кастумные настройки добавляем в /etc/sysctl.conf.local

Tags: ,

Понедельник, Февраль 28th, 2011 Советы Нет комментариев

Эмулирование Unix команд при помощи sed

Набрел на интересную страничку. sed во всей своей красе.

UNIX          |  SED
--------------+----------------------------------------------------------------
 cat          |  sed ':'
 cat -s       |  sed '1s/^$//p;/./,/^$/!d'
 tac          |  sed '1!G;h;$!d'
 grep         |  sed '/patt/!d'
 grep -v      |  sed '/patt/d'
 head         |  sed '10q'
 head -1      |  sed 'q'
 tail         |  sed -e ':a' -e '$q;N;11,$D;ba'
 tail -1      |  sed '$!d'
 tail -f      |  sed -u '/./!d'
 cut -c 10    |  sed 's/\(.\)\{10\}.*/\1/'
 cut -d: -f4  |  sed 's/\(\([^:]*\):\)\{4\}.*/\2/'
 tr A-Z a-z   |  sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'
 tr a-z A-Z   |  sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'
 tr -s ' '    |  sed 's/ \+/ /g'
 tr -d '\012' |  sed 'H;$!d;g;s/\n//g'
 wc -l        |  sed -n '$='
 uniq         |  sed 'N;/^\(.*\)\n\1$/!P;D'
 rev          |  sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
 basename     |  sed 's,.*/,,'
 dirname      |  sed 's,[^/]*$,,'
 xargs        |  sed -e ':a' -e '$!N;s/\n/ /;ta'
 paste -sd:   |  sed -e ':a' -e '$!N;s/\n/:/;ta'
 cat -n       |  sed '=' | sed '$!N;s/\n/ /'
 grep -n      |  sed -n '/patt/{=;p;}' | sed '$!N;s/\n/:/'
 cp orig new  |  sed 'w new' orig
 hostname -s  |  hostname | sed 's/\..*//'
Среда, Февраль 2nd, 2011 Новости Нет комментариев

tcp listen queue в Linux

В FreeBSD netstat отличается от netstat linux, причем в лучшую сторону!
Например, netstat -Lan покажет listen queue, что иногда нужно для дебага непонятных проблем. Но в linux аналога нет! ( есть какие-то самодельные патчи на netstat с требованием к ядру 2.6.18+ =) ).
Что же делать? Awk спешит на помощь!
› Прочитать

Tags: , , ,

Понедельник, Январь 31st, 2011 Советы Нет комментариев

Изучаем top в FreeBSD

Вообще, все что я тут буду рассказывать есть или в help top (нажми h во время работы top), или есть в man top.
Если тебе лень их читать (что я, конечно же, не одобряю), то эта заметка для тебя, и мне шпаргалка.
Что такое top и зачем он нужен, я писать не буду, поговорим о приятных возможностях.
Еще хочу заметить, что top меняется вместе с системой, что-то добавляется, что-то меняется, что-то исчезает. Все опции здесь взяты для freebsd 7.3, как наиболее надежной в данный момент. И так поехали!
› Прочитать

Tags: ,

Среда, Декабрь 8th, 2010 Советы Нет комментариев

Обработка сигналов в sh

Сигналы – один из способов взаимодействия между процессами. Отправив определенный сигнал, можно приостановить или возобновить работы приложения, завершить его или сделать с ним еще что-нибудь. Сигнал определяется номером, которому соответствие имя. Посмотрите man signal или наберите kill -l чтобы получить список сигналов.
В скриптах обработка сигналов может быть крайне полезна.
› Прочитать

Tags: ,

Четверг, Декабрь 2nd, 2010 Советы Нет комментариев

sed tips and tricks

Sed – прекрасное средство редактирования текста с отвратительной документацией. В скриптах он часто бывает незаменим, но чтобы выполнить что-то непривычное приходится долго искать интернете нужный пример или долго экспериментировать с разными вариантами. Очень неудобно!
Так что сделаю сделаю себе памятку!
› Прочитать

Tags:

Среда, Ноябрь 24th, 2010 Новости Нет комментариев

Поиск измененных конфигурационных файлов FreeBSD

В продолжение темы mergemaster и обновления системы. Как найти конфигурационные файлы, которые были изменены с момента установки системы? Очень просто – сравнить их с файлами “из коробки”.
› Прочитать

Tags: ,

Среда, Ноябрь 17th, 2010 Советы Нет комментариев

Mergemaster tips and tricks!

При переходе с версии на версию FreeBSD самым неприятным этапом является обновление конфигурационных файлов. mergemaster отнимает массу времени и сил, требует аккуратности и внимательности. Это наверное один из самых неудобных инструментов FreeBSD!
Но на самом деле это не совсем так! Если внимательно изучить, как он работает и разобраться с его ключами, то можно значительно упростить себе жизнь. Не скажу, что обновление станет приятным, но уж оно точно перестанет быть такой головной болью.
› Прочитать

Tags: , ,

Воскресенье, Ноябрь 14th, 2010 Статьи Нет комментариев

epoch converter

Набрел на сайт, на котором очень подробно разбираются все моменты работы с epoch во всех популярных языках программирования: получение времени в epoch, конвертирование времени из human readable в epoch и обратно.

П.С. мне всегда было лень читать линуковый man date, потому я всегда пользовался date -r из FreeBSD, а тут оказывается все так же просто… только во FreeBSD все равно лучше =)

Tags: ,

Пятница, Ноябрь 12th, 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