Показаны сообщения с ярлыком Unix. Показать все сообщения
Показаны сообщения с ярлыком Unix. Показать все сообщения

26 мар. 2011 г.

Установка Vmware Guest Additions в FreeBSD 8.2

Vmware Guest Additions имеется в портах FreeBSD.
Однако процесс установки имеет два бага.

В портах Vmware Guest Additions находится в директории /usr/ports/emulators/vmware-guestd6/

Переходим в каталог и выполняем: #make && make install

Первую ошибку получаем уже на этапе установки:
install: /usr/ports/emulators/vmware-guestd6/work/vmmemctl-only/vmmemctl.ko: No such file or directory
*** Error code 71

Внимательно посмотрев на список файлов в директории /usr/ports/emulators/vmware-guestd6/work/, видим что как раз там находится, так необходимый системе "vmmemctl.ko".

В качестве костыля выполняем:
#cd /usr/ports/emulators/vmware-guestd6/work/vmmemctl-only/
#ln -s ../vmmemctl.ko vmmemctl.ko

И заново запускаем #make install.

Далее процесс установки вроде бы проходит нормально, и даже завершается установкой каких-то файлов, но если внимательно приглядется, видим:
/libexec/ld-elf.so.1: Shared object "libdnet.so.1" not found, required by "vmware-guestd"
*** Error code 1 (ignored)

Ищем vmware-guestd, и смотрим каких же библиотек ему не хватает:
#ldd /usr/ports/emulators/vmware-guestd6/work/vmware-tools-distrib/lib/sbin32-6.vmware-guestd
vmware-guestd:
libdnet.so.1 => not found (0x0)
libc.so.6 => /usr/local/lib/compat/libc.so.6 (0x280d3000)

В директории /usr/ports/emulators/vmware-guestd6/work/vmware-tools-distrib/lib/lib32-6/libdnet.so.1/ находится одноименная библиотека.
Ее то и не "видит" vmware-guestd.

Копируем ее систему и перезамускаем установку порта:
#cp /usr/ports/emulators/vmware-guestd6/work/vmware-tools-distrib/lib/lib32-6/libdnet.so.1/libdnet.so.1 /lib
#cd /usr/ports/emulators/vmware-guestd6/
#make deinstall
#make install

12 мая 2010 г.

Ubuntu: скрещиваем exim с clamav

Установить и настроить совместную работу MTA Exim4 и Clamav очень просто:

#apt-get install exim4-daemon-heavy clamav-daemon

После этого в системе установлены и настроены MTA Exim4, демон Clamav и демон обновления для Clamav - Freshclam. Настройку они имеют базовую, но для совместной работы у них уже почти все есть.

Недостает следующего:

  1. В файле /etc/exim4/conf.d/acl/40_exim4-config_check_data необходимо раскоментировать строки:

    # Deny if the message contains malware. Before enabling this check, you
    # must install a virus scanner and set the av_scanner option in the
    # main configuration.
    #
    # exim4-daemon-heavy must be used for this section to work.
    #
    deny
    malware = *
    message = This message was detected as possible malware ($malware_name).

  2. В файле /etc/exim4/conf.d/main/02_exim4-config_options необходимо указать путь к fifo демона clamav:
    av_scanner = clamd:/var/run/clamav/clamd.ctl

  3. Для доступа clamav к содержимому писем, необходимо добавить пользователя clamav в группу Debian-exim:
    #gpasswd --add clamav Debian-exim
    Если этого не выполнить в логе экзима получим:
    malware acl condition: clamd: ClamAV returned /var/spool/exim4/scan/1OC8Uk-0001pI-N3: lstat() failed: Permission denied. ERROR

  4. перезапустить демоны exim4 и clamav:
    #service exim4 restart
    #service clamav-daemon restart


После всех этих манипуляций в нашей системе Exim проверяет всю почту на вирусы с помощью демона Clamav.

В данной заметке умышленно опущены все тонкие настройки MTA Exim, такие как защита от Спам и др.

4 мая 2010 г.

Xubuntu 10.04 - Продолжение

За время использования полноценной Ubuntu очень привык к Compiz, особенно в части плагина "Negative". В течение рабочего дня глаза очень сильно устают и пялится в белый экран с мелкими серыми буквами уже тяжело - без "Негатива" никуда...

