воскресенье, 30 марта 2008 г.

Монтируем удаленную файловую систему через SSH

Взято с habrahabr

Во время работы часто приходится работать с удаленными файлами, часто через ssh. Gnome позволяет подключиться и работать с данными с помощью утилиты Places->Connect to Server, но, к сожалению, таким образом могут работать не все программы... Vim, например, а так как это основной мой редактор — я искал способ сделать это. И нашел :)


Все, что написано дальше — касается Linux, в частности Ubuntu Linux.
Итак, способ : смонтировать удаленую систему так же, как вы монтируете локальные диски. Сделать такое возможно с поомщью утилиты sshfs.
Для начала надо ее установить вместе с несколькими зависимостями:

$sudo apt-get install sshfs

Потом нужно добавить себя в группу пользователей fuse. Сделать это надо, потому что программа устанавливвается в системные папки, в которые обычным пользователям доступ запрещен. Так, добавляем себя в группу:

$sudo adduser <Пользователь> fuse

Потом создаем директорию для монтирования, например, на рабочем столе:

$mkdir ~/Desktop/test_ssh

Теперь надо выйти с терминала и зайти вновь. Все, теперь мы в группе fuse. Пробуем соединиться с сервером:

$sshfs user@example.com:/stuff ~/Desktop/test_ssh

Если соединение идет не по ключу то, скорее всего, у вас появится запрос на введение пароля с удаленной машины.
Если же вы сразу не получили ошибку fusermount: fuse device not found, try ‘modprobe fuse’ first — проверяйте директорию, там должны появиться файлики :). Если же вылезла ошибка — значит модуль ядра fuse не загрузился автоматом, пробуем загрузить вручную:

$sudo modprobe fuse

Пробуем установить соединение еще раз.
Чтобы отмонтировать это все дело, надо выполнить следующее:

$fusermount -u ~/Desktop/test_ssh

Чтобы каждый раз не вводить такую кучу комманд - создаем(если нету) и редактируем файл ~/.bash_aliases, добавляя в конец такие строчки:


alias testssh='sshfs user@example.com:/stuff ~/Desktop/test_ssh'
alias testssh_umount='fusermount -u ~/Desktop/test_ssh'


Теперь вы сможете монтировать удаленную машину командой testssh, а размонтировать — testssh_umount :)

Настраиваем Apache

Отдаем ява-скрипты и таблицы стилей в сжатом виде:


SetOutputFilter DEFLATE


Кешируем на стороне клиента файлы мультимедиа:


Header set Cache-Control «public»
Header set Expires «Thu, 15 Apr 2010 20:00:00 GMT»


Отключаем мехнизм ETag, который передает значение хеша файла и определяет изменился ли файл:

Header unset ETag
FileETag None

Отключаем заголовок Last-Modified:


Header unset Last-Modified


В почту пришел вопрос об ошибке:

Invalid command ’Header’, perhaps misspelled or defined by a module not included in the server configuration failed!

Для работы инструкции «Header» необходимо загружать модуль mod_headers:

LoadModule headers_module modules/mod_headers.so

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

Конвертация php-скриптов в статику

Предположим, у Вас есть сайт, созданный при помощи php-скриптов и базы данных MySQL. В определенное время сервер перестает нормально работать, так как перегружен посетителями - слишком много запросов.
Как быть? Искусственно ограничить запросы - это значит отбросить посетителей. Наращивать мощности сервера накладно. Оптимизировать скрипты нет времени.
Именно в таком случае поможет тотальная конвертация всего сайта в статический HTML код и отдача его при помощи nginx.

Прежде всего необходимо определить дискретность, с которой происходит обновление информации (допустим, раз в час) и выполнять зеркалирование сайта при помощи команды wget:
wget -m -q -k http://мой.домен/
После этого полученное зеркало синхронизируем с директорией, откуда файлы обрабатывает nginx (предположим, что это /usr/local/html):
rsync -tgu --delete --force мой.домен /usr/local/html
После чего осталось синхронизировать те файлы, которые wget не отзеркалит, например, *.js - java скрипты:
rsync -a --include '*/' --include '*.js' --exclude '*' /путь/к/файлам/сайта/ /usr/local/html/
Это все. Теперь осталось запускать этот код каждый час (или реже) и всю нагрузку возьмет на себя nginx.
Для того, чтобы сохранить доступ к админке CMS, необходимо повесить какой-то поддомен сайта на реальный IP и обращаться к нему.

PSPI - запуск фотошопных плагинов под Gimp

Ну вот, наконец то мне немного подняли кармы, попробую написать здесь свой первый топик...
Итак, чего мне всегда не хватало при работе с GIMP-ом, так это фотошопных плагинов. Да, безусловно, там есть свои средства обработки изображений, но их, нередко, не хватает. Когда, в очередной раз, на "лепре" выложили отфотошопленный фильтром Fractalius снимок, меня заели завидки и я полез дотошно гуглить что-то подобное под гимп. И нашел PSPI - "переходник" между GIMP и "3rd-party Photoshop plug-ins (.8bf files)". Линуксовый вариант PSPI был выпущен еще в марте 2006 года, но, как выясняется, он нем знают далеко не все...

Итак, как это делается: заходим на страницу PSPI и выкачиваем архив под свою систему. Лично я качал бинарник под Убунту и хотя там указана версия 5.10, он отлично встал и на 7.10 с Гимпом версии 2.4. Архив распаковываем и файлы pspi и pspi.exe.so кладем в папку $HOME/.gimp-2.4/plug-ins. Далее, создаем отдельную папку для фотошопных плагинов, например $HOME/photoshop-pluins. В нее сваливаем, соответственно, все нужные плагины. Запускаем Гимп, выбираем меню "Расш." (Xtns) а в нем "Photoshop Plug-in Settings" и там добавляем путь с своей папке с плагинами. Перезагружаем Гимп и в меню фильтров получаем любимый набор фотошопных плагинов.

Таким образом, можно сказать, что Гимп приблизился к Фотошопу на довольно близкое расстояние. В сущности, для домашнего использования его уже более чем достаточно...

Photoshop CS2 на Ubuntu

Взято отсюда

Сегодня поставил под wine 0.9.46 Adobe PhotoShop CS2. при установке особых проблем не было, кроме того, что активация ругнулась на нехватку места и отвалилась. Установка завершилась удачно, а дальше начались танцы с бубном вокруг активации.

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

