вторник, 27 марта 2007 г.

Создание скринкастов в Linux.

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

Большинство таких видео файлов создается с помощью специальных программ, которые могут сохранять все действия, происходящие на экране, в файл (обычно это или видео файл (.mpeg) или анимированный .gif или флеш .swf). Сохраненный таким образом файл называется скринкастом (screencast). Часто такая запись сопровождается аудио комментарием. Изначально скринкасты создавались в учебных целях, для того чтобы пользователю было легче разобраться с программой. Но область применения скринкастов на этом не ограничилась, чему служит доказательством широкое распространение видео файлов, показывающих лишь красоту десктопа и различных 3D эффектов.

Если и вам захотелось создать подробное видео руководство, посвященное какой-нибудь программе, или если вы хотите всему миру показать каких красивых эффектов можно достичь с установленной последней версией Beryl'a, тогда эта статья для вас.

Istanbul

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

serhiy@kubuntu:~$ sudo apt-get install istanbul

Пользователям других дистрибутивов можно скачать и установить программу из исходников. После запуска Istanbul в трее появится белый квадратик с красным шариком посередине (такой себе квадратный флаг Японии). Все настройки доступны в пункте меню "Параметры", в который можно зайти, нажав по иконке правой кнопкой мыши.



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



Как видно из рисунка, при сжатии четкость немного теряется, но зато размер файла радует, короткий ролик занимает чуть больше мегабайта. Единственное, что раздражает, это желтый шлейф, оставляемый курсором мыши. Я так и не нашел как с этим бороться. Но эта проблема возникает не у всех (с чем она связана?). Поэтому можете попытать счастья. Тем более это не так уж и сложно. В целом, если бы не этот дефект, программа по простоте установки и использования и по качеству скринкаста заслуживает высокую оценку.


Byzanz

Еще одна программа, которую можно установить с репозитория:

$ sudo apt-get install byzanz

Эта программа не имеет GUI интерфейса, поэтому вся работа происходит в консоли. Самый простой способ записать скринкаст сводится к выполнению следующей команды:

$ byzanz-record my_desktop.gif

Как видите, результат сохранеется в виде GIF-файла. Для более подробного ознакомления с программой наберите:

$ byzanz-record --help




Вы увидите, что можно задавать длительность ролика (по умолчанию 10 сек.), координаты области экрана, которую нужно записывать, ширину и высоту записываемого прямоугольника, записывать ли курсор и некоторые другие возможности. Теперь о результатах. Ролик длительностью 10 секунд занял 5.8 мегабайт (запись всего экрана размером 1280-1024 пикселей). Качество изображения как минимум не лучше чем у Istanbul. Сказать определнно не могу, так как просмотрщик изображений очень тормозит при просмотре такой "малютки". В общем программа может и подойтет для записи некоторой (маленькой) части экрана, но определенно не всего экрана.

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


Recordmydesktop

Как говорится, название говорит само за себя. Для установки программы нужно скачать исходники. Распаковываем полученный архив, заходим в созданную директорию и устанавливаем:

$ tar -xzvf recocrmydesktop-0.3.3.1.tar.gz
$ cd recordmydesktop-0.3.3.1
$ ./configure
$ make
$ sudo make install

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

alsa (libasound)
X
libXext
libXdamage
libogg
libvorbis
libtheora

Если при конфигурации увидите сообщения об ошибках, скорей всего это будет связано как раз с отсутствием этих файлов. Установите их с помощью apt (aptitude). У меня программа стала без проблем.

Для создания видео файла (программа сохраняет выход в формате Ogg Theora-Vorbis) наберите в консоли следующее:

$ recordmydesktop -o mydesk.ogg

С помощью ключа --help можно посмотреть дополнительные опции. Их немного больше чем у byzanz, но в целом они похожи. Ниже приведен скриншот из скринкаста (извините за такой каламбур), созданного с помощью recordmydesktop.


Качество изображения лучше чем у Istanbul, но зато и размер больше. Видео файл длительностью 15 секунд занял почти 6 Мегабайт. Зато все дейтсвия, которые я вытворял с окнами и рабочим столом с устновленным Beryl воспроизводились как живые. Для записи 3D десктопа эта программа определнно лучше всех рассмотренных выше.
Если вам больше по душе программы с GUI интерфейсом, то можно установить gtk-RecordMyDesktop - .deb и исходники.