А тут оказалось его нет :)
Пришлось ставить. Поставил на скорую руку по руководству http://wiki.eeeuser.com/ubuntu:eeexubuntu:compiz_on_eeexubunto

Автозапуск компиза пришлось допиливать самому - файлов обозначенных в инструкции у меня не оказалось.
Методом "Научного тыка" обнаружил что теперь эти настройки указываются в файле /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml.
В нем и заменяем xfwm4 на compiz.

В остальном вроде пока ничего нового, разве что система немного более отзывчива и не лагает так сильно.

По времени работы от батареи тоже изменения не ощущаются - eeePC продолжает от батареи работать до 4,5 часов.

2 мая 2010 г.

Xubuntu 10.04

Поставил на своем нетбуке Xubuntu 10.04.

Задумал переезд давно по причине того, что производительность нетбука перестала устраивать. Толи Ubuntu сам по себе слишком прожорлив, толи правда виноват не слишком быстрый SSD в моем ASUS eeePC 900...

Окончательно на переустановку настроился незадолго до выхода 10.04 и ждал момента "Х".

Момент "Х" настал вчера.
Итак мои первые впечатления:
  • система по сравнению с Ubuntu 9.10 работает значительно быстрее;
  • более минималистична по наличию установленных пакетов, но мне пока стандартных компонентов хватило и это радует;
  • приятной неожиданностью для моих глаз стала темная тема оформления.
Поставил как всегда mc, ipcalc, nmap и wavemon.

Появился еще один неоспоримый плюс переезда - я наконец-то поставил на свой usb-hdd загрузчик и настроил загрузку из iso-образов! :) Именно с него и ставил Xubuntu :)

Теперь пополняю список iso "На все случаи жизни" и добавляю их в меню загрузки.

За инструцией по настройке загрузки с iso-образов идем на opennet (http://www.opennet.ru/tips/info/2339.shtml).

14 янв. 2010 г.

SVN и http-301-error

Возможно для многих не новость, но у меня эта проблема отняла два дня работы и добрую половину мозга :)

Оказалось, что если при выполении, например:
$ svn list http://svn-server/group1/repo

Вы получаете:
svn: Repository moved permanently to 'http://svn-server/group1/repo'; please relocate

А при этом доступ к веб-странице репозитория через браузер есть, то нужно всего-лишь поправить DocumentRoot, как написано тут: http://subversion.tigris.org/faq.html#http-301-error!