$ recode ucs-2..ascii ./adobe.reg
recode: ./adobe.reg failed: Untranslatable input in step `ISO-10646-UCS-2..ANSI_X3.4–1968’

Побороть это дело каким-либо способом не получилось, а тащить этот файл на виндовую совсем не хотелось. пришлоть рыть англоязычные форумы и в результате в обсуждении этой ошибки на сайте wine нашел более простой метод. Вот он мне и помог. Итак:

1. Создаем симлинк: ln -s /dev/sda ~/.wine/dosdevices/c::
2. Далее временно меняем права на /dev/sda: chmod 666 /dev/sda
3. Запускаем PhotoShop, активируем его и меняем назад права на 660 и симлинк на раздел диска (симлинк можно не менять, у меня без изменений и проблем не замечено).

Собственно говоря вот и весь метод решения проблемы. У меня сейчас стоит CS2 и работает идеально.

Benchmark HDD

hdparm -tT /dev/sda

Benchmark Apache

с Апачем идет тулза для его бенчмаркинга.
Запускаем:

ab -c10 -n500 http://mydomen.dom/index.php

Если завис Linux

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

А вот как его сделать, чтобы не повредить причёску файловую систему. Прибегнем к так называемой магической ядерной кнопке, а именно сочетанию Alt-SysRq (он же PrintScreen) с разными буквами. Понадобятся нам такие, в этом порядке, с учётом, что у нас клавиатура qwerty:
Alt-Sysrq-R переключить клавиатуру в режим XLATE (перехватить управление у иксов)
Alt-Sysrq-E послать всем процессам, кроме инита, решительный привет, то есть SIGTERM
Alt-Sysrq-I послать всем процессам, кроме инита, окнчательный привет, то есть SIGKILL
Alt-Sysrq-S sync. Для последователй старой школы: нажать дважды :)
Alt-Sysrq-U перемонтировать все файловые системы в read-only
Alt-Sysrq-B начать загрузку

Говорят, что эту последовательность (Alt-SysRq-REISUB) можно запомнить как слово BUSIER наоборот. От себя можно добавить, что если хочется освежить в голове эту краткую мнемонику, то можно на консоли нажать Alt-SysRq-H, и будет выдана краткая справка. Для тех, кто не уверен, где у него консоль: надо нажать Ctrl-Alt-F1.


Взято отсюда

Скрипты с интерфейсом

Администрируя потихоньку сервера с Linux, периодически приходится изобретать разного рода скриптики для выполнения ряда узких задач. Иногда эти задачи требуют взаимодействие скриптов с пользователем. Причём, зная уже свою родную систему вдоль и поперёк, изучив десятки команд и сотни их ключей, хочется дать отдыха своему мозгу, сделать для скрипта Интерфейс.
Пример диалогового окна вопроса

Для работы с удалёнными машинами я давно уже пользовался утилитой dialog, позволяющей создавать человеческого вида интерфейсы в скриптах. Как это выглядит знают все, кто устанавливал FreeBSD. Кому интересно: краткое описние dialog на русском и на английском, с большими картинками.

Автоматизируя работу на своём домашнем/рабочем компьютере с GNOME я обнаружил новое, ещё более увлекательное средство для создания интерфейсов в скриптах:

Zenity (Русскоязычное руководство в GNOME Documentation Library)

Освоив этот инструмент, правильный администратор/разработчик может облегчить жизнь себе любимому, своим близким, вынужденным терпеть Linux на домашнем компьютере, сотрудникам в офисе, куда стремительно рвутся всё более удобоваримые дистрибутивы свободной ОС. Удобство скриптования в unix-системах эта программа легко подружит с удобством использования. Не берусь даже обрисовать все возможные применения.

Пример номер 1:
Пропишем себе в crontab:
*/15 0-3 * * * DISPLAY=:0.0 /usr/bin/zenity --warning --title="Пора спать" --text="Завтра на работу"
И система заботливо и настойчиво будет нас клонить ко сну каждые 15 минут с 0 до 3 ночи.

Пример номер 2:
Статус ppp соединения плюс статистика в трее от Злого Ананаса.

Пример номер 3:
Сканируем тучи документов и выполняем обработку изображений офисных документов в пару кликов. Секретарша будет на вас молится. Конечный документ А4 в 200dpi обычного вида (типа счёта с синей печатью и подписью) имеет типичный вес от 60 до 200 килобайт и формат png. Нужны установленные sane-utils и ImageMagic.

#!/bin/sh

TMP="image$$"

while true; do

scanimage \
-p \
--format tiff \
--resolution 200 \
-x 215 -y 297 \
2> ~/$TMP.tiff \
3>&1 1>&2 2>&3 \
| perl -e '$/="\r";$|=1;while(<>){s/^\D+(\d+)\D.*$/$1\n/g;print;}' \
| zenity \
--progress \
--title="Сканирование" \
--text="Сканирую изображение. Пожалуйста, подождите..."

if [ $? -eq 0 ]; then
FILE=""
while [ -z "$FILE" ]; do
FILE=`zenity \
--entry \
--title="Обработка" \
--text="Укажите имя файла для сохранения"`
done
convert $TMP.tiff -level 20%,80%,0.4 -format PNG8 -colors 8 $FILE.png
else
killall scanimage
fi

rm -f $TMP.tiff

zenity \
--question \
--title="Продолжим?" \
--text="Вы желаете продолжить сканирование? Не забудьте положить в сканер новый лист." \
|| return

done

transparent proxy

OpenSuse 10.2 Squid 2.6
Понадобилось на squid сделать transparent proxy при доступе с определенного ip. Так как squid был уже настроен на интегрированную аутентификацию в AD то пришлось добавить в squid.conf

....
http_port 8080 transparent
acl directory_net src 192.168.1.24
http_access allow directory_net
....

И через Yast->system->Sysconfig Editor добавить строку
FW_REDIRECT="192.168.1.24,0/0,80,8080

Делаем реконфигурацию сквида
squid -k reconfigure
перезапускаем firewall

и все с этого ip работает прозрачный прокси

Настройка framebuffer в Ubuntu 7.10

Для чего я себе ставил framebuffer? Объясню он мне нужен для консоли (та которая открывается по Ctrl+Alt+F(1-6)), во-первых для того чтобы поменять там разрешение на 1280х1024 (по умолчанию там 640х480), а во-вторых для просмотра фильмов именно в консоли (многие назовут это извращением, но до сих пор есть такие люди которые умудряются работать только в консоли и им этого хватает с головой) и т.п.

Итак, посмотрим, чем же отличается настройка framebuffer'а в версии 7.10 от предыдущих версий.
А вот чем...

В предыдущих версиях - framebuffer был включен по умолчанию и нам оставалось лишь добавить параметр vga=xxx в строку загрузки kernel в файле /boot/grub/menu.lst . Где xxx=цифра - специальное сочетание разрешения экрана и глубины цвета, посмотреть расшифровку можно в wikipedia.

В версии 7.10 - framebuffer выключен по умолчанию. Так что прийдется немного повозиться, чтобы включить его.

1. Открываем файл /etc/modprobe.d/blacklist-framebuffer:
#
nano /etc/modprobe.d/blacklist-framebuffer

теперь закомментируем строку:
#vesafb
и сохраняем файл.
2. Открываем файл /etc/initramfs-tools/modules:
#
nano /etc/initramfs-tools/modules

добавляем строчки:
fbcon
vesafb
и сохраняем файл.
3. Пересобираем initramfs image
#
update-initramfs -u

4. Открываем файл /boot/grub/menu.lst
#
nano /boot/grub/menu.lst

В опции ядра добавляем нужные параметры. Находим строку начинающуюся примерно на kernel /boot/vmlinuz-2.6.22-14-386 root=... . Дописываем туда параметр vga=0x31b (здесь я использовал параметр для экрана 1280х1024) Если у вас другое разрешение используйте значения из таблицы приведенной ниже:

640x480 800x600 1024x768 1280x1024
256 0x301 0x303 0x305 0x307
32 тыс 0x310 0x313 0x316 0x319
64 тыс 0x311 0x314 0x317 0x31A
16 млн 0x312 0x315 0x318 0x31B

Если вашего разрешения нет в таблице (например, у вас широкоформатный монитор), то воспользуйтесь следующим способом:
5. Устанавливаем программу hwinfo
#
apt-get install hwinfo

6. Запускаем ее с ключем --framebuffer
#
hwinfo --framebuffer

в появившемся списке выберите нужный Mode для вашего разрешения и добавьте его в vga= , как описано выше, в четвертом пункте.

Теперь перегружаемся, переходим в консоль и лицезреем красоту.

by Leolik at 19.02.2008 10:03:18

Оптимизация загрузки и работы системы

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

Начнем с оптимизации скорости загрузки.

Чтобы точно узнать сколько у нас на данный момент длится загрузка системы, воспользуемся программой bootchart:
#
apt-get install bootchart

Теперь после каждой перезагрузки системы, в папке /var/log/bootchart, появляются графики загрузки (в виде .png картинок). Открыв их, вы сможете посмотреть, сколько длилась ваша загрузка и какие программы и демоны запускались дольше всего. В дальнейшем, сравните графики начальной скорости загрузки системы и после оптимизации описанной ниже. Если вам временно надо отключить создание графиков, то надо просто отключить демон программы:
#
/etc/init.d/stop-bootchart


1. Этот способ актуален только для тех, у кого двухядерный процессор или процессор поддерживает технологию hyperthreading. Этот способ называется "Параллельная загрузка".
1.1. Редактируем файл:
#
nano /etc/init.d/rc

1.2. Ищем строку:
CONCURRENCY=none
и заменяем ее на строку:
CONCURRENCY=shell
1.3. Перезагружаемся.
Сразу скажу - данный способ дает реальное уменьшение времени загрузки системы (по крайней мере у меня - загрузка уменьшилась на 30 секунд)
Если после перезагрузки системы у вас появилось сообщение о том, что произошла ошибка HAL, надо сделать следующее:
# # # #
mv /etc/rc2.d/S12hal /etc/rc2.d/S13hal
mv /etc/rc3.d/S12hal /etc/rc3.d/S13hal
mv /etc/rc4.d/S12hal /etc/rc4.d/S13hal
mv /etc/rc5.d/S12hal /etc/rc5.d/S13hal

и все станет на свои места.

2. Этот способ заключается в отключении запуска не нужных программ и демонов.
2.1. Поотключайте не нужные программы с помощью Система -> Параметры -> Сеансы
2.2. Поотключайте не нужные демоны через
#
/etc/init.d/(название программы) stop

2.3. Покопайтесь в файлах rc.* в папке /etc
Данный способ, в зависимости от вашей системы и вашей очистки, может ускорить загрузку системы на 3 - 20 секунд.
ВНИМАНИЕ! Действия, приведенные в данном способе, вы выполняете на свой страх и риск.

3. Этот способ заключается в отключении проверки fat32 разделов диска при каждой загрузке системы.
3.1. Редактируем файл /etc/fstab
#
nano /etc/fstab

3.2. Находим строку(и) в которой(ых) происходит подключение fat32 раздела(ов) и в конце этих строк заменяем последние две цифры на нули. Должно получиться, примерно, следующее:
/dev/hdc1 /mnt/E vfat iocharset=utf8,umask=000 0 0
После перезагрузки - постоянная проверка fat32 разделов вас не потревожит. Теперь можете делать проверку сами, вручную, с помощью команды fsck.

Оптимизация работы системы.

1. Настройка /proc/sys/vm/swappiness и /proc/sys/vm/vfs_cache_pressure.
В псевдофайле swappiness хранится значение (в целых процентах), это уровень свободной памяти, при котором система начнет активно сбрасывать память в своп. Значение по умолчанию: 60. Изменяется значение от 0 до 100.
В псевдофайле vfs_cache_pressure хранится значение - уровень выделяемой памяти под кэш. Значение по умолчанию: 100. Пределов значения, к сожалению не знаю.
1.1. Если вы хотите ускорить работу системы (особенно те, кому жалко не задействованой оперативки во время работы системы), то измените значение системы, примерно, так:
swappiness = 10 , vfs_cache_pressure = 1000 :
# #
echo 10 > /proc/sys/vm/swappiness
echo 1000 > /proc/sys/vm/vfs_cache_pressure

1.2. Если вы хотите больше использовать своп и кэширование файлов (актуально, например, при просмотре мелких картинок и т.п., а так же тем у кого оперативки меньше 128Мб), то измените значение системы, примерно, так:
swappiness = 100 , vfs_cache_pressure = 10 :
# #
echo 100 > /proc/sys/vm/swappiness
echo 10 > /proc/sys/vm/vfs_cache_pressure



2. Настройка CFQ IO Shedule.
Так как в Ubuntu этот параметр, по умолчанию, работает как надо, то приведу этот способ для ознакомления.
CFQ IO Shedule - шедулер ввода-вывода, старающийся выделить временные интервалы для каждого
процесса. При используемом, на многих дистрибутивах по умолчанию, методе anticipatory, процесс, начавший интенсивно работать с диском, может не отдавать временные интервалы другим процессам. На десктопе это приводит к сильным тормозам. Пока какой-то процесс активно работает с диском, перерисовка GUI тормозит, программы запускаются по минуте и т.д. CFQ IO Shedule при значении cfg делает более равномерную загрузку.
2.1. Проверяем какой метод использует CFQ IO Shedule:
#
cat /sys/block/hda/queue/scheduler

если выбран метод anticipatory, то на выводе будет показано следующее:
noop [anticipatory] deadline cfq
2.2. Чтобы заменить его на cfg, делаем следующее:
#
echo cfq > /sys/block/hda/queue/scheduler

и если мы еще раз выведем содержимое файла, то увидим:
noop anticipatory deadline [cfq]
После этого, система начинает более равномерно выделять доступ к диску всем фоновым процессам. Фактически это выражается в том, что система совершенно перестаёт тормозить при 100% загрузке IO Wait (интенсивная работа с винтом, копирование больших файлов и т.п.)

3. Выключаем поддержку IPv6
Этот способ нужен тем, кто совершенно не использует протокол IPv6 (как показывает моя практика - большинству). Отключение IPv6 влияет на скорость отображения сетевых шар, да и вообще скорость работы в сети.
3.1. Редактируем файл /etc/modprobe.d/aliases:
#
nano /etc/modprobe.d/aliases

3.2. Находим строку:
alias net-pf-10 ipv6
и заменяем ее на строки:
alias net-pf-10 off
alias ipv6 off

4. Настройка /etc/hosts
Этот способ ускоряет запуск и работу программ, которые любят обращаться через loopback (например, гномовский терминал).
4.1. Редактируем /etc/hosts
#
nano /etc/hosts

4.2. Ищем строку:
127.0.0.1 localhost
добавляем в конец строки, через пробел имя своего пользователя, под которым вы сидите в системе, в моем случае, получилось так:
127.0.0.1 localhost leolik

5. Настройка java
По умолчанию в системе используется java 1.5, из-за этого многие java-приложения ужасно тормозят. Исправляем это положение, заставляя все приложения работать на версии java 1.6. Если у вас не установлена версия java 1.6, установите ее через Synaptic.
5.1. Вводим в консоль:
#
update-alternatives --config java

5.2. В появившемся списке ищем строку: /usr/lib/jvm/java-6-sun/jre/bin/java
и применяем ее, введя номер этой строки.

Оптимизация файловой системы.

1. Этот способ предназначен, только для систем с фс EXT3 и ReiserFS.
1.1. Редактируем файл /etc/fstab :
#
nano /etc/fstab

1.2. Ищем строку корневой системы, пример:
UUID=1592eed8-e490-4839-98cb-e4cd4d4f920
0 / ext3 defaults,errors=remount-ro 0 1
Изменяем ее на такую, пример:
UUID=1592eed8-e490-4839-98cb-e4cd4d4f9200 / ext3 defaults,errors=remount-ro,noatime,data=writeback 0 1
1.3. Редактируем файл /boot/grub/menu.lst
#
nano /boot/grub/menu.lst

1.4. Ищем строки, начинающиеся на: # defoptions и # altoptions и добавляем в конец этих строк: rootflags=data=writeback
Должно получиться:
# defoptions=quiet splash rootflags=data=writeback
и
# altoptions=(recovery mode) single rootflags=data=writeback
1.5. Вводим команду для обновления файла menu.lst:
#
update-grub

ВНИМАНИЕ! Это привет к обновлению файла menu.lst, также, как если бы вы обновили ядро системы, перепишет файл с дефолтными настройками, но добавит введенные выше изменения.

2. Этот способ предназначен, только для систем с фс EXT3 и применяется после первого способа.
2.1. Вводим в терминале (замените /dev/hdd1 на ваш диск с корневой системой / ):
#
tune2fs -o journal_data_writeback /dev/hdd1

2.2. Перезагрузитесь.
Должна возрасти скорость при работе с видео, изображениями и аудио файлами.

by Leolik at 19.02.2008 09:01:42

Изучаем CronTab

Изучаем CronTab – это утилита позволяющая в определенный день и час автоматически запускать различные программы или скрипты. Согласитесь, очень удобно.

Структура файла с заданиями для CronTab.

* * * * * command
- - - - -
| | | | |
| | | | +----- День недели (0 - 6) (Sunday=0)
| | | +------- Месяц года (1 - 12)
| | +--------- День месяца (1 - 31)
| +----------- Час дня запуска (0 - 23)
+------------- Минута часа для запуска (0 - 59)

command запускаемая программа или скрипт.

Значок * задаёт параметр (день, год, месяц, час).

Пример

01 * * * * command запуск программы или скрипта каждый час в одну минуту.

* 6 * * * command запуск программы или скрипта каждый день в 6 часов утра.

Значения могут быть числом, трех-буквенным названием, а так же диапазоном например запись «1-5» в поле day будет означать «с понедельника по пятницу». Значения могут отделяться запятыми: «1,15,31» в поле day будет запускать указанную команду 1-го, 15-го и 31-го числа каждого месяца.

Все пять полей времени допускают использование символа звездочка – «*», который обозначает «использовать любое допустимое значение» для этого поля.

Для создания задания используйте ниже приведённые команды:

crontab -e Изменит Ваш crontab файл или создаст новый.
crontab -l Отобразит содержимое существующего crontab файла.
crontab -r Удалит Ваш crontab файл.
crontab -v Отобразит когда в последний раз Вы изменяли свой crontab файла.

Сложно работать с консольным редактором?
Правьте файлы привычным текстовым редактором... Например используйте Gedit.

Файлы с заданиями можно найти тут:
/usr/lib/cron
Основной каталог команд, связанных со временем.
/usr/spool/cron/crontabs
Каталог файлов регулярных действий.
/usr/lib/cron/log
Учетная информация.
/usr/lib/cron/cron.allow
Список пользователей, которым разрешено выполнять команду crontab.
/usr/lib/cron/cron.deny
Список пользователей, которым запрещено выполнять команду crontab.
crontab

by exelens at 15.02.2008 07:08:30

Производительность видеокарт

Если новая видеокарта находится в одном-двух пунктах от старой, то смысл модернизации сомнителен, вы вряд ли ощутите разницу в производительности. Если же отрыв три или более пункта, то можно подумать и над обновлением.
GeForce Radeon
8800 GTS 512MB, 8800 GTX, 8800 Ultra 3870 X2
8800 GTS 640 MB, 8800 GT 512MB HD 2900 XT, 3870
8800 GT 256MB, 8800 GTS 320MB HD 2900 PRO, 3850
7950 GX2, 8800 GS, 9600 GT X1950 XTX
7800 GTX 512, 7900 GTO, 7900 GTX X1900 XT, X1950 XT, X1900 XTX
7800 GTX, 7900 GT, 7950 GT X1800 XT, X1900 AIW, X1900 GT, X1950 PRO, HD 2900 GT
7800 GT, 7900 GS, Go 7950 GTX, 8600 GTS X1800 XL, X1950 GT, Mobility X1800 XT
6800 Ultra, 7600 GT, 7800 GS, Go 7800 GTX, Go 7900 GTX, 8600 GT X800 XT (& PE), X850 XT (& PE), X1650 XT, X1800 GTO, Mobility X1900, HD 2600 XT, 3670
6800 GT, 6800 GS (PCIe), Go 7800, Go 7900 GS, 8700M GT X800 XL, X800 GTO2/GTO16, Mobility X800 XT, HD 2600 PRO, Mobility HD 2600 XT, 3650
6800 GS (AGP), Go 6800 Ultra, Go 7600 GT, 8600M GT X800 GTO 256mb, X800 PRO, X850 PRO, X1650 GT, Mobility HD 2600
6800, Go 6800, 7300 GT GDDR3, 7600 GS, Go 7700, 8600M GS X800, X800 GTO 128mb, X1600 XT, X1650 PRO, Mobility X1800
6600 GT, 6800LE, 6800 XT, 7300 GT DDR2, Go 7600 (128-bit), 8500 GT 9800 XT, X700 PRO, X800 GT, X800 SE, Mobility X800, X1300 XT, X1600 PRO, HD 2400 XT
FX 5900, FX 5900 Ultra, FX 5950 Ultra, 6600 (128-bit), Go 6800 (128-bit) 9700, 9700 PRO, 9800, 9800 PRO, X700, X1300 PRO, Mobility X1450, X1550, Mobility X1600, Mobility X1700, HD 2400 PRO, Mobility HD 2400 XT, Mobility X2500
FX 5800 Ultra, FX 5900 XT, Go 6600, Go 7600 (64-bit), Go 8600M GS 9500 PRO, 9600 XT, Mobility 9800, 9800 PRO (128-bit), X600 XT, Mobility X700, X1050 (128-bit), Mobility X1350, Mobility X1400, Mobility X2300, Mobility HD 2400
4 Ti 4600, 4 Ti 4800, FX 5700 Ultra, 6200, 8400 GS 9600 PRO, Mobility 9700 (128-bit), 9800 LE, X600 PRO, Mobility X600, Mobility X1300, Xpress 1250, Mobility HD 2300
4 Ti4200, 4 Ti4400, 4 Ti4800 SE, FX 5600 Ultra, FX 5700, 6600 (64-bit), 7300 GS, 8400M GS 9500, 9550, 9600, Mobility 9600, X300, X1050 (64-bit)
3 Ti500, FX 5200 Ultra, FX 5600, FX 5700 LE, Go 5700, 6200 TC, 6600 LE, 7200 GS, 7300 LE 8500, 9100, 9000 PRO, 9600 LE, Mobility 9700 (64-bit), X300 SE, X1150
3, 3 Ti200, FX 5200 (128-bit), FX 5500, Go 5600, Go 6200, Go 6400, Go 7200, Go 7300, Go 7400 (64-bit) 9000, 9200, 9250, Mobility 9600 (64-bit), Mobility X300
FX 5200 (64 bit), 6100, 6150, Go 7200, Go 7400 (32-bit) 9200 SE, Xpress 200M, Xpress 1000, Xpress 1150
2 GTS, 4 MX 440, 2 Ultra, 2 Ti, 2 Ti 200 7500
256, 2 MX 200, 4 MX 420, 2 MX 400 SDR, LE, DDR, 7000, 7200
Nvidia TNT ATI Rage 128

отсюда

Перемонтируем /home на новый HDD в Ubuntu Linux

  • Feb. 27th, 2008 at 10:53 PM
Отсюда взято

В самом начале своего знакомства с unix-like системами я всегда выделял очередному линуксу/фре достаточно мало места, по умолчанию я использовал Windows XP и львиная доля HDD всегда доставалась этой ОС. С тех пор много чего изменилось, а я и не заметил, как уже более полугода работаю, выхожу в Интернет, слушаю музыку, смотрю фильмы, ТВ, etc находясь в своей уже полюбившейся(удобной, надёжной, защищённой и далее по тексту) ОС, а в Windows загружаюсь очень и очень редко - поиграть (да, есть такой грешок за мной :)).

Логично, что места на разделах, выделенных для линукса, стало катастрофически не хватать, особенно в своей домашней директории /home. Разумным выходом из сложившейся ситуации мне показалось следующее решение - перемещение /home на отдельный свободный (благо он есть) винчестер, в этой роли выступает Seagate SATA 80 Gb.
Первое место, где я ищу информацию по интересующему меня вопросу, это... нет, не Google, с недавних пор это планета runix.org. Полезной оказалась заметка mczim`a.
После этого я нагуглил вот это(англ.) небольшое руководство. Итак.

