воскресенье, 29 июня 2008 г.

Полезные команды exim

Удаление почтового сообщения по ID

# exim -Mrm ID
Список сообщений в очереди
# exim -bpr
Число сообщений в очереди
# exim -bpc
Удаление "замороженных" сообщений
# exiqgrep -zi | xargs exim -Mrm
Принудительная рассылка всей почты в очереди (flush)
# exiqgrep -i | xargs exim -M
"Заморозить" почту по совпадению email с почтовым адресом отправителя
# exiqgrep -i -f email | xargs exim -Mf
Удалить почту по совпадению email с почтовым адресом отправителя
# exiqgrep -i -f email | xargs exim -Mrm
Краткий перевод помощи по exiqgrep
exiqgrep
Выборка из очереди
Без опций будет идентично «exim -bp»
Самая главная опция это «-h», которая выводит список всех опций.
-f <regexp>
совпадение регулярного выражения с адресом отправителя
-r <regexp>
совпадение регулярного выражения с адресом получателя
-s <regexp>
совпадение регулярного выражения с полем размера (именно с полем размера, в том виде как оно указывается при выводе «exim -bp»). Регулярные выражения не надо заключать в «//»
-y <seconds>
выводит сообщения "младше" заданного количества секунд
-o <seconds>
выводит сообщения "старше" заданного количества секунд
-z
только «замороженные» (frozen) сообщения
-x
все, кроме «замороженных» сообщений
-c
Показать только количество совпадений (в зависимости от версии показывает либо просто число, либо фразу типа «15 matches out of 78 messages»)
-l
Показывает полную информацию, как её выводит exim (включено по умолчанию)
-i
Показывает только IDs совпавших сообщений
-b
Показывает совпадения в "кратком" формате. Одна строка: ID, From и To
-R
Выводит сообщения в обратном порядке
Источник: http://www.opennet.ru/tips/

понедельник, 23 июня 2008 г.

Microsoft признал победу ODF над OOXML

Компания Microsoft признала свое поражение в попытке стандартизации формата OOXML. Стюарт МакКи (Stuart McKee), руководитель технологического подразделения Microsoft, на саммите Red Hat в Бостоне, признал поражение OOXML в двухлетней битве стандартов и подтвердил планы по реализации полной поддержки формата ODF в пакете MS Office 2007 SP2, который должен выйти в первой половине 2009 года.
P.S. УРААА!!! Надеюсь ей не удасться насовать туда своих костылей :)

Источник: http://www.opennet.ru

среда, 18 июня 2008 г.

Массовое переименование файлов с помощью утилиты find

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

#!/bin/sh

# Определяем глубину вложенности директорий
depth=$((`find "$1" -type d -print | \
sed -E 's/[^\/]+//g' | \
sort | tail -n 1 | \
wc -c`+1));
# Макрос, переименовывающий файлы и директории
replacer='new="`dirname "{}"`/`basename "{}" | sed "s/ /_/g"`"; if [ "$new" != "{}" ]; then mv "{}" "$new"; fi;';
# Обходим все уровни вложенности
while [ $depth -ge 0 ];
do
# Находим и заменяем
find "$1" -depth $depth -and -name '* *' -print -exec sh -c "$replacer" \;
# Меняем уровень вложенности
depth=$(($depth-1));
done;
Сделаем файл исполняемым
$ chmod +x mass-replace.sh
В качестве аргумента скрипту передается путь до обрабатываемой директории
$ ./mass-replace.sh ~/Warez/Music

понедельник, 16 июня 2008 г.

Делаем EncFS более дружелюбным к пользователю (Ubuntu)

  1. Устанавливаем EncFS
    $ sudo aptitude install encfs
  2. Добавляем текущего пользователя в группу fuse, если он еще не в этой группе
    $ sudo adduser $USERNAME fuse
  3. Создаем директории
    $ mkdir ~/.Encrypted
    $ mkdir ~/"Secret Documents"
    В «~/.Encrypted» будут храниться зашифрованные данные, а в «~/Secret Documents» - монтироваться EncFS. Не забывайте что EncFS требует абсолютные пути, т.е. они должны начинаться с «/».
  4. Создаем и монтируем шифрованное хранилище
    $ encfs ~/.Encrypted ~/"Secret Documents"
    Будет задано несколько вопросов с вариантами ответов и подсказками.
  5. Размонтируем его
    $ fusermount -u ~/"Secret Documents"
  6. Создадим два скрипта, призванные упростить работу с созданным хранилищем.
    • Скрипт №1 будет выполнять роль внешней программы авторизации, вызываемой EncFS.
      Файл: ~/bin/req-pass.sh
      #!/bin/sh
      /usr/bin/zenity --entry --title=Пароль --text='Введите пароль' --hide-text
    • Скрипт №2 упрощает монтирование и размонтирование шифрованного хранилища.
      У скрипта два параметра
      mount
      Монтирует зашифрованное хранилище
      umount
      Размонтирует зашифрованное хранилище
      Файл: ~/bin/encfs-user.sh
      #!/bin/sh

      if [ ! -z "$HOME" ];
      then
      ENC=$HOME/.Encrypt;
      DIR="$HOME/Secret Documents";
      MOUNT="`/bin/grep -E '^encfs[[:space:]]+'$DIR'\>' /proc/mounts`";

      case "$1" in
      mount)
      if [ -z "$MOUNT" ];
      then
      # Назначаем скрипт №1 внешней программой авторизации для encfs
      /usr/bin/encfs --extpass=$HOME/bin/req-pass.sh $ENC $DIR;
      if [ $? -eq 0 ];
      then
      /usr/bin/zenity --info --title=Сообщение --text='Том с документами успешно подключен';
      else
      /usr/bin/zenity --warning --title=Предупреждение --text='Возникла ошибка при попытке подключения тома с документами';
      fi;
      else
      /usr/bin/zenity --warning --title=Предупреждение --text='Том с документами уже подключен'
      fi;
      ;;
      umount)
      if [ ! -z "$MOUNT" ];
      then
      /usr/bin/zenity --question --title=Вопрос --text='Вы действительно хотите отключить том с документами?'
      if [ $? -eq 0 ];
      then
      /bin/fusermount -u $DIR;
      if [ $? -eq 0 ];
      then
      /usr/bin/zenity --info --title=Сообщение --text='Том с документами успешно отключен';
      else
      /usr/bin/zenity --warning --title=Предупреждение --text='Возникла ошибка при попытке отключения тома с документами';
      fi;
      else
      /usr/bin/zenity --info --title=Сообщение --text='Том с документами не был отключен';
      fi;
      else
      /usr/bin/zenity --warning --title=Предупреждение --text='Том с документами уже отключен'
      fi;
      ;;
      esac;
      fi;
  7. Проверим работу скрипта в консоли.
    Смонтируем хранилище
    $ ~/bin/encfs-user.sh mount
    Скрипт запросит пароль и в всплывающем окне выведет результат работы скрипта.
    Теперь размонтируем
    $ ~/bin/encfs-user.sh umount
  8. Осталось создать ярлыки в оконном менеджере для запуска скрипта. :)