Но к этому я пришел только после того как отключил LDAP-аутентификацию.
При включеной - я получал следующее:
#svn import http://svn-server/group1/repo --username="user" --password="pass" --non-interactive
svn: OPTIONS of 'http://svn-server/group1/repo': authorization failed: Could not authenticate to server: rejected Basic challenge (http://svn-server).

22 сент. 2009 г.

Upstart и приложение на tty

По службе работаю над проектом терминального клиента (железного).
Возникла необходимость выводить в одну из tty "отладочную информацию", применительно к нам это IP-адрес машины.

если при использовании стандартного inittab все очень просто - прописываем в конфиге что пускаем скрипт на tty9 (например), то с Upstart пришлось потратить время и немалое.

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

Помогли мне на launchpad'e (https://answers.launchpad.net/upstart/+question/82291).
Все оказалось очень просто:

script
exec > /dev/tty9
watch -n 30 ifconfig
end script

Записываем это в файле /etc/event.d/tty9 (например) и после загрузки на консоли №9 видим вывод ifconfig'a.

24 апр. 2009 г.

Exim4 - фильтруем почту для postmastera в ubuntu 8.10

Думаю многих администраторов почтовых серверов, принимающих сообщения на адрес "postmaster@вашдомен", замучал спам поступающий на этот адрес.

Многие либо меняют адрес постмастера, либо вовсе его отключают.
И то и то с точки зрения rfc822 неверно [2].

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

В [1] и [2] положений запрещающих какую-либо фильтрацию не нашел (если не прав, поправьте, кто знает;).

Модификация стандартного конфига Exim4 в Ubuntu 8.10.



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

Первая проблема - Exim4 позволяет проверить адрес назначения только в acl_smtp_rcpt, а тему письма мы можем проверить только на этапе acl_smtp_data.

Благодаря механизму пользовательских переменных [3], в MTA Exim4 мы имеем возможность передавать данные между разными этапами обработки письма. Переменные acl_m{цыфра} действительны входе обработки письма, их значение сбрасывается по командам HELO, MAIL и STARTTLS. Переменные acl_с{цыфра} действительны в ходе всего соединения.

В стандартной конфигурации Exim4 все проверки проходят на этапе RCPT.
Одной из первых проверок является проверка на указание адреса назначения "postmaster" или "postmaster@your.domain". Здесь мы и будем "запоминать" что это письмо для постмастера:

set acl_m0 = ${if eq{$local_part}{postmaster}{1}{0}}
set acl_m0 = ${if eq{$local_part}{CHECK_RCPT_POSTMASTER}{1}{0}}

ACL теперь будет выглядеть так:

# Accept mail to postmaster in any local domain, regardless of the source,
# and without verifying the sender.
#
accept
.ifndef CHECK_RCPT_POSTMASTER
set acl_m0 = ${if eq{$local_part}{postmaster}{1}{0}}
local_parts = postmaster
.else
set acl_m0 = ${if eq{$local_part}{CHECK_RCPT_POSTMASTER}{1}{0}}
local_parts = CHECK_RCPT_POSTMASTER
.endif
domains = +local_domains : +relay_to_domains


т.е. присваиваем переменной acl_m0 значение "1" если $local_part равно "postmaster" или равно значению макроса "CHECK_RCPT_POSTMASTER".

Макрос "CHECK_RCPT_POSTMASTER" в стандартной для Ubuntu 8.10 конфигурации позволяет легко изменить адрес постмастра. Но еще раз оговорюсь, это идет в разрез с rfc.

Итак мы "пометили" письмо для постмастера.

Проверим тему


Макрос CHECK_DATA_ACL_FILE позволяет указать файл в котором будут расположены наши собственные ACL для проверки письма на этапе команды DATA.
Присваиваем ему значение, создаем файл и пишем свой ACL:

#
# Check subject in messages for postmaster
#
deny
message = We accept messages for postmaster only with Subject: "trouble". Please retry.
log_message = Not valid subject in message for postmaster - Subject=$h_Subject:
condition = ${if eq{$acl_m0}{1}{${if !eq{$h_Subject:}{trouble}{1}{0}}}{0}}


Перезапустим Exim:
#/etc/init.d/exim4 restart

Проверим работу тестовой сессией:
exim -bh 192.168.0.1
helo nethuman
mail from: <>
rcpt to: postmaster
data
Subject: trouble


Источники:



1. MAILBOX NAMES FOR COMMON SERVICES, ROLES AND FUNCTIONS (http://www.rfc-ignorant.org/rfcs/rfc2142.php)

2. STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES (ftp://ftp.rfc-editor.org/in-notes)/rfc822.txt

3. The Exim Specification - Version 4.6x, p. 119. (http://exim.org/exim-pdf-current/doc/spec.pdf)

22 апр. 2009 г.

Exim4 - включаем обработку почтовых алиасов в ubuntu 8.10

В данной заметке я расскажу как включить обработку системных почтовых алиасов Exim4 стандартной конфигурации Ubuntu 8.10.

Здесь рассматривается конфигурация на основе множества файлов в директории /etc/exim4/conf.d, конфигурация на основе плоского файла рассматриваться не будет.

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

Посмотрим исходное состояние данного файла:

#cat /etc/aliases
# See man 5 aliases for format
postmaster: root
root:

Здесь видим, что для ящика "postmaster" уже задан алиас "root".
Так как данный сервер у меня является только фронтэндом для M$ Exchange 2007, и не имеет собственного почтового хранилища и pop3 сервера, естественным будет указать в качестве алиаса для "root" адрес группы рассылки администраторов на основном внутреннем почтовом сервере. Например:

#cat /etc/aliases
# See man 5 aliases for format
postmaster: root
root: admins@zavod.ru

Далее разрешим в Exim4 обработку файла псевдонимов.
В стандартной конфигурации дистрибутива ubuntu 8.10 (возможно и в Debian, не проверял) Exim4 имеет готовый маршрутизатор - находится в файле /etc/exim4/conf.d/router/400_exim4-config_system_aliases.

По умолчанию все строки данного файла закоментированы.
Нам необходимо разкомментировать все строки начиная с "system_aliases".
В моем случае разкомментированы следующие строки:

#grep -v '#' /etc/exim4/conf.d/router/400_exim4-config_system_aliases
system_aliases:
debug_print = "R: system_aliases for $local_part@$domain"
driver = redirect
domains = +local_domains
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/aliases}}

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

делаем
#/etc/init.d/exim4 restart


и проверяем работу
$exim -bh <${some_ipaddr}>


На этом все. - алиасы работают и мы уже получаем отчеты от демона crond о выполнении заданий.

9 апр. 2009 г.

Vnstat - смотрим статистику через веб

Итак, vnstat настроен и собирает статистику.

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

Проблема решается написанием небольшого скрипта для вывода статистики в веб.

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

Сервер линуксовый и чтобы не тянуть лишних зависимостей за скриптом, пишем на Shell:


#!/bin/sh

INTERFACES="LAN:eth0 WAN:eth1 DMZ:eth2"

echo "Content-Type: text/html; charset=utf8 \n\n";
echo '<HTML><head><link rel="stylesheet" href="/style.css" type="text/css" /></head>';
echo "<BODY>";

# evalute variables
for int in `echo ${INTERFACES} \
| sed -e 's/ /\n/g'`;
do
int_name=`echo ${int} | cut --delimiter=: --fields=1`
intf=`echo ${int} | cut --delimiter=: --fields=2-2`

echo "<p><h2>${int_name} interface (${intf})</h2>"
echo '<pre class="tab1">'
vnstat -q -d -i ${intf}
echo "</pre></p>"

done;


Переменная INTERFACES определяет пары "Название интерфейса"-интерфейс по которым необходимо выводить статистику.

Размещаем этот скрипт на сервере, где снимаем статистику с интерфейсов, и настраиваем веб-сервер.



7 апр. 2009 г.

Считаем трафик на интерфейсах сервера

Дано:
Почтовый сервер на базе Ubuntu 8.10
Четыре сетевых интерфейса

Необходимо:
Считать трафик на каждом интерфейсе, вести статистику.

Решение:
vnstat - маленький консольный пакет, который считает трафик на указанных интерфейсах и не загружает систему. Статистика считается отдельно для каждого интерфейса, трафик по ip-адресам и портам не делится. Статистика выводится по запросу с детализацией по часам, дням, неделям и тд.

Хранится статистика в файлах в каталоге /var/lib/vnstat.
Занимает места мало - у меня за три дня работы 4кб для каждого интерфейса, итого 12кб для трех наблюдаемых интерфейсов.

Устанавливаем vnstat:
#apt-get install vnstat

Инициализируем базу данных для каждого необходимого интерфейса:
#vnstat -u -i eth0
#vnstat -u -i eth1
#vnstat -u -i eth2

Далее необходимо сказать vnstat запустить мониторинг интерфейса.
Это можно сделать путем ifdown/ifup для каждого интерфейса,
либо, если нет желания разрывать соединения выполнить для каждого:
#IFACE=eth${i}
#export IFACE
#/bin/sh -x /etc/network/if-up.d/vnstat

где ${i} порядковый номер интерфейса.

Все, мониторинг готов, теперь по прошествии нескольких минут можно смотреть статистику
#vnstat -q

15 янв. 2009 г.

Ubuntu Server 8.10 и GRUB на HP Proliant 580G5

Ставим Ubuntu Server 8.10.

Итак, проблема возникла сразу после окончания установки - машина перезагрузилась и упала в Red Screen of Death.

Так как на экране не успевало появится даже приглашение GRUB сделал вывод, что проблема появилась именно в нем (да и в англоязычных источниках об этом писали, правда применительно к серверам предыдущих поколений).

Дальше грузимся например с диска Ubuntu Desktop, монтируем разделы:

#mkdir /media/root
#mount /dev/cciss/c0d0p2 /media/root
#mount /dev/cciss/c0d0p1 /media/root/boot
#mount --bind /dev /media/root/dev

меняем корень
#chroot /media/root

настраиваем GRUB
#grub
#grub> device (hd0) /dev/cciss/c0d0
#grub> root (hd0,0)
#grub> setup (hd0)

Примечание:
/dev/cciss/c0d0p2 - раздел где размещен корень файловой системы
/dev/cciss/c0d0p1 - раздел /boot

8 окт. 2008 г.

Увеличиваем память больше 4Гб в ОС SCO Unixware 7.1.3

Возникла необходимость нарастить серверу память до 8Гб.

Для того чтобы SCO Unixware пыталась определить больше 4Гб ОЗУ необходимо в файле /stand/boot указать ENABLE_4GB_MEM=YES (см. boot parameters).

перезагружаем машину и смотрим как ОС определяет ОЗУ.

Может понадобится настройка параметров распределения ОЗУ (см. Virtual memory (VM) parameters)

29 июл. 2008 г.

Меняем сетевую карту на машине с ОС UnixWare 7.1.3

Случилось несчастье - сдохла материнская плана.

Сетевая карта была встроенная. Заменили плату, изменился и чип сетевой карты - стала RTL8101L, вместо Intel.

Пляски с бубном вокруг установки драйверов на карту от производителя ничего не дали - драйвера исправно встают, но ОС карту Cвидеть отказывается.

На сайте SCO информацию по данному вопросу найти не удалось.

Сети нет, а машина нужна в работе. Решено было попробовать поставить другую карту, под рукой была 3COM - 3C905C-TX.

Запускаем netcfg, в меню "Hardware" выбираем пункт "Add..", ОС определила карту, спросила какой транспортный протокол использовать на этой карте, спросила настройки TCP/IP протокола и все заработало :)

2 июл. 2008 г.

Делаем образы дисков с помощью dd и gzip

Многие знают про утилиту dd - очень удобный инструмент.
В частности очень хорошо подходит для клонирования дисковых разделов (или целых дисков).

Недавно в ходе нескольких экспериментов выяснил, что такой образ диска можно сильно сжать с помощью GZip.

Например, заполненный на около 5Гб NTFS-раздел объемом 31Гб в сжатом состоянии занимает всего 1.7Гб. Единственное неудобство в том что на моем AMD Athlon 1700+ создание этого образа заняло 50 минут, а подсчет md5-суммы раздела-оригинала и упакованного образа по 12 минут. На системах с более производительным центральным процессором данный процес займет гораздо меньше времени.

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

В ходе тестов на различных разделах степень компрессии несколько шокировала. Например, FAT-16 раздел размером 40Гб был сжат до 30МБ (контрольные суммы проверил - они совпали)!!!

Создаем образ:
#dd if=/dev/sda1 bs=8096 | gzip -9cf > sda1.dd-image.gz

Это занимает время. За процессом можно наблюдать на той же консоли с помощью периодической посылки USR1 сигнала процессу dd.
Для этого на другой консоли выполняем:

#ps | grep dd
определяем pid процесса dd и подставляем его в следующую команду
#watch -n 15 "kill -USR1 $pid_of_dd"

Распаковка образа:
#gunzip -c sda1.dd-image.gz | dd of=/dev/sda1 bs=8096

также можно подсчитать md5-сумму для раздела, чтобы после восстановления проверить правильность распаковки образа:
#dd if=/dev/sda1 bs=8096 | md5sum - > sda1.dd-image.md5

Параноики (бывают ситуации когда лучше потратить время на еще одну перепроверку) могут еще и проверить правильность создания образа:
#gunzip -c sda1.dd-image.gz | md5sum

Приятной всем работы ;)