После подключения винчестера по всем правилам, он у нас должен появиться в /dev. В моем случае появился /dev/sdb.
Во-первых, форматируем наш новый винчестер и создаем раздел:

# fdisk /dev/sdb
# mkfs.ext3 /dev/sdb1

Проверить, что все идет по плану можно командой:

# fdisk -l

После этого, монтируем наш новый hdd в какое-нибудь место, например в /share/newhome, копируем содержимое папки /home в /share/newhome и не забываем после копирования отмонтировать новый hdd:

# mount /dev/sdb1 /share/newhome
# cp -vax /home /share/newhome
# umount /dev/sdb1

Теперь прописываем новый hdd в /etc/fstab. Тут есть одна тонкость - дело в том, что в Ubuntu в /etc/fstab вместо названий устройств (/dev/hda1, /dev/hda2, etc) используется UUID. Чтобы узнать UUID нашего нового hdd выполняем команду:

# ls -l /dev/disk/by-uuid/

Предварительно, на всякий случай, сделав резервную копию /etc/fstab, копируем нужный нам UUID вместо UUID старого раздела(надеюсь /home у вас вынесен в отдельный раздел?).
Строка монтирования домашнего раздела в моем случае выглядит так:

# /dev/sdb1
UUID=3dbf409b-c35e-482c-8464-59b85528f714 /home ext3 defaults 0 2