Xvidcap

Программа доступна в исходных кодах и в виде .deb пакета. Если у вас [K]Ubuntu версии 6.10 или выше, програма должна стать без проблем. Также не должно быть проблем и в Debian-testing. Пользователям других дистрибутивов скорей всего придется ставить из исходников. В процессе кодирования видео программа широко использует FFMPEG. Поэтому для нормальной работы последний должен быть установлен в системе вместе с требуемыми библиотеками.

Запустить программу можно набрав xvidcap& в терминале. В левом верхнем углу рабочего стола появится следующее окошко:





Для настройки программы нужно кликнуть правой кнопкой мыши по названию файла и пройти в пункn меню "Параметры":

Как видно из рисунка, программа не скупится на настройки. Можно выбрать различные аудио и видео кодеки, качество картинки, количество кадров в секунду.... Записываемую область экрана можно задать с помощью инструмента "Select rectangular area to capture" (ручка с зеленым колпачком). Закончив все настройки и сохранив изменения можно приступить и к записи. Для этого нужно нажать на красную кнопку. Для завершения записи нажмите квадратик.

Помимо настроек, доступных в главном окне программы, параметры "съемки" можно задавать и при старте программы. Вот как выглядит задание снять весь экран, без аудио сопровождения в файл test.mpeg.

$ xvidcap --audio no --cap_geometry 1280x1024[+0+0] --file test.mpeg

И скриншот снятый с этого видео:



Как видно качество тоже на уровне. Единственный недостаток - присутствие окна программы на экране во время "съемки". Бороться с этим можно по разному. Например можно запустить программу на съемку и свернуть, а при выключении развернуть. Потом начало и конец обрезать.

pyvnc2swf

Это скрипт, написанный на Python, который записывает рабочий стол через протокол vnc и сохраняет в флеш файл .swf. Перед установкой программы установите следующие пакеты x11vnc,python-tk и python-pygame. В Ubuntu:
$sudo apt-get install x11vnc
$sudo apt-get install python-tk
$sudo apt-get install python-pygame
Если все установилось, то можно приступить и к самой программе. Для этого скачайте архив отсюда, распакуйте:

$tar -xzvf pyvnc2swf-0.9.1.tar.gz

и зайдите в созданный каталог:

$ cd pyvnc2swf-0.9.1

Теперь откройте новый терминал (или новую вкладку(окно) теринала) и запустите там x11vnc:

$ x11vnc
вернитесь к предыдущему терминалу и запустите следующее:

$ ./vnc2swf.py

Должно появиться окошко программы:



Для записи нажмите кнопку Start. Записав, нажмите кнопку Stop, проследуйте в пункт меню File -> Save As и сохраните записанную сессию. Для просмотра скринкаста можно воспользоваться обычным браузером. Если говорить о качестве, то динамические сюжеты (игра с Beryl) отображаются плохо. Изображение явно притормаживает. Зато статические моменты отображает очень хорошо.

Wink

Загрузить программу можно отсюда.

Распаковываем скачанный архив:

$ tar -xzvf wink15.tar.gz

Запускаем инсталлер:

$ ./installer.sh

Как работать с программой можно почитать здесь. Я сам не пробовал, так как версии для 64-битных систем я не нашел.

Как видим, программ для съемки рабочего стола в Linux много, и выбор за вами, какую из них использовать. Мне больше нравятся те, которые сохраняют результат в видео файл, а не gif ил swf. Поэтому, если возникнет острое желание в создании скринкаста, то я пожалуй воспользуюсь программой recordmydesktop или xvidcap.

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

Screencast Guide: Capure Your Linux Desktop on Video!
Make a Movie of Your Linux Desktop
Пособие по видеопособиям
create screencast using xvidcap
HOW TO: Record Videos Of Your Desktop
Screencasting with Linux
Creating training movies with VNC2SWF

Читать дальше...

понедельник, 19 марта 2007 г.

Tilda и Yakuake.