27 мая 2008 г.

Закрываем IceCast в CHROOT и регистрируем в каталоге dir.xiph.org

Задача изоляции IceCast в CHROOT решается больее чем просто:
1. копируем в директорию изоляции IceCast директории /admin /log /web и их содержимое;
2. правим /etc/icecast/icecast.xml

Решение вопроса с регистрацией в каталоге оказалось мнее простым.
Необходимо добавить в директорию изоляции еще и все подключаемые библиотеки, и возможно некоторые файлы из /etc.

В первую очередь сделал:
# ldd `which icecast`
linux-gate.so.1 => (0xffffe000)
libcurl.so.4 => /usr/lib/libcurl.so.4 (0xb7eba000)
libidn.so.11 => /usr/lib/libidn.so.11 (0xb7e8a000)
libssl.so.0 => /usr/lib/libssl.so.0 (0xb7e4a000)
libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0xb7d0c000)
libtheora.so.0 => /usr/lib/libtheora.so.0 (0xb7cd2000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0xb7ca9000)
libogg.so.0 => /usr/lib/libogg.so.0 (0xb7ca4000)
libxslt.so.1 => /usr/lib/libxslt.so.1 (0xb7c71000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7b58000)
libdl.so.2 => /lib/libdl.so.2 (0xb7b54000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7b3f000)
libm.so.6 => /lib/libm.so.6 (0xb7b18000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7b01000)
libc.so.6 => /lib/libc.so.6 (0xb79bf000)
/lib/ld-linux.so.2 (0xb7efd000)