Тут можно вписать кучу параметров монтирования разделов типа ext3 или поменять режим журналирования - на Ваше усмотрение. По умолчанию ext3 раздел примонтируется в режиме "ordered", а в /var/log/messages будут выведены строчки:

Feb 25 19:13:44 fabian kernel: [ 32.474467] EXT3 FS on sdb1, internal journal
Feb 25 19:13:44 fabian kernel: [ 32.474473] EXT3-fs: mounted filesystem with ordered data mode.

Тут сказано, что это нормально :)

Обратите внимание на последнюю цифру "2" в строчке монтирования раздела. Вначале я по ошибке поставил там единицу, на что при загрузке Ubuntu ругалась, что не может примонтировать раздел. В man fstab по поводу этого параметра сказано следующее:

The sixth field, (fs_passno), is used by the fsck(8) program to determine the order in which filesystem checks are done at reboot time. The root filesystem should be specified with a fs_passno of 1, and other filesystems should have a fs_passno of 2.

Т.е. для "/" должна быть указана единица, а для других ФС - двойка. Поменял на двойку, Ubuntu загрузилась без ошибок.

В исходном руководстве сказано, что можно, не перезагружая компьютер, набрать команду

# mount -a

и наш новоиспечённый /home примонтируется, но тогда при выводе команды