Работая в основном в KDE и использую терминал konsole, никогда даже не задумывался о существовании других эмуляторов терминала в Linux. Знал, что они существуют, знал (вроде даже когда-то отрывал), что некоторым пользователям больше нравится xterm. Но почему-то взять и попробовать самому желания не возникало вообще. Наверное, потому что konsole меня полностью устраивает. А сегодня в новостях наткнулся на статью о Tilda. Почему-то сразу захотелось попробовать - понравился. Заодно установил и Yakuake. Дело в том что они очень похожи. Это терминалы, построенные по принципу классических терминалов шутеров от первого лица Quake, Doom, Half-Life и других. Терминалы, у которых нет рамки, и которые могут появляться и исчезать из экрана при нажатии определенных клавиш.

Tilda

Установка Tilda в Ubuntu:

$sudo apt-get install tilda

(Если вам больше по душе Synaptic или aptitude, установите с их помощью)
Точно не знаю, но думаю что и для других дистрибутивов существуют бинарники. В любом случае можно скачать и установить из исходников.
После запуска программы в правом верхнем углу экрана появилось маленькое окошко черного цвета и без границ с приглашением почти на четверть экрана программы. Для того чтобы свернуть(развернуть) терминал, по умолчанию нужно нажать F1. Настроить Tilda можно нажав правой кнопкой мыши на ее окошко и выбрав Preferences.
Внизу можно выбрать шрифт. По умолчанию был установлен Monospace 13, который я изменил на Dejave Sans Mono 10. В пункте Appearance можно изменить размеры окна и расположение на рабочем столе. Там же выставляется и прозрачность. В пунке Colors можно изменить цвет теста и фона. В общем, все интуитивно настраивается. Вот так выглядит терминал после настройки.


Yakuake

Устанавовка yakuake в Ubuntu:

$sudo apt-get install yakuake.

Исходники скачать можно здесь.

Если говорить коротко, то yakuake это tilda для KDE. yakuake построен на основе konsole, поэтому даже пункт настроек тот же. Для того чтобы свернуть (развернуть) терминал, нужно нажать F12. Настройки описывать не буду, все аналогично настройкам konsole. Скажу лишь, что есть пункт "Применить параметры konsole", которым я и воспользовался:


Чтобы подвести черту, скажу, что короткого знакомства с этими программами хватило для того, чтобы мне захотелось использовать их постоянно (уж очень удобны). Я остановил свой выбор на yakuake, но лишь потому, что я работаю в KDE.

p.s. пока писал, наткнулся на заметку о yakuake в Заметках на память. Не одному мне понравилось=).

Читать дальше...

пятница, 16 марта 2007 г.

Клавиатурные тренажеры в Linux.

KTouch

KTouch входит в стандартный набор обучающих программ KDE - kdeedu. Для того, что установить ее в [K]Ubuntu нужно лишь ввести в консоли:

sudo apt-get install ktouch

Теперь можно, нажав Alt + F2 и набрав ktouch, запустить программу.



Интерфейс программы полностью русифицирован, встретил меня надписью "Упражнение не загружено". Но нас этим не остановить. Идем в пункт Упражнение -> Упражнения по умолчанию и выбираем русский язык (по умолчанию установлено больше двух десятков языков). На самом деле это файлы в .xml формате, расположенные в /usr/share/apps/ktouch. Сюда вы можете загрузить дополнительные упражнения или, если есть желание, можете создать свои собственные. Для этого нужно зайти в меню Файл -> Изменить упражнения и выбрать "создать упражнения". Теперь было бы хорошо изменить раскладку клавиатуры (хотя Вы выбрали упражнение на русском языке, буквы на клавиатуре так и остались латиницей). Для этого идем в пункт Настройка -> Раскладка клавиатуры и выбираем /usr/share/apps/ktouch/ru.keyboard.
Попотев с набором, можно проверить результаты зайдя в Упражнение -> Статистика.
В общем, есть все что нужно. Не могу ничего сказать о качестве уроков, так как я их не проходил. Но если есть возможность загружать чужие и создавать свои, то, думаю, проблем возникнуть не должно.

TuxType

Еще одна программа, которую легко найти почти в каждом дистрибутиве. TuxType - это клавиатурный тренажер, рассчитанный в первую очередь на детей. Да и сделан он больше как игра чем как полнофункциональный тренажер. Игра сводится к тому, что пингвин Tux ловит рыб с изображенными на них буквами. Для того чтобы сдвинуть его с места, нужно нажать букву, изображенную на пингвине. Русских рыб я, правда, не нашел.