и затем скопировал все необходимые библиотеки в соответствующие директории в CHROOT.

Как в процессе выяснилось, для регистрации нашего севера в каталоге также необходимо скопировать билиотеку /lib/libresolv.so

Далее создаем в CHROOT директорию /etc и размещаем там файлы:
/etc/host.conf
/etc/hosts
/etc/resolv.conf
/etc/nsswitch.conf

Теперь настраиваем наш source-клиент на регистрацию, заполняем информацию и проверяем как прошла регистрация.

Для тех кто за файерволом необходимо открыть нашему серверу порт 80 на исходящее соединение с dir.xiph.org.

У меня так и не получилось добится от IceCast'a разрешать имена хостов через DNS. Пришлось прописать адрес в /etc/hosts:

# For loopbacking.
127.0.0.1 localhost
192.168.0.21 icecast.rest.str.ru

# End of hosts.

193.218.105.163 dir.xiph.org

23 апр. 2008 г.

Скрипт записи эфира онлайн радио (для использования на радиостанциях)

Продолжаю публикацию своих скриптов.

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

Для чего и изготовил этот скрипт.

Зависимости:
1. нужен собственно Shell;
2. для записи http-потока использован wget.

Протестирована работа с сервером IceCast, думаю будет работать и с другими серверами отдающими звук по http.