# df -H

вы увидите, что два раздела смонтированы на /home. Чтобы этого избежать, необходимо сначала отмонтировать старый раздел, на котором расположен /home. Отмонтировать этот раздел при рабочей запущенной ОС достаточно не ординарная задача, ведь существует масса процессов, которые "занимают" этот раздел. Вообще говоря, мне показалось, что проще перезагрузиться. :)

Если все прошло как надо, то после перезагрузки, /home уже будет на новом разделе.

Что было у меня ДО:

root@fabian:/home/fab# df -H
Файловая система Разм Исп Дост Исп% смонтирована на
/dev/sda10 12G 9,9G 689M 94% /home


ПОСЛЕ:

root@fabian:/home/fab# df -H
Файловая система Разм Исп Дост Исп% смонтирована на
/dev/sdb1 79G 12G 64G 15% /home


Вот и все.

SSH: Автоматизированный вход с помощью authorized_keys

Входить на удалённый сервер каждый раз вводя пароль довольно утомительно1). Но SSH умеет авторизироваться с помощью rsa или dsa ключей. Рассмотрим только rsa.

Прежде всего надо создать пару ключей.

$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
e7:7d:b6:9c:e9:21:c6:3e:ad:3f:d2:6a:6d:f2:e5:63 user@host

Путь для создаваемого ключа оставляем неизменным нажимая в ответ на запрос ENTER.

Если Вы хотите что бы Ваш ключ был дополнительно подтверждён паролем (произвольным), то задайте его в ответ на запрос passphrase. Если пароль для подтверждения не требуется, то просто нажмите ENTER.

После того, как ключи созданы, нам надо передать публичный ключ (в нашем случае id_rsa.pub) на удалённый сервер.

Сделать это можно с помощью команды:

ssh-copy-id -i ~/.ssh/id_rsa.pub remote-user@remote-host

Здесь следует быть внимательным и не отправить по ошибке на сервер приватный ключ (id_rsa) вместо публичного (id_rsa.pub).

Программа отрапортует о завершении

Now try logging into the machine, with "ssh 'remote-user@remote-host'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

предложив зайти на на удалённый хост. Если всё прошло успешно, то пароль у Вас спрошен не будет. Иначе следует проверить .ssh/authorized_keys.

Так же авторизоваться с ключём не удастся, если Вы отправили не тот ключ. Удалите на удалённой машине ~/.ssh/authorized_keys и повторите засыл с помощью ssh-copy-id.

взято отсюда

О сохранении энергии, батареях и процессорах

Время от времени приходится работать на ноутбуке в условиях, к тому не предназначенных, а так же отвечать на вопросы "как увеличить время работы от батарей". Так как ответы начали повторяться - им место в посте на блоге.


Немного о сохранении энергии
Очень часто приходится удивляться тому, как народ пытается продлить время работы от батарей ноутбука. Многие считают, что в ноутбуке энергию потребляет только процессор. Собственно, с этого начинаются почти все вопросы: какие утилиты, что делать и прочее.
Кое-кто догадывается, что не только процессор потребляет энергию, но ещё и довольно яркий LCD-монитор (особенно с большой диагональю) со своей видеокартой, винчестер и CD/DVD привод. Кроме того, не стесняются в расходе электричества разные беспроводные устройства, такие как WiFi и Bluetooth.

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


Только день простоять, только ночь продержаться...
Итак, стоит задача: с приемлемым комфортом работать на ноутбуке от батарей до возможности подключиться к линии электропитания. При этом можно работать, не замечая перехода на батареи и ни в чём себе не отказывая - тогда не надо удивляться сообщению LOW BATTERY через 30-40 минут (вместо обещанных производителем N часов). Так что если решили удлинять время работы от батарей, то стоит обратить внимание на следующие вещи:

1. Монитор
Замечали, что при переходе на батареи яркость монитора немного падает? Это очень даже неспроста: лампы подсветки, которые стоят перед массивом ЖК-ячеек, потребляют изрядное количество электроэнергии. Так что имеет смысл при переходе на батареи сразу снизить яркость монитора до минимально приемлемой.
Увеличение времени работы от этого будет очень и очень значительным.
Не верите - зайдите в /proc/acpi/ и найдите там информацию о батареях. Особенно обращая внимания на строчку о скорости расхода батарей. Посмотрите на значения при минимальном приемлемом уровне яркости и максимальном.

2. Видеокарта
Собственно, попытка что-нибудь рендерить или играть в крутые игрушки (да ещё под эмуляторами) быстро отправят вас на поиски дополнительной батареи. Современные видеоадаптеры ноутбуков потребляют энергию не скромничая, так что откажите себе в удовольствии дико вращать куб в Compiz/Beryl и работать в нём с захардкоренными настройками.

3. Винчестер
Это ещё одно устройство из самых энергоёмких в системе, так что лучше тяжёлые задачи отложить на потом и поиском на диске не злоупотреблять. В Линукс, правда, это несколько проще: здесь оперативная память используется по полной программе и всё, что только можно, кэшируется. Это хорошая новость: чем меньше система лезет к винчестеру при работе от батарей, тем дольше система будет автономно работать.
По этой же причине хорошо бы не увлекаться запуском всех нужных программ сразу, иначе система будет лезть в своп. Кстати, подкачку можно отключить при работе от батарей:

swapoff /dev/sda2
если раздел со свопом /dev/sda2 (или своп-файл). Можно так же уменьшить склонность системы лезть в своп такой командой:
# echo 10 > /proc/sys/vm/swappiness
Так можно наиграть ещё полчасика до подхода к постоянным энергетическим ресурсам.

4. Оптические приводы и внешние винчестеры
Правило то же самое: как можно меньше обращаться к внешним и оптическим накопителям. Дело это энергетически затратное, что бы там производители не рассказывали. Если задумаете писать DVD-диск от батарей, очень может быть, что энергия кончится раньше, чем он допишется (особенно на фоне компилирующихся приложений и воспроизведения видео на экране в полную яркость).

5. Процессор
Вот мы добрались и до этого, заметьте, в последнюю очередь. Это такой тонкий намёк на то, что только лишь снижением электропитания на нём многого не добиться. Помните: снижая тактовую частоту процессора, вы замедляете свою собственную работу. Какой смысл работать со вдвое меньшей производительностью, если задачи будут выполняться дольше!?
Поэтому станет понятно, почему я назвал это извращением - зачем загонять процессор в режим "undervolt", когда нормальная работа при этом станет невозможной? Драгоценные секунды, которые вы наскребёте таким варварским способом, обратятся в пыль при одном лишь запуске OpenOffice.org...
И всё-таки не стоит пренебрегать снижением тактовой частоты процессора, раз уж производитель процессора предоставил нам такую возможность.
Для того, чтобы управлять частотой процессора, потребуется установить (заблаговременно, конечно) следующие утилиты:
# aptitude install cpufrequtils cpufreqd cpudyn
У меня это отняло около 500Кб места на диске - не очень обременительно.
После этого будет запущен демон, который станет отслеживать загруженность процессора и, в случае простоя, оперативно переводить процессор в режим с меньшим энергопотреблением. Вот что сообщает мой процессор, Intel Pentium M 1.75 ГГц на запрос о его энергетических способностях:
# cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
driver: centrino
CPUs which need to switch frequency at the same time: 0
hardware limits: 798 MHz - 1.73 GHz
available frequency steps: 1.73 GHz, 1.73 GHz, 1.73 GHz, 1.73 GHz, 1.73 GHz, 1.73 GHz, 1.73 GHz, 1.33 GHz, 1.06 GHz, 798 MHz
available cpufreq governors: conservative, ondemand, powersave, userspace, performance
current policy: frequency should be within 798 MHz and 1.73 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency is 798 MHz (asserted by call to hardware).
Так как сейчас я пишу эту заметку и процессор на это много сил не тратит, он переведён в режим "powersave", что разумно: загрузка его не превышает 4-5% (это вместе с запущенным индикатором conky и играющим музыку xmms). Как только я запускаю приложение - он переключается в режим "performance".
current policy: frequency should be within 798 MHz and 1.73 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.73 GHz.

Всё это выполняет демон, чтобы я не отрывался от более важных дел:
root 4958 0.0 0.1 1572 504 ? SNs 09:21 0:10 /usr/sbin/cpudynd -i 1 -p 0.5 0.9 -l 7
Соответственно, чтобы этим воспользоваться, в ядре должно быть включено CPU Frequency Scaling (если оно самосборное, в дефолтном должно быть включено).


Итоги
Когда задумаете продлевать время работы от батарей, не забывайте: не только процессор потребляет электроэнергию. Поменьше вычислительных задач в это время, уменьшайте яркость экрана и обращений к диску и оптическим носителям. Ну и снижение частоты процессора, особенно во время простоя, поможет выскрести из аккумулятором несколько минут драгоценного времени. Лично у меня получалось работать по 6-6.5 часов от полностью заряженных аккумуляторов в автономном режиме на Asus M5200AE, и при этом это не было предельным временем.

Удаленное подключение к запущенной Χ сессии

Отсюда взято

Иногда возникает необходимость подключиться к удаленной Χ сессии, чтобы посмотреть, например, новые сообщения, пришедшие в SIM, или еще что-нибудь в графике (т.е. когда командной строки недостаточно). Конечно, зная это заранее, можно запустить KDE Desktop Sharing (krfb). Но что делать, если krfb заранее не запущена и не сконфигурирована?

В таком случае есть пара решений.
Решение первое, через krfb:
Открываем файлик .kde/share/config/krfbrc и приводим его к следующему виду:

allowDesktopControl=true
allowUninvited=true
confirmUninvitedConnection=false
preferredPort=-1
uninvitedPassword=rusmafia

Запускаем krfb с параметрами krfb --display=:0 &
И подключаемся к машине по VNC, вводим пароль 'rusmafia' и работаем ;) Для увеличения безопасности лучше, конечно же, подключаться через ssh туннель. После завершения работы пароль в конфиге поменяется на зашифрованный.

Оригинальная инфа найдена тут.

Решение второе, при помощи x11vnc
ставим пакет x11vnc, запускаем его командой x11vnc -display :0
и подключаемся к нему по VNC :)

Прислано в комменты камрадом darkk :)

Для Gnome есть аналог krfb - vino (c) Anonymous

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

Отсюда взято

Допустим у нас есть доступ по ssh на сервер где крутятся вкусные локальные сервисы (обычно это например sendmail, mysql, swat, настройки cups.. и все что принято вешать на 127.0.0.1). Задача - получить доступ к этим сервисам на локальной машине.
Для этого воспользуемся возможностью ssh перенаправлять локальные порты.

Рассмотрим на примере перенаправления порта mysql.
1) открываем одну консоль и логинимся там по ssh у нашему серверу следующим образом:
$ ssh -L 33306:127.0.0.1:3306 user@remote.org.ua

После этого на локальной машине будет открыт порт 33306, и все что попадет в этот порт будет перенаправлено
на сервер remote.org.ua, и оттуда подключится к 127.0.0.1:3306 (тоесть к mysql)

2) Тестируем что все у нас получилось.
Подключимся к удаленной базе данных с помощью локального клиента в другой консоли
$ mysql --protocol=TCP --port=33306 -p -u mysql_user

Вот и все Ж:-)

Пока вы будете подключены по ssh к серверу, будете иметь возможность по локальному порту получать доступ к сервису удаленного сервера, который работает локально.

Логи в отдельной консоли

Отсюда взято

Чтобы быстро посмотреть последние сообщения в логах - не обязательно писать в командной строке "tail /var/log/messages". Можно вместо этого выводить нужные сообщения в отдельную консоль. Для этого пропишите в файле /etc/syslog.conf

*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none /dev/tty8

Отредактируйте эти строки так, чтобы получать только нужные сообщения. У меня эта запись просто скопирована с той, что направляется в /var/log/messages. После этого перезапустите сервис syslogd или дайте ему команду перечитать конфиг.
Параметр "/dev/tty8" означает, что соответствующие сообщения будут направлены на 8-ю консоль. Теперь вы можете просто нажимать Alt+F8 (Alt+Ctrl+F8 если вы находитесь в иксах) чтобы увидеть конец лога.

Вместо "/dev/tty8" вы можете ещё написать "|/dev/xconsole" и тогда вы сможете читать лог из иксов командой "xconsole -file /dev/xconsole".
Лично я использую сразу оба варианта.

PS незабываем перезапустить syslogd

Монтирование образов Nero

Взято отсюда
Для монтирования образа созданного в Nero (file.nrg) без его конвертации в iso образ можно воспользоваться командой:
mount -t udf,iso9660 -o loop,ro,offset=307200 file.nrg /mnt

отличный совет
еще много чего интересного в man losetup

мне это помогло смонтировать поврежденную флешку (SD-MMC) с телефона (Siemens m75)

mount -t vfat -o loop,ro,offset=$((16*512*64)) sda.img /mnt/flash/

P.S. кто знает, что скрывается в этих 512k ?

 

Приостановить сессию ssh