Соло на клавиатуре

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

  • 1. Дистрибутив разделен на несколько установочных пакетов, которые можно загружать и устанавливать практически независимо.
  • 2. Основные параметры настройки вынесены в отдельное окно.
  • 3. Существует возможность расширенной настройки параметров программы в файле конфигурации.
  • 4. Для хранения результатов используются файлы сохранений .sav совместимые с «СОЛО на клавиатуре» 8.8 для Windows. Поддерживаются файлы сохранений от «СОЛО на клавиатуре» 8.1 для Windows (с возможностью автоматической конвертации).
  • 5. Расширение функциональности программы при помощи подгружаемых модулей.
  • 6. Возможность добавления новых курсов по мере их появления.

Как и для Windows, полная версия для Linux тоже платная. Купить можно прямо с сайта, отправив SMS на указанный номер. Стоимость SMS 5 y.e. Бесплатный ознакомительный вариант содержит лишь 20 из 100 уроков.
В репозиториях программы нет, поэтому придется качать с сайта разработчика http://ergosolo.ru/rus/download/. Для этого нужно заполнить анкету, после которой вы переместитесь на страничку загрузки. Хотя отсюда можно зайти и скачать без всяких анкет. Список доступных пакетов меня порадовал. Есть RPM пакеты для большинства дистрибутивов, пакет для Gentoo и Debian. Но для "счастливых" обладателей 64-битных процессоров ничего не предусмотрено. Надеюсь в будущем будет версия и для моей системы.
Для дистрибутива Ubuntu есть пакет лишь для версии 6.06. Впрочем, я без проблем поставил программу и в Kubuntu 6.10.
Как уже упоминалось выше, дистрибутив разделен на несколько установочных пакетов. Для нормальной работы потребуется сама программа "Соло на клавиатуре" и пакеты с курсами обучения.
После запуска жмем "Зарегистрироваться позже" -> Выбираем (создаем) пользователя -> выбираем курс - и в бой. В общем, все как в Windows версии.



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

Вот и все. Выбора почти нет. Разве что купить клавиатуру с китайской раскладкой. Способ проверенный. Быстрый слепой набор на русском языке осваивается за пару недель. Если говорить о программах, рассмотренных здесь, то меня полностью устраивает KTouch. В дополнение можно поиграться с Tuxtype. В случае, если у вас есть некоторый опыт работы с "СОЛО на клавиатуре" с Windows (например пройденные задания) и не жалко 5 долларов, то можно остановиться и на этой программе.

А тем, кому никакая программа по каким-нибудь причинам так и не понравилась, рекомендую посетить следующую страничку - http://freshmeat.net
Здесь собраны 86 различных клавиатурных тренажеров. Правда, найти среди них те, которые работают с русской раскладкой, наверное будет тяжело (если вообще возможно).

Читать дальше...

понедельник, 12 марта 2007 г.

SSHFS -монтирование удаленных систем через SSH.

sshfs - это утилита, основанная на FUSE (Filesystem in Userspace), которая позволяет монтировать удаленные системы и работать с ними так, как будто это файловая система на вашем компьютере (что-то на подобие /proc и /sys). Если вы читали предыдущую статью Установка и настройка NFS сервера и NFS клиента в [K]Ubuntu., то вам это покажется знакомым. В отличии от NFS, в sshfs все данные передаются через зашифрованное SSH–соединения. Но с другой стороны sshfs работает немного медленее. В любом случае, можно выделить несколько положительных сторон sshfs:

  • очень легка в использовании (не нужно ничего делать на сервере);
  • все данные передаются в зашифрованном виде;
  • хорошо работает при медленном и нестабильном соединении (пересоединяется в случае разрыва соединения);

Установка.
Как я уже говорил, ничего дополнительно на сервере делать не нужно. Все что надо, это установленный и настроеный OpenSSH. Поэтому переходим к настройкам на стороне клиента. FUSE был включен в ядро начиная лишь с версии 2.6.14. Если у вас версия ядра 2.6.14 или выше (чтобы узнать, запустите uname -r), можете вздохнуть с облегчением. Если нет, придется скопилировать модуль fuse и подключить его к ядру:

$sudo modprobe fuse
Теперь можно переходить к установке FUSE и sshfs. Если ваша система не предоставляет бинарных пакетов, вам придется скачать исходники и скомпилировать самому. Скачать можно здесь - FUSE и sshfs-fuse.