Формат вещания он ест любой - напрямую сохраняет часовые (или любой другой продолжительности) куски потока на жесткий диск.

На случай обрыва связи предусмотрена логика востановления соединения через пятисекундные интервалы.

Для записи эфира в режиме 24/7 достаточно прописать его запуск в crontab и добавить логику организации файлов в папки (если есть желание конечно ;) ).

У нас собственно складывается по дням, храним записи 40 дней, для чего используется как раз Скрипт удаления старых файлов и папок

Прошу смотреть и ругать ;)

22 апр. 2008 г.

Скрипт удаления старых файлов и папок.

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

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

Получился такой своеобразный logrotate.

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

Вот сам скрипт: http://gleb.poljakov.googlepages.com/cleanup.sh

2 дек. 2007 г.

SSH-клиент в мобильном телефоне!

Сегодня, читая такой образовательный сайт, как http://bash.org.ru/, наткнулся на упоминание "SSH-клиент в мобильном телефоне"!

Сомневаясь в том что это всеже реальность, решил всеже погуглить.... и как оказалось - я напрасно сомневался!

Статья в Компьюленте

Ну и сам SSH-клиент MidpSSH.

Опробовал. Непередаваемое чувство, господа!

30 авг. 2007 г.

Незакончена глава руководства

Сегодня понял, что закончить перевод 5-ой главы руководства по OpenLDAP не смогу - не хватает знания предметной области.

Если у кого есть время, помогите закончить. - там совсем немного осталось.

Не законченный перевод здесь: http://docs.google.com/Doc?id=dgg22454_17cqzsph

Могу предоставить доступ на редактирование. Для этого нужен ящик на Гугле.

27 авг. 2007 г.

Перевод руководства администратора OpenLDAP

Перевел две главы Руководства.

Прошу всех заинтересованных прочесть, дабы помочь привести текст в наиболее литературный вид ;)

Тексты глав тут:
http://docs.google.com/Doc?id=dgg22454_15hp5bzm
http://docs.google.com/Doc?id=dgg22454_16fvztxg

Оригинал тут:
http://www.openldap.org/doc/admin23/

У кого есть желание не только прочитать, но и поправить - сообщайте
адреса, добавлю в авторы.