Если вы подключились по ssh к удаленному серверу и вам необходимо попасть в шелл того компьютера, с которого запущен ssh, нажмите "~", затем ^Z. Это отправит ssh в фон, как обычную задачу:
debserver:~# ~^Z [suspend ssh]
[1]+ Stopped ssh root@ns.local1.net
zombie:~$

вернуть обратно нужно набрать fg [nr]
где [nr] номер работы(в данном случае 1)
если у вас один jobs то можно просто fg

По материалам http://souptonuts.sourceforge.net/how_to_linux_and_open_source.htm

Создание виртуальной файловой системы и ее монтирование

STEP 1 (Создать 10MB файл)
$ dd if=/dev/zero of=/tmp/disk-image count=20480

По-умолчанию dd использует блоки в 512 байт, поэтому размер получится равным 20480*512

STEP 2 (Создание файловой системы ext3 или ext2)
$ mke2fs -q
или если вы хотите ext3
$ mkfs -t ext3 -q /tmp/disk-image
да, вы можете использовать даже reiser, но тогда придется создать образ диска большего размера.
Что-то вроде "dd if=/dev/zero of=/tmp/disk-image count=50480".
$ mkfs -t reiserfs -q /tmp/disk-image

STEP 3 (Создание директории "virtual-fs" и монтирование. Это нужно делать как root)
$ mkdir /virtual-fs
$ mount -o loop=/dev/loop0 /tmp/disk-image /virtual-fs

Примечание: Если вы монтируете второе устройство, вы должны увеличить номер loop-устройства: loop=/dev/loop1, loop=/dev/loop2, ... loop=/dev/loopn
(Можно не указывать /dev/loopn вообще, но не забывайте, что устройства могут закончиться (по умолчанию их всего 8: loop0...loop7))
Теперь это работает как любой диск. Виртуальная ФС может быть смонтирована и автоматически, при старте системы, если добавить в /etc/fstab такую строчку:

/tmp/disk-image /virtual-fs ext2 rw,loop 0 0

Тогда ее можно будет монтировать, просто написав:
$ mount /virtual-fs

STEP 4 (когда закончите работу с ВФС, отмонтируйте ее)
$ umount /virtual-fs

(Основано на переводе TIP4 с http://souptonuts.sourceforge.net/how_to_linux_and_open_source.htm)

Этот же метод, только с модификациями, можно использовать для создания шифрованных дисков. Для этого нужно, чтобы поддержка шифрования была включена в ядре, были включены в ядре же алгоритмы шифрования и использовались достаточно свежие версии losetup и mount (не помню пакет, в котором это лежит).
Теперь к делу:
STEP 1 - также, как и в оригинале.
STEP 1.1 (здесь мы конфигурируем кольцевое устройство, у нас спросят пароль для создания ключа шифрования. ВНИМАНИЕ! Пароль спросят только один раз, изменить его потом нельзя!):

$ losetup -e aes /dev/loop0 /tmp/disk-image

STEP 2:

$ mkfs -t reiserfs /dev/loop0

далее по тексту. при монтировании указываем в опциях:

mount -o loop,encryption=aes ...

[Vasily Shmelev aka vs-adm]

Настройка безпарольной аутентификации по ssh

Отсюда

Допустим, вам необходимо настроить безпарольный вход по ssh (scp и sftp тоже) на удаленный сервер remote.org.ua под пользователем user.
Если ваш имя вашего локального пользователя совпадает с удаленным, то user@ везде можно опустить.

1) создаем открытый и закрытый ключ нашей локальной системы
$ ssh-keygen -t rsa
жмем энтер отказываясь от ключевой фразы

2) если в системе есть программа ssh-copy-id, то настраиваем удаленную систему на то, что бы оно авторизировало ssh по открытому ключу
$ ssh-copy-id -i ~/.ssh/id_rsa user@remote.org.ua
переходим к шагу 4)

3) если ssh-copy-id нет то можно сделать это ручками. вот последовательность действий с объяснениями

3.1) копируем открытый ключ на удаленную систему
$ scp ~/.ssh/id_rsa.pub user@remote.org.ua:~ незабываем ввести пароль. ведь мы еще не настроили беспарольный вход Ж:-)

3.2) логинимся на удаленный сервер
$ ssh user@remoute.org.ua

3.3) заносим открытый ключ нашей локальный системы в авторизированые ключи удаленной системы, устанавливаем правильные права и убираем за собой мусор:
remote$ [ -d ~/.ssh ] || (mkdir ~/.ssh; chmod 711 ~/.ssh) # создадим ~/.ssh директорию если ее нет и дадим нужные права
remote$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys # добавляем открытый ключ к авторизированым ключам
remote$ chmod 600 ~/.ssh/authorized_keys # и делаем правильные права(иначе ssh откажется брать отсюда ключи)
remote$ rm ~/id_rsa.pub # удаляем ненужное

4) проверяем что все работает. запускаем на локальном хосту
$ ssh user@remoute.org.ua
или например
$ scp .zshrc user@remoute.org.ua:~
должно сработать без пароля Ж:-)

ps
тут рассказан один из вариантов такой же настойки между FreeBSD и Windows XP используя putty
http://it-expert.com.ua/weblog/message/251/

Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH

Взято отсюда

Иногда приходится пользоваться тем, что дали. Мой компьютер, на котором стоит Debian Linux, был занят моей женой. Зато был свободен компьютер с Windows. И вот появилось желание подключиться к своему компьютеры с рабочей станции под управлением враждебной OS. Первым, что пришло в голову - это удаленный рабочий стол. Однако, нашлось более элегантное решение. И, несмотря на заголовок статьи, речь пойдет о немного другой технологии. Взгляните на этот снимок:





Вы видите приложения Linux прямо на рабочем столе Windows! Как же они туда попали?

Немного о теории. В отличие от Windows, в Linux графическая оболочка не является частью ядра системы. Стандартная оконная система для Linux - это X Window System, или, попросту говоря, иксы. Она берет на себя отрисовку графических элементов и взаимодействие с устройствами ввода-вывода. А самое вкусное заключается в том, что эта система имеет прозрачную клиент-серверную архитектуру. Оконная система выполняет роль сервера, а графические приложения - роль клиентов. Как и положено клиентам, они подключаются к серверу и взаимодействуют с ним для отрисовки и для получения событий мыши и клавиатуры.

Но это еще не все! Дело в том, что оконная система может находиться на другом компьютере, а графическое приложение связываться с ней через сеть. Так вы можете запустить приложение на удаленном компьютере, заставив его рисоваться на том компьютере, за которым сейчас работаете. Или наоборот. Или запустить программу на одном удаленном компьютере с отрисовкой интерфейса на другом удаленном компьютере. Заманчивая возможность, неправда ли? :-)

Думаю, достаточно теории, давайте приступим к практике.

Для начала подготовим удаленный компьютер Debian Linux. Все, что нам здесь нужно - это SSH-сервер. Через него мы будем подключаться удаленно и запускать нужные нам программы. Выполняем всего одну команду в консоли:

$ sudo apt-get install openssh-server

Все, с этим компьютером мы закончили, и касаться его клавиатуры в ходе этой статьи больше не будем. Теперь можем переходить к подготовке компьютера Windows. Здесь нужно установить две программы:

1. SSH-клиент. Я установил PuTTY.
2. X Server для Windows. Я выбрал Xming.

Обе программы можно загрузить с сайта SourceForge (пакеты Xming и Xming-portable-PuTTY). Также по желанию можно загрузить стандартный набор шрифтов (пакет Xming-fonts). Все, что загрузили - устанавливаем (с полной установкой всех компонент Xming), и переходим к настройке. Теперь главное не запутаться, что к чему будем подключать :-)

Для начала установим соединение по SSH с удаленным компьютером. Для этого запускаем PuTTY. Вводим IP-адрес компьютера Linux.