В Ubuntu или Kubuntu и Debian testing этого делать не нужно. Все сделали за вас. Нужно лишь установить пакеты:

$sudo apt-get install sshfs

(fuse поставится вместе с зависимостями)

Теперь, поскольку sshfs предназначен для использования от имени обычного пользователя (не рута), добавьте себя (возможно и других пользователей) в группу fuse:

$sudo usermod -a -G fuse имя_пользователя

После этого нужно перелогиниться чтобы попасть в группу fuse.

Использование.

Создайте точку монтирования, скажем, папку local в домашней директории

$cd ~
$mkdir local

Монтируем:

$ sshfs alien@10.52.31.1:/home/data /home/serhiy/local

(заметьте, монтирование происходит от имени обычного юзера (нет sudo перед командой монтирования))

здесь:
alien - это имя пользователя на удаленной машине
10.52.31.1 - IP удаленного компьютера
/home/data - директория на удаленном компьютере
/home/serhiy/local - точка монтирования на компьютере пользователя, куда будет монтирована /home/data.

После этого должно появиться приглашение:

The authenticity of host '10.52.31.1 (10.52.31.1)' can't be established.
RSA key fingerprint is 28:a2:c5:8c:93:db:3c:95:1c:e0:90:c8:71:7f:53:43.
Are you sure you want to continue connecting (yes/no)? yes
alien@10.52.31.1's password:

(введите пароль пользователя alien). Все. Заходим в /home/serhiy/local, гды вы должны увидеть содержимое /home/data удаленного компьютера.

Если после ввода пароля Вы увидите запись (у меня она появилась при входе с Kubuntu Edgy Eft на Kubuntu Dapper Drake):

$fusermount: failed to open /dev/fuse: Permission denied

это может быть связано с багом fuse. Для решения этой проблемы измените группу файла /dev/fuse на fuse:

$sudo chgrp fuse /dev/fuse

Поработав, можно и отмонтировать:

$ fusermount -u ~/local

Как я уже упомянул, после запуска команды на монтирование приходится вводить пароль SSH (если вы не настроили доступ по ключам до этого). Это не очень удобно. Поэтому, для большего удобства, настроим соединение с помощью ключей. Для этого на компьютере пользователя:
$cd ~
$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/serhiy/.ssh/id_rsa):ENTER
Enter passphrase (empty for no passphrase): ENTER
Enter same passphrase again: ENTER
Your identification has been saved in /home/serhiy/.ssh/id_rsa.
Your public key has been saved in /home/serhiy/.ssh/id_rsa.pub.
The key fingerprint is:
fa:e7:7c:e1:cb:7b:66:8b:67:07:05:99:7f:05:b9:4a
Все. Ключи были созданы в папке .ssh. После этого нужно добавить ключ id_rsa.pub в список авторизованных ключей на сервер:


$cat ~/.ssh/id_rsa.pub | ssh alien@10.52.31.1 "cat - >> .ssh/authorized_keys"

Замените alien и 10.52.31.1 на имя пользователя и IP удаленного сервера.

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

$ fusermount -u ~/local

и примонтируйте заново.

Источники:
http://linux.inet.hr/sshfs_secure_and_transparent_access_to_remote_filesystems.html
http://www.linuxjournal.com/article/8904
http://iar.spb.ru/ssh/mount

Читать дальше...

четверг, 8 марта 2007 г.

Установка и настройка NFS сервера и NFS клиента в [K]Ubuntu.

Network File System (NFS) — это сетевая файловая система, позволяющая пользователям обращаться к файлам и каталогам, расположенным на удалённых компьютерах, как если бы эти файлы и каталоги были локальными. Главным преимуществом такой системы является то, что отдельно взятые рабочие станции могут использовать меньше собственного дискового пространства, так как совместно используемые данные хранятся на отдельной машине и доступны для других машин в сети. NFS - это клиент-серверное приложение. Т.е. в системе пользователя должен быть установлен NFS-клиент, а на компьютерах, которые предоставляют свое дисковое пространство - NFS-сервер. Здесь я хочу показать, как просто установить и настроить эти программы в [K]Ubuntu Linux. (Вся информация рассчитана для новичка в Linux. Если вы имели опыт установки NFS в Linux - ничего нового, вероятно, вы здесь не найдете. Целью статьи является, показать как легко это может быть реализовано.)