четверг, 12 июня 2008 г.

ISO заморозил принятие OOXML

После того, как четыре национальных комитета подали протест против стандартизации формата документов Office Open XML (OOXML), Международная Организация по Стандартам (ISO) и Международная Электротехническая комиссия (IEC) на заседании в Женеве приостановили процесс опубликования стандарта.

В своем заявлении ISO объявила, что планируемая ранее публикация ISO/IEC DIS 29500 откладывается до принятия решений по поданным претензиям. Согласно процедуре, это должно произойти в конце июня, когда ISO и IEC передадут свои заключения профильным комитетам для принятия окончательного решения.

Против ускоренной сертификации OOXML официально выступили Бразилия, Индия, ЮАР, Дания и Венесуэла. Озабоченность вызвало отсутствие консенсуса по вопросу, какие изменения должны быть внесены в спецификацию (которая занимает 6000 страниц), а так же то, что возражения не были поставлены на обсуждение в индивидуальном порядке

Источник: http://www.opennet.ru

среда, 11 июня 2008 г.

Смена забытого пароля root в FreeBSD

Сменить пароль можно следующим образом:

  1. Загрузиться в режиме «Single user».
  2. Перемонтировать корневую ФС в режиме чтения/записи
    # mount -u /
  3. Изменить собственно сам пароль root
    # passwd
    Changing local password for root
    New Password:
    Retype New Password:
  4. Выйти из режима «Single user» и продолжить загрузку системы
    # exit
Все достаточно просто. Но, если в режиме «Single user» запрашивается пароль суперпользователя (достигается правкой файла /etc/ttys), наш путь несколько удлиняется.
Загружаемся с установочного диска FreeBSD. В главном меню выбираем пункт «Fixit» и далее пункт «CDROM/DVD», запустив аварийную консоль:
  1. Проверяем ФС жесткого диска «/» и «/usr» на случай когда система некорректно завершила свою работу
    # fsck_ffs /dev/ad0s1a
    # fsck_ffs /dev/ad0s1f
    Если вы уверены что эти ФС исправны, можете пропустить этот шаг.
    Учтите, что раздел ФС «/usr» на вашем жестком диске может отличаться от приведенного здесь (/dev/ad0s1f). Чтобы узнать раздел данной ФС, после монтирования корневой ФС просмотреть расположенный на нем файл fstab
    # cat /mnt/etc/fstab | grep /usr
  2. Монтируем корневую ФС
    # mount /dev/ad0s1a /mnt
    и ФС «/usr»
    # mount /dev/ad0s1f /mnt/usr
  3. Входим в изолированное окружение с корневой ФС «/mnt»
    # chroot /mnt /bin/sh
    и меняем пароль пароль рута
    # passwd
    Changing local password for root
    New Password:
    Retype New Password:
  4. Выходим из аварийной консоли и перезагружаемся, не забыв извлечь загрузочный диск из дисковода.

пятница, 6 июня 2008 г.

Почта из jail

После того, как настроил веб-сервер в jail, выяснилось что он не может отправлять письма. Причем из jail не идет никакая почта. Решил проблему так:

  1. Изменил конфигурацию корпоративного почтового сервера так, чтобы он стал релеем для веб-сервера.
  2. Внутри jail проделал следующее:
    # cd /etc/mail && sed -Ei .sed 's/127\.0\.0\.1/mail_server_ip_address/g' *
Появившиеся в директории файлы с расширением «.sed», если все нормально, можете удалить.

понедельник, 2 июня 2008 г.

Интересно кто следующий?

Дания, Бразилия, Индия и ЮАР подали апелляцию на решение ISO принять OOXML как стандарт обмена офисными документами. Думаю, что они тормознут офисный формат от Microsoft на пути к мировому господству и завернут его обратно. :)
P.S. Надеюсь, что наши не останутся в стороне.

UPD:
Венесуэла решила присоединиться к странам, протестующим против OOXML . :)