Теперь переходим в раздел Connection / SSH / X11 и включаем перенаправление графического интерфейса. В качестве расположения X-сервера водим IP-адрес компьютера Windows, за которым сейчас сидим.


Кроме того, чтобы вместо русских букв не всплыли крокозябли, желательно в разделе Window / Translation установит правильную кодировку (у меня - UTF8 - стандартная кодировка на Debian и Ubuntu). Возвращаемся в раздел Session, сохраняем настройки и подключаемся к компьютеру Linux. В случае успешного подключения мы вводим логин и пароль и видим текстовую консоль. С ее помощью мы можем удаленно запустить консольные программы, но графические программы не могут рисоваться в консоли. Поэтому оставим на время наше подключение по SSH.

Теперь настроим Xming. Для этого запускаем программу XLaunch - это мастер настроек. На первом шаге указываем способ интеграции в графическое окружение Windows. Мне более всего по душе первый, когда каждое приложение Linux находится в своем окне.


На втором шаге нам предлагается автоматически запускать какое-нибудь приложение вместе с иксами. Я предпочел сделать это позже по мере необходимости посредством уже запущенного нами PuTTY.


На третьем шаге указываем параметры запуска Xming. Опция Clipboard позволяет интегрировать буфер обмена. Также для полноценной работы я ввел следующие параметры:
"-dpi 96" - чтобы поправить размер шрифтов. Значение можно подбирать по вкусу.
"-xkblayout us,ru" - для работы с двумя раскладками клавиатуры.
"-xkbvariant basic,winkeys" - уточнение раскладок.
"-xkboptions grp:caps_toggle" - переключение раскладки клавишей CAPS LOCK.


И, наконец, на следующем шаге сохраняем настройки кнопкой "Save configuration" и запускаем X-сервер кнопкой "Готово".


В системном лотке появится иконка Xming


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


Итак, X-сервер запущен. Возвращаемся в нашу консоль, предоставленную соединением SSH. Здесь мы можем удаленно запустить консольное приложение, и в этой же консоли увидим вывод этого приложения. А что теперь будет, если мы попытаемся запустить в этой консоли графическое приложение? Обычно, если вы подключились по SSH и пытаетесь запустить оконное приложение, вы получите ошибку, потому что вы подключились к удаленному компьютеру в консольном режиме, и рисовать окна просто нечем. Однако, в этот раз мы включили перенаправление графики на наш компьютер Windows, на котором уже запущен свой X-сервер. Поэтому, если вы попытаетесь запустить оконное приложение в удаленном консольном терминале, его окно нарисуется на компьютере Windows. Попробуйте, например, набрать следующую команду:

$ kwrite &
или
$ gedit &

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

Ну, надеюсь, у вас все получилось, и на вашем рабочем столе Windows красуются оконные приложения Linux.

Кстати говоря, благодаря этой клиент-серверной архитектуре злоумышленник может отправить на ваш экран окно с просьбой ввести ваш пароль или еще с какой-нибудь гадостью. Чтобы такого не происходило, не подключайтесь к общественным сетям без фаирвола. И помните: большие возможности - это большая ответственность.

DirectX 9.0C на Linux

Ну вот наконец-то игроманы могут порадоваться. Под wine теперь можно проинсталлить DirectX 9.0c.

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

Версия DirectX - 9.0c, Wine: 0.9.58, эмуляция Windows 2000.

  • Запускаем winecfg и выставляем аудиодрайвер для своей системы.
  • Далее нужно выставить режим “родной (Windows)” для файлов mscoree.dll и streamci.dll и скопировать их из Windows в system32.
  • Теперь нужно установить кучу dll в “родной” режим для коррекной работы установки:

[Software\\Wine\\DllOverrides] 1206264929
“d3d8″=”builtin”
“d3d9″=”builtin”
“d3dim”=”native”
“d3drm”=”native”
“d3dx8″=”native”
“d3dx9_24″=”native”
“d3dx9_25″=”native”
“d3dx9_26″=”native”
“d3dx9_27″=”native”
“d3dx9_28″=”native”
“d3dx9_29″=”native”
“d3dx9_30″=”native”
“d3dx9_31″=”native”
“d3dx9_32″=”native”
“d3dx9_33″=”native”
“d3dx9_34″=”native”
“d3dx9_35″=”native”
“d3dx9_36″=”native”
“d3dxof”=”native”
“dciman32″=”native”
“ddrawex”=”native”
“devenum”=”native”
“dinput”=”builtin”
“dinput8″=”builtin”
“dmband”=”native”
“dmcompos”=”native”
“dmime”=”native”
“dmloader”=”native”
“dmscript”=”native”
“dmstyle”=”native”
“dmsynth”=”native”
“dmusic”=”native”
“dmusic32″=”native”
“dnsapi”=”native”
“dplay”=”native”
“dplayx”=”native”
“dpnaddr”=”native”
“dpnet”=”native”
“dpnhpast”=”native”
“dpnlobby”=”native”
“dsound”=”builtin”
“dswave”=”native”
“dxdiagn”=”native”
“mscoree”=”native”
“msdmo”=”native”
“qcap”=”native”
“quartz”=”native”
“streamci”=”native”

Это можно сделать проще. Во вкладке “Библиотеки” установить первую библиотеку “d3d8″=”Встроенный”. Потом в каталоге ./wine найти user.reg и скопировать остаток туда в раздел [Software\\Wine\\DllOverrides].

  • Дальше скачиваем DirectX 9.0c March 2008 release по этой ссылке.
  • Запускаем и распаковываем инталлер.
  • Идем в папку, где лежат распакованные файлы и запускаем “wine ./dxsetup.exe”
  • Скачиваем в ~/.wine/drive_c/windows/system32/drivers драйвер gm.dls для тестирования звука Direct Music.
  • Запускаем dxdiag и проверяем.

По идее все.

Оригинал статьи тут. Дополнения и комментарии приветствуются. :)

Настройки SSH авторизации по ключу с помощю PuTTY

Если Вы, для работы с сервером, часто используете SSH, то Вам
наверняка понравится идея не вводить каждый раз пароль, а автоматически
попадать на SSH-сервер используя авторизацию по ключам. Ниже приведен
пример настройки такой авторизации.

  1. С помощью PuttyGen генерируем приватный и публичный ssh-ключи - кнопка "Generate". В настройках можно указать тип ключа и его размер.
  2. После этого сохраняем приватный ключ в файл с помощью кнопки "Save private key", например private.key. Публичный ключ отображается в верхнем поле "Key" и имеет вид:
    "ssh-rsa AAAAB3NzaC1yc*что-то*uJQ== rsa-key-20020104".
  3. Копируем содержимое поля "Public key for pasting into OpenSSH authorized_keys file" в оперативную память и закрываем PuttyGen.
  4. Запускаем ssh-клиент Putty и производим коннект к серверу.
  5. Попав на сервер, создаем папку ~/.ssh
  6. Создаем файл ~/.ssh/authorized_keys с содержимым поля "Public key for pasting into OpenSSH authorized_keys file" утилиты PuttyGen (то что копировалось в оперативную память).
    ВАЖНО! ключ в файле должен быть записан в одной строке без переносов.
  7. Меняем права доступа к файлу командой chmod 600 ~/.ssh/authorized_keys
  8. Закрываем Putty
  9. Запускаем Putty. В настройках вашего соединения указываем путь к приватному ключу: Connection->SSH->Auth->Private_key_for_Authentification->private.key
  10. Сохраняем настройки соединения и производим коннект к серверу. SSH-сервер запросит имя пользователя под которым вы хотите прологиниться - укажите свой логин. Далее авторизация пройдет с использованием приватного и публичного ssh-ключей.


Проверка пропускной способности сети

На машине приемнике:

netcat -l 8888 > /dev/null

На вспомогательной машине:
dd if=/dev/zero count=1024 bs=1M | netcat 192.168.0.1 8888