Установка и настройка NFS-сервера.

Устанавливаем NFS-сервер:

$sudo apt-get install nfs-kernel-server nfs-common portmap

Настраиваем, какие именно директории мы хотим открыть для совместного пользования и кому. Все это делается в файле /etc/exports:

$sudo vi /etc/exports

В приведенном ниже примере я выделил директорию /data (директория с данными на сервере) в совместное пользование всем компьютерам с IP - 192.168.1.1 - 192.168.1.255 с правами чтения и записи:

/data 192.168.1.1/24(rw,no_root_squash,async)

Или еще пример:

/home/serhiy/ 192.168.1.34(ro,async)

домашняя директория пользователя serhiy стала доступной в режиме только чтение для компьютера с IP 192.168.1.34. Все остальные компьютеры сети к этому разделу доступа не имеют.

Опции:
ro - права только на чтение. Можно и не указывать, так как она установлена по умолчанию.
rw - дает клиентам право на запись.
no_root_squash - по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать.
noaccess - запрещает доступ к указанной директории. Может быть полезной, если перед этим вы задали доступ всем пользователям сети к определенной директории, и теперь хотите ограничить доступ в поддиректории лишь некоторым пользователям.
О других опция можно почитать здесь.

Теперь нужно перезапустить nfs-kernel-server:

$sudo /etc/init.d/nfs-kernel-server restart

Если после этого вы захотите поменять что-нибудь в файле /etc/exports, то для того, чтобы изменения вступили в силу, достаточно запустить следующую команду:

$sudo exportfs -a

Все. NFS-сервер установлен и настроен. Можно переходить к настройке NFS клиента.

Установка и настройка NFS-клиента.

Установка:

$sudo apt-get install portmap nfs-common

Монтирование:

Создаем точку монтирования. Допустим, это будет папка в вашей домашней директории с названием data:

$cd ~
$mkdir data

Монтировать можно двумя способами - каждый раз вручную или прописав опции монтирования в файл /etc/fstab. Мне больше нравится второй способ:

$sudo vi /etc/fstab

и в конце дописываем следующую строку:

192.168.1.1:/data ~/data nfs rw,hard,intr 0 0

Вместо 192.168.1.1:/data впишите IP или имя сервера и путь к директории совместного пользования.
Опции монтирования можно изменить.

Записав и сохранив изменения, можно монтировать:

$sudo mount ~/data

Если все прошло успешно, то набрав в терминале

$cd ~/data
$ls

вы увидете содержимое папки /data, находящейся на NFS-сервере. Можете проверить скорость работы и запустить, например, фильм с этого раздела.

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

Читать дальше...

суббота, 3 марта 2007 г.

Дисковые квоты в Linux

Как известно, Linux - это многопользовательская операционная система. Это значит, что на одном компьютере могут работать несколько человек одновременно. Каждый из них имеет свою домашнюю директорию, которая находятся в разделе /home. Многие администраторы для /home создают отдельный раздел на жестком диске. Следовательно, что мы имеем? Есть отдельный раздел диска фиксированного размера и есть несколько пользователей, которые могут им пользоваться. Здесь возникает вопрос. А как разделить это пространство между всеми пользователями? Как застраховаться от ситуации, когда пользователь захочет перенести в свой раздел всю коллекцию фильмов или музыки? Для решения этой проблемы в Linux и существуют квоты.


Установка дисковых квот.

Первым делом в ядре должна быть включена поддержка квот. Если у вас ядро серии 2.6, то по умолчанию квоты включены, если - 2.4 - пересоберите ядро (посмотреть версию ядра можно командой uname -r). Для того, чтобы проделать все нижеописанное, Вам понадобится утилита quota, установленная на вашем компьютере. Бинарные пакеты существуют для всех распространенных дистрибутивов.
В Debian-производных дистрибутивах установка с помощью утилиты apt-get выглядит так:

$ sudo apt-get install quota

Все. Никаких дополнительных пакетов не требуется.

Теперь, как я уже упоминал выше, допустим, у нас есть папка /home, смонтированная на отдельном разделе жесткого диска, скажем /dev/sda8, размером 20Гб, и два пользователя - serhiy и nadiia с домашними директориями /home/serhiy/ и /home/nadiia. И что я хочу сделать? Правильно, ограничим пользователя nadiia всего 50 мегабайтами. Приступим.

1. Загрузитесь в однопользовательский режим. Поскольку директория /home будет перемонтирована, то мы должны застраховаться от того, что другие пользователи могут потерять свои данные.

#init 1

(этого можно и не делать, если вы уверены, что за компьютером больше никто кроме вас не работает)

2. Отредактируйте файл /etc/fstab/:

$sudo vi /etc/fstab/

добавив usrqouta к опциям раздела /home.
Вот так это выглядит у меня:

/dev/sda8 /home ext3 defaults,usrquota 0 2

3. Перемонтируйте раздел /home:

$ sudo mount -o remount /home

4. Создайте файлы aquota.user и/или aquota.group. Файлы должны быть созданы в самой верхней директории раздела. В нашем случае это /home. Поскольку я хочу ограничить квотами лишь пользователей, файл aquota.group я создавать не буду.

$ sudo touch /home/aquota.user
$ sudo chmod 600 /home/aquota.user

5. Разрешаем linux читать файл aquota.user. Это делается с помощью команды quotackeck. Будьте готовы к тому, что будет выведена ошибка, как показано ниже. Это связано с тем, что файл был создан вручную, а не командами qouta. Также будет сказано об отсутствии файла для групп. Ничего страшного в этом нет

$ sudo quotacheck -vagum
quotacheck: WARNING - Quotafile /home/aquota.user was probably truncated. Can't save quota settings...
quotacheck: Scanning /dev/sda8 [/home] quotacheck: Old group file not found. Usage will not be substracted.
done
quotacheck: Checked 5265 directories and 74403 files

6. Задайте квоты для пользователей, используя команду edquota

$sudo edquota -u nadiia

Эта команда запустит редактор, установленный по умолчанию (переменная EDITOR) (в моем случае это редактор mc -mcedit):

Disk quotas for user nadiia (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda8 16 0 0 5 0 0

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

В приведенном выше файле:

Blocks : Место, используемое пользователем в блоках длиной 1kB.
inodes : Число используемых пользователем файлов
Soft Limit : Максимальное количество блоков/файлов, которое пользователь может иметь на данном разделе. Если используется период отсрочки (grace period), то вместо жесткого ограничения, пользователь нарушивший данные требования, получит лишь сообщение об этом. Значение 0 отключает данную опцию.
Hard Limit : Максимальное количество блоков/файлов, которое пользователь может иметь на данном разделе даже с установленным периодом отсрочки. Это жесткое ограничение, которое пользователь не может превысить.

Ограничим пользователя всего 50-ю мегабайтами (приблизительно).

Disk quotas for user nadiia (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda8 16 50000 0 5 0 0

7. Теперь можно выйти из однопользовательского режима (если вы работали в нем), набрав

#init 5

Все. Теперь пользователь nadiia не может превысить 50Mb.


Другие команды quota.

Изменяем период отсрочки:

$sudo edquota -t

Эта команда установит период отсрочки для всех пользователей. Период отсрочки - это период, во время которого опция soft period будет лишь предупреждать, но не ограничивать. Могут быть использованы секунды, минуты, часы, дни, недели и месяцы (нужно вписать на английском языке seconds, minutes, hours, days, weeks и months ) Так выглядит запуск этой команды у меня:

Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/sda8 7days 7days

Редактирование квот для групп:

$sudo edquota -g


Регулярная проверка квот:

Полезно регулярно выполнять quotacheck. Это можно реализовать, добавив задание в файл crontab

0 3 * * 0 /sbin/quotacheck -vagu
(частоту выполнения задания можно выставить, используя синтаксис cron)

Отчет об квотах:

Команда repquota показывает суммарный отчет по квотам на файловой системе. У меня отчет выглядит следующим образом:

$ sudo repquota /home
*** Report for user quotas on device /dev/sda8
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 131312 0 0 15 0 0
serhiy -- 18774192 0 0 79512 0 0
sshd -- 14512 0 0 137 0 0
nadiia -- 16 50000 0 5 0 0


Для более подробной информации обращайтесь к страницам man. Также рекомендую почитать перевод Quota mini-HOWTO.

Источники:
Disk Quotas in GNU/Linux explained
Quota mini-HOWTO.
File system quota

Читать дальше...