четверг, 11 декабря 2008 г.

slimrat: -утилита для закачки с файлообменников

slimrat - удобная command-line утилита для скачивания файлов со следующих файлообменников:
- Rapidshare
- FastLoad
- MediaFire
- YouTube
- DepositFiles
- Leteckaposta

Я протестировал только rapidshare, но тест пройден отлично. Slimrat распознает 60-ти секундные таймауты rapidshare, ожидает нужное время и затем скачивает файлы из списка по очереди.

взято отсюда

clive: cli-утилита для скачивания встроенного в страницы видео

Clive умеет скачивать видео как с известных ему сервисов (youtube и др.) так и с произвольных страниц (опция --scan).
Часто использую его для youtube и очень доволен - скачивается mp4-видео с информативным именем файла.

взято отсюда

вторник, 25 ноября 2008 г.

среда, 29 октября 2008 г.

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

Отсюда. Как я уже говорил, ничего дополнительно на сервере делать не нужно. Все что надо, это установленный и настроеный 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 имя_пользователя
или
adduser имя_пользователя fuse
После этого нужно перелогиниться чтобы попасть в группу fuse.

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

Создайте точку монтирования, скажем, папку local в домашней директории
$cd ~
$mkdir local
Монтируем:
$ sshfs alien@10.52.31.1:/home/data /home/serhiy/local
(заметьте, монтирование происходит от имени обычного юзера (нет sudo перед командой монтирования))

пятница, 24 октября 2008 г.

делаем шлюз интернета


#!/bin/sh -e
PATH=/usr/sbin:/sbin:/bin:/usr/bin
# delete all existing rules.
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT
# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
# исправляем mtu
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Don't forward from the outside to the inside.
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
#iptables -A FORWARD -i eth0 -o ppp0 -j REJECT
# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward

среда, 1 октября 2008 г.

TimeMachine для ubuntu

FlyBack программа повторяющая функционал эпловской программы бакупов

До установки проверяем установку питоновских пакетов
sudo apt-get install python python-glade2 python-gnome2 python-sqlite python-gconf rsync
Затем загружаем
svn checkout http://flyback.googlecode.com/svn/trunk/ flyback
и запускаем скрипт
python flyback.py

Делаем свой дистрибутив

C помощью Remastersys можно сделать две вещи:

  1. Полный бекап своей системы, включая персональные данные,и создать его в виде LiveCD или DVD для последующей инсталляции.
  2. Сделать свой дистрибутив на основе Ubuntu для себя или поделиться им с кем-нибудь.

Установка Remastersys в Ubuntu

Добавляем репозиторий в /etc/apt/sources.list
sudo gedit /etc/apt/sources.list
и вносим следующую строчку:
# Remastersys
deb http://www.remastersys.klikit-linux.com/repository remastersys/
Сохраняем файл.

Обновляем source list
sudo apt-get update
Устанавливаем
sudo apt-get install remastersys
Дожидаемся полной инсталляции.

Запуск Remastersys
sudo remastersys

Remastersys команды
sudo remastersys backup|clean|dist [cdfs|iso] [filename.iso]

Remastersys примеры

1) создаем livecd/dvd бекап нашей системы
sudo remastersys backup

2) создаем livecd/dvd бекап и образ диска custom.iso
sudo remastersys backup custom.iso

3) чистим временные файлы remastersys
sudo remastersys clean

4) создаем дистрибутив livecd/dvd из нашей системы
sudo remastersys dist

5) создаем дистрибутив livecd/dvd только из файловой системы
sudo remastersys dist cdfs

6) создаем дистрибутив с именем custom.iso, если cdfs уже сделали
sudo remastersys dist iso custom.iso

Создание ISO образа
sudo remastersys dist

Эта команда создаст образ iso с называнием customdist.iso в каталоге / home / remastersys .
Опция dist позволяет не включить в образ ваши личные папки (например, / home / user).
Возможно в ходе процесса вам придется вставить установочный диск Ubuntu.

процесс создания образа идет примерно так:

[…]
92.16% done, estimate finish Wed DEC 28 15:31:25 2007
93.39% done, estimate finish Wed DEC 28 15:31:25 2007
94.62% done, estimate finish Wed DEC 28 15:31:24 2007
95.85% done, estimate finish Wed DEC 28 15:31:24 2007
97.08% done, estimate finish Wed DEC 28 15:31:25 2007
98.31% done, estimate finish Wed DEC 28 15:31:25 2007
99.54% done, estimate finish Wed DEC 28 15:31:25 2007
Total translation table size: 2048
Total rockridge attributes bytes: 3950
Total directory bytes: 9094
Path table size(bytes): 54
Max brk space used 0
406890 extents written (794 MB)

В каталоге /home/remastersys/ создастся образ customdist.iso, который можно буде записать на болванку.
Если размер образа более 700Мб, то его можно записать на DVD болванку

Чистим


После того как образ протестирован, записан и он больше не нужен выполняем
sudo remastersys clean
удалятся все временные файлы и образ диска в директории /home/remastersys.

пятница, 26 сентября 2008 г.

среда, 24 сентября 2008 г.

Зеркалирование репозитариев Ubuntu

Команда Ubuntu apt-mirror используется для автоматического
создания зеркала репозиториев, указанных в файле /etc/apt/mirror.list.
sudo apt-get install apt-mirror
Можно закомментировать ненужные строки, поставив в их начало символ решетки (#).
Если же вы хотите загрузить только пакеты main и restricted, поместите решетку перед ‘universe’ или ‘multiverse’, чтобы закомментировать их.
С зеркала, расположенного в вашей стране, загрузка может проходить быстрее.
Отредактировав файл сохраняем его Ctrl+O Ctrl+X
Запускаем копирование выбранных репозитариев
sudo apt-mirror
В зависимости от сделанных вами изменений, размер загрузки может достигать 40 ГБ, если не больше! К счастью, apt-mirror запоминает, где остановился, если вы отменили его работу, не дождавшись конца, и вы можете выполнять загрузку несколько ночей, пока она не закончится. Все данные сохранятся в /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu и будут готовы к использованию.

Ubuntu уже позаботился о включении соответствующего задания Cron под названием apt-mirror, в закомментированном виде, в /etc/cron.d/.
По умолчанию установлено ежедневное обновление в 16-00, но вы можете изменить это как вам удобнее.

Теперь настраиваем Apache
Делаем ссылку
sudo ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu /var/www/ubuntu

рестартуем апач
sudo /etc/init.d/apache2 restart
Теперь можно использовать свой локальный репозитарий исправив /etc/apt/mirror.list на всех компьютерах локальной сети

понедельник, 22 сентября 2008 г.

Изменякм права доступа для только для каталогов или директорий рекурсивно

find . -type d -exec chmod 755 {} \;


Эта команда рекурсивно пройдется по текущему (точка ".") каталогу и всем его подкаталогам и изменит права на 755 только у каталогов (-type d)

Похожим образом действуем и с файлами:

find . -type f -exec chmod 644 {} \;


всем файлам - 644

среда, 17 сентября 2008 г.

Ubuntu Beginners / Новичкам в Ubuntu: Разбивка диска при установке /disk partitioning for installation

Ubuntu Beginners / Новичкам в Ubuntu: Разбивка диска при установке /disk partitioning for installation

Доменное имя на динамический IP адрес

Регестрируемся на сайте типа dyndns
Ставим демона обновления
apt-get install ddclient
Вам нужно будет ввести логин и пароль для сайта dyndns, имя хоста, с которым нужно связывать ip и имя сетевого интерфейса, на котором этот ip назначен. Это будет имя той сетевой карточки, через которую проходит интернет,например eth0 или ppp0.

KVM

Перед установкой виртуальной машины проверяем поддержку виртуализации процессором
В командной строке набираем
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
если есть ответ то значит процессор поддерживает аппаратное ускорение
ставим kvm
apt-get install kvm
При особом желании можно поставить менеджер виртуальных машин
и работать с ним
apt-get install virt-manager
или запускать виртуальные машины консольными командами
например так
создаем файл образ hdd для виртуальной машины. ~5Gb
dd if=/dev/zero of=/tmp/disk-image count=10000000
и запускаем виртуальную машину используя созданный дисковый имедж, вставляем в cdrom загрузочный диск (да хоть ХР) и набираем
kvm -hda /tmp/disk-image -cdrom /dev/cdrom -m 512

вторник, 16 сентября 2008 г.

воскресенье, 14 сентября 2008 г.

оптимизация загрузки ubuntu 8.04

Отсюда
linux @ 25 августа 2008,

Вчера собрался ускорить работу(получилось достаточно ощутимо) и загрузку системы(30 секунд, против полутора минут), почитал многие how-to.
Опишу что и где я улучшал. Итак о способах, по порядку:
1. Прописываем hostname.

sudo vim /etc/hosts
Было:
127.0.0.1 localhost
127.0.1.1 lib

Стало:
127.0.0.1 localhost lib
127.0.1.1 lib

Подписываем то, что справа от вызова консоли находится, например: lib@laptop:~$, то вписываем laptop.
Это несколько ускоряет загрузку системы, и ускоряет запуск некоторых программ.

2. Использование ядра, сконфигурированного под Вашу систему, подробнее как можно собрать ядро в Ubuntu. По ссылке написано, как собирается ядро для 6.10, однако советы справедливы и для 8.04.

3. Несколько ускоряем работу ext3 файловой системы:

sudo vim /boot/grub/menu.lst
Добавляем в существующие строки:
# defoptions=quiet splash rootflags=data=writeback
# altoptions=(recovery mode) single rootflags=data=writeback
У меня в defoptions убран quiet и splash дополнительно, и добавлен vga=0×324, для framebuffer.


Обновляем grub.

sudo update-grub
Правим fstab:
sudo vim /etc/fstab
В моём случае, добавляем data=writeback:
UUID=32903d9a-98a8-4048-8472-a0896b81b3fa / ext3 relatime,errors=remount-ro,noatime,data=writeback 0 1
Выполняем:
sudo tune2fs -o journal_data_writeback /dev/sda1
/dev/sda1 это имя раздела, на котором лежит /
Проверяем:
sudo tune2fs -l /dev/sda1
Этот метод череват тем, что можете потерять некоторые данные при неожиданном выключении системы, например если у вас неожиданно отключилось питание(мне это не грозит, поскольку у меня ещё батарея есть)

4. Несколько ускоряем сеть(отключаем IPv6):

sudo vim /etc/modprobe.d/bad_list
Добавляем:
alias net-pf-10 off

В about:config в Firefox отключаем

network.dns.disableIPv6
, ставим true.

Там же:

network.http.pipelining true
network.http.pipelining.firstrequest true
network.http.pipelining.maxrequests 8
network.http.proxy.pipelining true
nglayout.initialpaint.delay 0
browser.turbo.enabled true
network.http.max-connections-per-server 8
network.http.max-persistent-connections-per-proxy 8
network.http.max-persistent-connections-per-server 8

Это ускорит загрузку страниц.
Добавляем в /etc/environment:
MOZ_DISABLE_PANGO=1
Это позволит ускорить отрисовку страниц в Firefox.

5. Убираем ненужные консоли(которые вызываются по Ctrl+Alt+F1..8):

sudo rm /etc/event.d/tty[3-6]
6. Ускоряем загрузку системы:
sudo vim /etc/init.d/rc
Выставляем:

CONCURRENCY=shell
Это устанавливает множественную загрузку в одно и то же время, особенно хороший эффект имеет, если у Вас многоядерная система.

7. Удаляем ненужные сервисы из загрузки:

sudo aptitude install sysv-rc-conf
sudo sysv-rc-conf

Подробно о сервисах написано на ubuntuforums.org
Дополнительно я отключал apache и mysql, я их запускаю непосредственно, когда хочу поработать с локальным вебсервером.

8. Если у Вас постоянное подключение к интернету, добавляем в /etc/sysctl.conf.

# Tweaks for faster broadband...
net.core.rmem_default = 524288
net.core.rmem_max = 524288
net.core.wmem_default = 524288
net.core.wmem_max = 524288
net.ipv4.tcp_wmem = 4096 87380 524288
net.ipv4.tcp_rmem = 4096 87380 524288
net.ipv4.tcp_mem = 524288 524288 524288
net.ipv4.tcp_rfc1337 = 1
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_ecn = 0
net.ipv4.route.flush = 1

Всё это позволило мне ускорить работу системы на порядок, однако есть ещё пара способов, которые я рекомендовать не могу, поскольку не совсем понимаю как они работают, а именно:
установленный пакет preload(sudo aptitude install preload), prelink(sudo aptitude install prelink)
Подробнее о prelink здесь.

Удачного использования!

среда, 10 сентября 2008 г.

если DVD-slideshow не работает

если ManDVD
ругаеться на ошибки
[dvd-slideshow] ###############
[dvd-slideshow] Concatenating all audio files...
[dvd-slideshow] Creating ac3 audio...
[dvd-slideshow] ERROR during ffmpeg execution!
[dvd-slideshow] see /home/sbucat/Video/dvd-slideshow.log for details
[dvd-slideshow] cleanup...

то
1. подключаем репозитарий medibuntu
sudo wget http://www.medibuntu.org/sources.list.d/hardy.list
-O /etc/apt/sources.list.d/medibuntu.list
2. ставим пакеты
sudo apt-get install sox libsox-fmt-all ffmpeg

3. и правим скрипт
sudo sed -i 's/-ab 192/-ab 192k/g' /usr/bin/dvd-slideshow

четверг, 4 сентября 2008 г.

Сортировка фотографий

ставим exiftool
sudo apt-get install libimage-exiftool-perl
и запускаем следующий скрипт
#!/bin/bash
#filename: photosort.sh
#Date: Sep 04 2008
#Author: Michail Kabanov
#License: GPL
#
#Bash script move images chronologically in dir
#

which exiftool &>/dev/null
if [ $? != "0" ];
then
echo -e "exiftool not found, please install it -> sudo apt-get install libimage-exiftool-perl ";
exit 0
fi



#parameters: from_path, to_path
PARAMSIZE=2

if [ $# -lt "$PARAMSIZE" ];
then
echo "Usage : photosort.sh from_path to_path"
else
#get first parameter
from_path=$1
#get second parameter
to_path=$2
# Move all pictures
exiftool -r '-Directory<DateTimeOriginal' -d $to_path/%Y-%m-%d $from_path

fi
exit 0

например так
photosort.sh /home/user1/unsorted_photo /home/user1/myphoto
приэтом все фото jpg,raw,tif,cr2,crw .... будут перемещены из директории /home/user1/unsorted_photo ( и рекурсивно из всех поддиректорий) в директории следующего вида
/home/user1/myphoto/2008-01-28
/home/user1/myphoto/2007-04-17
в зависимости от даты создания фотографии (exif)


вторник, 2 сентября 2008 г.

Загрузка Ubuntu 8.04 на Acer Aspire One за 14 секунд

[8.04] Boot 14 sec with custom kernel | Model ZG5, 8GB SSD

Xen на Ubuntu 8.04.1 desktop

по идее установка должна быть такой apt-get install ubuntu-xen-desktop
однако из за ошибок ругается на неудовлетворенные зависимости xenman и не ставитя.


работающий порядок установки

1. ставим xen-tools
$ apt-get install xen-tools
2. ставим руками xenman отсюда
http://launchpadlibrarian.net/11041870/xenman_0.6-5ubuntu1_all.deb
3. ставим xen
$ apt-get install ubuntu-xen-desktop
4. перезагружаемся и смотрим командой
$ uname -r
что загружено ядро XEN
если получаем черный экран вместо гнома то грузимся с обычного ядра и исправляем
/etc/X11/xorg.conf
правим секцию подставляя драйвер vesa
Section "Device"
Identifier "Configured Video Device"
Driver "vesa"
EndSection
сохраняем и перезагружаемся (это пришлось делать изза ошибок в убунтовской сборке ядра хен)

проверяно на 2.6.24-19-xen (может потом исправят)

суббота, 26 июля 2008 г.

Wine Tricks

http://wiki.winehq.org/winetricks

вторник, 8 июля 2008 г.

Советы по Linux

1. Как быстро получить информацию о системе?

Быстро получить информацию о системе можно используя команду procinfo. Если этого недостаточно - смотрите файловую систему /proc.
Например: /proc/interrupts, /proc/cpuinfo...

2. Еще один способ получить полезную информацию о системе

Еще один способ получить полезную информацию о системе - команда vmstat. Она выводит информацию использовании памяти, процессора, областях swap и т.п.
Команда free выдает информацию о памяти и swap.

3. Как получить информацию о ваших загруженных модулях ядра

lsmod - хороший способ получить информацию о ваших загруженных модулях ядра.

4. Нужно посмотреть параметры и возможные опции для модуля ядра Linux?

Воспользуйтесь командой modinfo. Например, Информация о авторе:
modinfo -a модуль
Список возможных параметров: modinfo -p модуль

5. Полезная информация о ядре

Левый или правый CTRL, ALT, или SHIFT + scrollock покажут вам полезную информацию о ядре.

6. Как долго ваша система была запущена?

Чтобы увидеть, как долго ваша система была запущена, наберите uptime.

7. Как посмотреть какие порты открыты?

netstat -a позволит вам увидеть все tcp и udp порты, которые открыты на вашей системе.

8. Нужно узнать какой сокет заняла программа?

lsof -i -U
fuser port_num/tcp
а также:
netstat -pvlA inet

9.Как посмотреть информацию о запущенных процессах?

Обычно используется "ps -aux", и потом "kill <номер процесса>". Так же есть специальные программы - такие, как top, gtop и ktop.

10. Как посмотреть свободное место на диске?

Чтобы посмотреть свободное место на диске, используйте команду df. Так же в KDE есть программа kdf (KDiskFree).

11. Как узнать размер всех директорий в данном каталоге?

Чтобы узнать размер всех директорий в данном каталоге, выполните команду:

find . -maxdepth 1 -type d -print | xargs du -sk | sort -rn

12. Как разбить один большой файл на несколько маленьких?

Чтобы разбить один большой файл на несколько маленьких используйте команду:

split --bytes=SIZE filename

13. Как добавить конфигурации по умолчанию для программ?

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

14. Как убрать возможность перезагрузки по нажатию клавиш CTRL-ALT-DEL?

Убрать возможность перезагрузки по нажатию клавиш CTRL-ALT-DEL можно закомментировав строку

ca::ctrlaltdel:/sbin/shutdown -t5 -rf now

в файле /etc/inittab.

15. Быстрый метод завершения перезапускаемого(respawning) процесса?

Очень быстрый метод завершения перезапускаемого(respawning) процесса в вашем /etc/inittab - это переключение уровней исполнения. Например, если вы имеете строку:

1:1235:respawn:/usr/sbin/mgetty /dev/ttyS1

переключение на уровень 4 остановит перезапускаемый процесс.

16. Как ограничить потребление ресурсов системы пользователями?

Если вы запустили большую систему с большим количеством пользователей, может быть очень важно ограничить потребление ресурсов системы пользователями. Вы можете контролировать эти ограничения с помощью модуля PAM и файла /etc/pam.d/limits.conf. Большинство современных дистрибутивов используют PAM для аутентификации. Пример ограничений для группы users sample of limits for the users group.

@users hard core 0

@users hard nproc 50

@users hard rss 5000

Это не позволяет создавать файлы core, ограничивает пользователя до 50 процессов и по использованию памяти до 5МБ

17. Как сделать дамп N-консоли?

Команда cat /dev/vcsN сбрасывает дамп N-консоли.

18. Как запретить вход всех пользователей в систему?

Чтобы запретить вход всех пользователей в систему (кроме root) без перезагрузки создайте файл /etc/nologin. Содержимое этого файла будет отображаться когда пользователь попытается войти в систему.

19. Ограничение на выполнение команды su

Чтобы разрешить определенным пользователям делать su, что лучше чем всем по умолчанию, редактируйте /etc/login.defs и установите строку SU_WHEEL_ONLY в yes. Затем вам нужно добавить пользователей, которым нужно делать su в группу 0, что делается редактированием файла /etc/groups.

20. Как примонтировать директорию из одной части файловой системы в другую?

В linux 2.4.x ядрах:

mount --bind какую_директорию_монтировать куда_монтировать

21. Как установить точное время?

Отличный способ установить на машине точное время - использовать каманду ntpdate:

ntpdate

Конечно, нужно иметь установленный пакет ntp и возможность соединения с сервером NTP. Вместо лучше использовать ip-адрес, чтобы избежать преобразования доменного имени в ip-адрес.

22. Как установить время CMOS?

Чтобы установить время CMOS системному используйте hwclock --systohc, а hwclock --hctosys - установит системное время, как время CMOS clock.

23. Как быстро скомпилировать ядро

Самый простой способ скомпилировать ядро это выполнить все команды make на одной строке набрав:

make dep clean bzImage modules modules_install

Если вы просто пропатчили свое ядро тогда просто сделайте:

make oldconfig dep clean bzImage modules modules_install.

24. System.map

Вешь, о которой иногда забывают упомянуть, когда вы обновляете свое ядро - это файл System.map (обычно располагающийся в каталоге /boot), который не соответствует новому ядру. После перезагрузки вы увидите сообщения о некорректной версии ядра. После построения нового ядра не забудьте скопировать новый файл System.map из каталога /usr/src/linux в загрузочный каталог вашей системы (/boot).

25. Как увидеть сообщения выдаваемы ядром?

Увидеть сообщения, выдаваемые ядром на экран при загрузке системы можно набрав команду dmesg.

26. Как посмотреть вывод команды и одновременно записать его в файл?

Посмотреть вывод команды и одновременно записать его в файл можно с помощью команды:

tee $ls | tee logfile.txt

27. Как запретить хранитель экрана в текстовом режиме?

Запретить хранитель экрана в текстовом режиме - напечатайте setterm -blank 0.

28.Средство для более быстрого поиска файлов, чем find

Средство для более быстрого поиска файлов, чем find - команда locate, которая использует базу данных для поиска. Для обновления этой базы часто используется cron. Или вручную - updatedb.

29. Список всех исполняемых файлов в системе, которые присутствуют в вашем $PATH?

Нажмите TAB + scroll-lock или еще проще - два нажатия на клавишу TAB. Результат один и тот же.

30. Как отключить сигнал "beep" в течение автоматического завершения командной строки?

Добавьте либо в ~/.inputrc или в /etc/inputrc для визуального звонка:

set bell-style visible

совершенно без сигнала:

set bell-style none

31. Как послать данные на желаемый терминал?

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

tail -f /var/log/messages > /dev/tty12

Для посылки любых сообщений на tty12.

32. Циклическое переключение через все доступные консоли.

Многие клавиатурные раскладки позволяют циклическое переключение через все доступные консоли используя Alt-RightArrow и Alt-LeftArrow.

33. Как выполнить родную команду системы, если используются алиасы?

Часто используете альясы shell (например, прописанные в ~/.bashrc), но иногда необходимо выполнить родную команду системы? Добавьте обратный слэш перед командой, это игнорирует псевдоним shell.

34. Как найти все файлы в каталоге, которые содержат строку?

Найти все файлы в каталоге, которые содержат строку:

find . -type f -print | xargs grep -li "search string"

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

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

stty raw; dd if=$(tty) of=/dev/null bs=1 count=1; stty -raw

36.Как перенаправить стандартный вывод и поток ошибок в один и тот же файл?

Чтобы перенаправить стандартный вывод и поток ошибок в один и тот же файл, используйте `&>'.

37. Как сохрать man-страницы в текстовый файл?

Самый простой способ сохранения man-страницы в текстовый файл - " man name | col -b > name.txt".

38. Все символы в консоли стали нечитаемыми

Если все символы в консоли стали нечитаемыми, наберите:

"echo -ne "\017","stty sane" или просто "reset".

39. Как перевести имена файлов в директории в нижний регистр?

Самый простой способ перевода всех имен файлов из директории в нижний регистр:

"for x in *; do mv $x `echo $x | tr [A-Z] [a-z]`; done".

40. Как быстро переименовать файл?

Чтобы быстро переименовать файл, используйте команду:

"mv /usr/local/bin/{старое_имя,новое_имя}".

41. Как удалить всю директорию без лишних запросов?

Чтобы удалить сразу всю директорию без лишних запросов, используйте:

rm -rf имя_директории

42. Как создать сразу несколько директорий?

Создание сразу нескольких директорий - "mkdir -p dir1/dir2/dir3".

43. Как правильно выключить компьютер?

Правильное выключение компьютера - команда "shutdown -h now".

Перезагрузка - "shutdown -r now" или просто "init 5".

44. Как передать весь вывод одной команды на вход другой команде?

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

Таким образом можно делать сложные конструкции (например, "ls | sort -r | less").

45. Как следить за постоянно изменяющимися файлами?

Чтобы следить за постоянно изменяющимися файлами (например, за системными логами), используйте команду tail.

Пример: "tail -15 /var/log/syslog" - постоянно показывает последние 15 строк.

46. Как следить за списком файлов в реальном времени?

Слежение за списком файлов в реальном времени - "watch -n 0 ls -l".

Команда watch осуществляет периодический запуск других команд.

47. Как искать текст в файлах?

Для поиска текста в файлах используется команда - "grep "ваш текст" /where/to/search".

Если при поиске не нужно учитывать регистр - "grep -i "ваш текст" /where/to/search"

48. Как заменить одно слово на другое во многих файлах?

Для замены одного слова на другое сразу же во многих файлах можно использовать этот скрипт

perl -pi -e 's/oneword/anotherword/g' *.
Если нужно сделать это же с одним файлом, поставьте его имя вместо " * ".

49. Как перейти из графического режима в текстовую консоль?

Чтобы перейти из графического режима в текстовую консоль, нажмите Ctrl+Alt+F1. (Ctrl+Alt+F2 - на вторую консоль, Ctrl+Alt+F3 - на третью консоль, etc). Для того, чтобы вернуться обратно в Иксы, обычно используется комбинация клавиш Alt+F7.

50. Как увидеть под Linux другой подключенный жесткий диск?

Чтобы увидеть под Linux другой подключенный жесткий диск, надо примонтировать (командой mount) разделы, которые на новом винчестере есть. Для этого надо определить, каким винчестер стоит: hdb, hdc или hdd. Для этого нужно всего лишь сообразить, как он подключен: primary slave - это hdb, secondary master - это hdc, secondary slave - это hdd. Теперь надо просмотреть, какие диски на винте есть. Для этого запускаем cfdisk для того винта, который мы определили на предыдущем шаге, например, для hdb: cfdisk /dev/hdb. Глядим, какие разделы есть. Например есть FAT32 (или он еще обозначается как WIN95) диск /dev/hdb1. Мы хотим его подключить скажем к каталогу /mnt/disk. Тогда: mount -t vfat /dev/hdb1 /mnt/disk. Здесь: параметр "-t" указывает тип файловой системы, в нашем случае это vfat, что соответствует fat32.

51. Работа с CD/R и CD/RW.

Стираем так: cdrecord -v blank=fast(или all) dev=<Ваш девайс>.

Образ делаем так: mkisofs -r -J -o <имя_файла_образа.iso> <то_чего_в_образ_загоняем>

Пишем так: cdrecord -v -eject speed=8 dev=<Ваш девайс> file.iso.

Если надо мультисессионный диск, то добавляем -multi.

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

52. Запись CD диска

Команды cdrecord, полезные при записи CDROM:

mkisofs -V "volume_ID" -D -l -L -N -J -R -v -o cdrom.iso директория

cdrecord -dev=0,1,0 -speed=4 -v cdrom.iso

Для подключения IDE накопителя добавить в linux lilo append="hdc=ide-scsi"

( hdc - ваш привод?) и включить в ядре поддержку эмуляции SCSI.

-toc -atip -prcap - выдать полную информацию о накопителе.

-scanbus - определить параметры для -dev (можно /proc/scsi/scsi)

-dummy - запись в режие тестирования (без реального прожигания диска).

-fix - исправить недописавшийся диск.

-eject - после записи вытащить CD

-blank=all очистить CR-RW перед записью.

mkisofs -print-size - расчитать сколько потребуется места для записи директории

53. Как смонтировать образ компак-диска?

Смонтировать образ компакт-диска можно таким образом:

#mkdir /mnt/iso

#mount -t iso9660 -o loop cd-image.iso /mnt/iso

(Разумеется, для операции монтирования нужно иметь права root). Теперь каталог /mnt/iso доступен для чтения содержимого образа компакт-диска.

54. Как узнать метку компакт-диска?

Узнать метку компакт-диска можно так:

alias cdlabel='LABEL=`dd if=/dev/cdrom bs=1 count=32 skip=32808 2>/dev/null` && echo $LABEL'

Удобно использовать альяс в инициализационных скриптах shell.

Советы по “железу”

1. Как получить список устройств на шине PCI?

Получить список устройств на шине PCI можно таким образом:

/sbin/lspci

2. Как включить при загрузке клавиши numlock?

Если вы хотите включить все клавиши numlock при загрузке, добавьте следущее в ваши загрузочные скрипты, например в rc.local:

echo -n "Turning on numlock LEDs: "

for tty in /dev/tty[1-6] /dev/tty1[2]; do

setleds -D +num < $tty &

done

echo "done."

3. Как посмотреть информацию полученную от мыши на стандартный вывод?

Если у вас трудности с мышью, mev -i сбросит информацию полученную от мыши на стандартный вывод.

4. Раздражают сигналы спикера вашего компьютера когда вы ошиблись?

Попробуйте выполнить следующую команду bash:

echo -ne '\033[11;0]'

которая устанавливает продолжительность сигнала для консоли равным 0 секунд. Чтобы сделать это автоматически добавьте эти строки в /etc/profile или ваш~/.profile. Подробную информацию о том, как установить частоту и длительность гудка, читайте в Visual bell mini-Howto.

четверг, 3 июля 2008 г.

Развертывание типового (эталонного) образа Ubuntu Linux

отсюда

В конторе периодически закупаются новые компьютеры и сотрудникам IT-отдела приходится отрываться от более интересных дел и заниматься рутиной в виде установки и настройки операционной системы. Установка Ubuntu традиционным способом с помощью компакт-диска, установка драйверов, обновлений и дополнительных программ из интернета, настройка всего занимают слишком много времени. Одним из способов оптимизации процесса является создание типового образа операционной системы и затем быстрое его развертывание на новых компьютерах.

Создание эталонного образа.

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

  1. Устанавливаем Ubuntu в виртуальной машине.
  2. Настраиваем установленную операционную систему. Например так:

    • включить основные и дополнительные репозитарии и произвести обновление пакетов;
    • установить полную локализацию системы;
    • установить мультимедийные кодеки;
    • установить пакеты с драйверами для видео карт nvidia и ati;
    • установить flash плугин для браузера;
    • установить плугин для открытия документов MSOffice 2007 (*.docx и др.) в OpenOffice;
    • установить необходимые программы и утилиты: ssh сервер, vnc сервер, unrar, wine, virtualbox и много чего ещё...;
    • указать сетевые настройки, например адреса dns и ntp серверов, маршруты;
    • отключить загрузку не нужных демонов;
    • отключить запуск не нужных заданий по расписанию cron;
    • любые другие программы и/или настройки.
  3. Настройка профиля пользователя по умолчанию. Для этого создаем пользователя, например testuser, логинимся под ним и производим настройку. Например:

    • отключить эффекты рабочего стола;
    • разрешить удаленный доступ к рабочему столу (vnc) и задать пароль для него;
    • прописать настройки соединения в браузере: проски-сервер и прочее;
    • в редакторе меню отключить запуск некоторых программ, например подменю "Игры";
    • в настройках сеанса, отключить запуск не нужных программ;
    • любые другие настройки.

    После завершения настройки профиля, копируем содержимое /home/testuser в /etc/skel. Делаем владельцом пользователя root:

    sudo chown -R root:root /etc/skel

    Просматриваем директорию /etc/skel, удаляем все лишнее, заменяем в файлах абсолюный путь /home/testuser на относительный ~/.

    Теперь при создании нового пользователя в его домашнюю директорию будет копироваться содержимое /etc/skel.

  4. Для создания образа будем использовать livecd дистрибутив System Rescue CD.

    После загрузки, поднимаем сеть:

    sysresccd ~ # net-setup

    Монтируем директорию по сети, куда мы будем копировать образ:

    sysresccd ~ # mkdir /mnt/etalon

    пример для sftp:

    sysresccd ~ # mount -t fuse sshfs#login@192.168.0.1:/etalon /mnt/etalon

    пример для smb:

    sysresccd ~ # mount -t cifs -o user=login //192.168.0.2/etalon /mnt/etalon

    Далее, монтируем жесткий диск виртуальной машины:

    sysresccd ~ # mkdir /mnt/sda1
    sysresccd ~ # mount /dev/sda1 /mnt/sda1

    Создаем образ обычной утилитой tar:

    sysresccd ~ # cd /mnt/sda1
    sysresccd sda1 # tar cvzf /mnt/etalon/etalon-ubuntu8.04-20080704.tar.gz *

Образ операционной системы создан. У меня файл образа занимает около 1,5 Гб. Остается только записать его на dvd болванку.

Развертывание эталонного образа на новом компьютере

Развертывание образа эта операция ради которой и затевалось создание самого образа. Здесь нас снова поможет незаменимый инструмент системного администратора System Rescue CD. Загружаем новый компьютер с его помощью, при загрузке вводим опции, чтобы после можно было освободить dvd привод:

rescuecd docache doeject

Вытаскиваем livecd, устанавливаем в привод болванку с образом. Далее:

  1. Разметка диска. Например: все место под корневой раздел, файловая система reiserfs, под swap 2ГБ:

    sysresccd ~ # сfdisk /dev/sda
    sysresccd ~ # mkfs.reiserfs /dev/sda1
    sysresccd ~ # mkswap /dev/sda2
  2. Монтируем диски и разворачиваем эталон:

    sysresccd ~ # mkdir /mnt/sda1
    sysresccd ~ # mount /dev/sda1 /mnt/sda1
    ...
    sysresccd ~ # mkdir /mnt/etalon
    sysresccd ~ # mount /dev/cdrom /mnt/etalon
    ...
    sysresccd ~ # tar -С /mnt/sda1 xvzf /mnt/etalon/etalon-ubuntu8.04-20080704.tar.gz
  3. Правим файлы /mnt/sda1/etc/fstab и /mnt/sda1/boot/grub/menu.lst чтобы UUID метки дисков соответствовали новым томам. UUID метки можно узнать с помощью команды:

    sysresccd ~ # blkid
  4. Устанавливаем загрузчик grub в mbr область нового диска:

    sysresccd ~ # grub-install --root-directory=/mnt/sda1 /dev/sda

Если все прошло успешно, то мы уже можем загрузить с операционную систему с жесткого диска. Дальше:

  1. Сконфигурируем видео драйвер (в эталоне должен быть установлен универсальный драйвер vesa):

    administrator@etalon:~# sudo dpkg-reconfigure -phigh xserver-xorg

    После перезапуска иксов (Ctrl-Alt-Backspace) должен подняться нормальный видео драйвер.

  2. Сменим имя хоста и сетевые настройки:

    administrator@etalon:~# sudo gedit /etc/hostname
    administrator@etalon:~# sudo gedit /etc/network/interfaces

Компьютер готов к работе. После установки на рабочее место пользователя ещё потребуется настроить принтера, но это уже отдельная история.

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

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

отсюда

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

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

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

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

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

Создаем образ:
#dd if=/dev/sda1 bs=8096 | gzip -9cf > sda1.dd-image.gz
Это занимает время. За процессом можно наблюдать на той же консоли с помощью периодической посылки USR1 сигнала процессу dd.
Для этого на другой консоли выполняем:

#ps | grep dd
определяем pid процесса dd и подставляем его в следующую команду
#watch -n 15 "kill -USR1 $pid_of_dd"
Распаковка образа:
#gunzip -c sda1.dd-image.gz | dd of=/dev/sda1 bs=8096
также можно подсчитать md5-сумму для раздела, чтобы после восстановления проверить правильность распаковки образа:
#dd if=/dev/sda1 bs=8096 | md5sum - > sda1.dd-image.md5
Параноики (бывают ситуации когда лучше потратить время на еще одну перепроверку) могут еще и проверить правильность создания образа:
#gunzip -c sda1.dd-image.gz | md5sum
Приятной всем работы ;)

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

Установка ubuntu 8.04 на eePC

отсюда


Когда я покупал себе ASUS Eee PC, я совершенно не думал о том, какую операционную систему установлю на нем - однозначно это будет Ubuntu Linux. Во-первых, потому, что Ubuntu у меня стоит и дома и на работе, во-вторых, потому, что и дома и на работе у меня есть локальное зеркало репозитория Ubuntu, а в-третьих просто потому, что данный дистрибутив меня всем устраивает.

После покупки я сразу же полез в Интернет в поисках различных HowTo по установке Ubuntu 8.04 на Eee PC. Результат меня несколько удивил. Несмотря на огромный ажиотаж вокруг Eee PC, этих самых HowTo в сети не так уж и много + большинство из них нацелены на Ubuntu 7.10 и предлагают запустить некий скрипт, который заменит системные конфигурационные файлы своими, заточенными под Eee PC.

На эти скрипты я даже и смотреть не стал, т. к. они предназначены для Ubuntu 7.10, и их запуск на Ubuntu 8.04 может привести к нехорошим последствиям. Поэтому во время поиска необходимой информации в сети я обращал внимание только на те статьи, в которых описывается, как можно настроить Ubuntu под Eee PC "своими руками". Найти такой HowTo, в котором содержались бы ответы на все встающие передо мной вопросы, мне не удалось, поэтому я решил систематизировать собранную мной информацию и слить ее в одну статью. Сейчас моя система уже настроена, поэтому я постараюсь вспомнить все действия, которые я производил над ней, дабы все заработало так, как мне хочется. Надеюсь, я ничего не упущу. :)


Установка

Для установки нам понадобится загрузочный диск с Ubuntu 8.04 и флэшка на 1 Гб или более.
Перед использованием флэшки не забудьте скопировать с нее все важные данные.

# Делаем образ диска
dd if=/dev/cdrom of=ubuntu.iso

# Устанавливаем пакет syslinux
sudo apt-get install syslinux

# Скачиваем скрипт, который запишет ISO-образ на флэшку
wget http://kiwilinux.org/public/isotostick.sh

# Делаем этот скрипт исполняемым
sudo chmod a+x isotostick.sh

# Далее предполагается, что /dev/sdX1 - файл устройства вашей флешки.

# Форматируем флэшку
sudo mkfs.vfat -F 32 -n ubuntu /dev/sdX1

# Делаем раздел загрузочным
sudo parted /dev/sdX set 1 boot on

# Запускаем скачанный скрипт
sudo ./isotostick.sh cd.iso /dev/sdX1

# Делаем флэшку загрузочной
sudo syslinux /dev/sdX1

Все, теперь можно грузиться с этой флэшки как с диска и устанавливать Ubuntu на Eee PC. Для этого во время загрузки Eee PC нажмите F2, чтобы зайти в BIOS и там на вкладке Boot сделайте соответствующие настройки, чтобы загрузка происходила с флэш карты.


Загрузка

Чтобы увеличить скорость загрузки операционной системы, в /boot/grub/menu.lst замените строку
# defoptions=quiet splash
на
# defoptions=quiet splash clocksource=hpet
и запустите
sudo update-grub
Теперь время загрузки операционной системы должно сократиться примерно на 40 секунд.


Выключение

После установки первое, что бросается в глаза - это то, что Ubuntu не хочет выключаться. :) По команде halt запускается процесс остановки системы, останавливаются работающие службы, экран гаснет, но компьютер не выключается.

Чтобы исправить это, открываем /etc/init.d/halt и добавляем строку "modprobe -r snd-hda-intel" в тело функции do_stop, как показано ниже:
....
do_stop () {
modprobe -r snd-hda-intel

if [ "$INIT_HALT" = "" ]
....


Звук

Добавьте в файл /etc/modprobe.d/snd-hda-intel (если файл не существует, то создайте его) строку
options snd-hda-intel model=3stack-dig


Поддержка горячих клавиш Fn+F[1-9]

Устанавливаем исходные файлы и компилируем из них модуль:
sudo apt-get install module-assistant eeepc-acpi-source
sudo m-a a-i eeepc-acpi
sudo sh -c 'echo eeepc-acpi >> /etc/modules'

Если в будущем вы обновите ядро, то вам придется выполнить команду
sudo m-a a-i eeepc-acpi
которая соберет модуль заново для нового ядра.

У меня заработали не все клавиши. Кнопка засыпания и кнопки увеличения/уменьшения яркости дисплея работают отлично. Про настройку кнопки включения/выключения Wi-Fi я расскажу ниже. Кнопки выключения/уменьшения/увеличения громкости звука не заработали, когда я пытался настроить их по тем HowTo, которые мне попались. Копать глубже в этом направлении я не стал, т. к. лично мне на Eee PC звук не нужен (я его вообще выключил в BIOS'е). Поэтому решение данной проблемы я оставляю вам. :) Если кто напишет в комментариях, как их настроить - буду благодарен, может быть, потом пригодится.


Динамическое изменение частоты процессора

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

Также стоит отметить, что хотя производитель и заявляет, что частота процессора составляет 900 Мгц, на самом деле он работает на частоте 630 Мгц. Судя по отзывам, даже если вы поднимите частоту до 900 Мгц, то прироста производительности вы не получите - для этого необходимо разгонять шину, чем я не стал заниматься - для меня время автономной работы имеет гораздо большее значение.

Итак...

Устанавливаем необходимый нам пакет, позволяющий менять частоту процессора на лету:
sudo apt-get install cpufrequtils
и добавляем в /etc/rc.local следующие строки:
# Включаем динамическое изменение частоты процессора
modprobe p4-clockmod
modprobe cpufreq-ondemand
# Включаем плавное изменение частоты процессора в зависимости
# от нагрузки в диапазоне от 112 Мгц до 675 Мгц. Новое значение
# частоты будет вычисляться каждые 500 мсек.
echo 112500 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 675000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
powernowd -m 1 -p 500
Если в процессе работы скорость реакции приложений вас не будет устраивать, то можно повысить минимальную частоту процессора (список доступных частот можно посмотреть в /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies) или уменьшить значение опции -p утилиты powernowd.


Wi-Fi

Компилируем и устанавливаем необходимый модуль:
sudo apt-get install build-essential
wget 'http://snapshots.madwifi.org/special/madwifi-nr-r3366+ar5007.tar.gz'
tar zxvf madwifi-nr-r3366+ar5007.tar.gz
cd madwifi-nr-r3366+ar5007
make clean
make
sudo make install
sudo reboot
Если в будущем вы будете обновлять ядро, то необходимо будет заново скомпилировать и установить модуль.

Создаем файл /etc/acpi/actions/wireless-toggle.sh со следующими строками:
#!/bin/sh

# main wifi toggle script (loads/unloads modules)

. /usr/share/acpi-support/key-constants

# The sequence here *may* be important.
# (It seems to fail intermittently if you deviate.)
unload_modules() {
rmmod wlan_scan_sta
rmmod wlan_tkip
rmmod wlan_wep
rmmod wlan_ccmp
rmmod wlan_acl
rmmod ath_pci
sleep 1
rmmod ath_rate_atheros
rmmod ath_hal
rmmod wlan
rmmod ath_dfs
}

# At least this one's straightforward.
load_modules() {
modprobe ath_pci
}

wifi_on() {
# Force PCI Express Hotplug to reinit
rmmod pciehp
sleep 1
# pciehp_force may be unnecessary; Xandros did it.
modprobe pciehp pciehp_force=1
sleep 1
# Switch on the hardware
echo 1 >/proc/acpi/asus/wlan
sleep 1
load_modules
}

wifi_off() {
unload_modules
echo 0 >/proc/acpi/asus/wlan
}

case $1 in
on)
acpi_fakekey $KEY_PROG1
wifi_on
;;
off)
acpi_fakekey $KEY_PROG2
wifi_off
;;
toggle)
STAT=`cat /proc/acpi/asus/wlan`
if [ "$STAT" = "1" ];
then wifi_off;
else wifi_on;
fi
;;
esac

Также создаем файл /etc/acpi/eeepc-hotkeys.sh:
#!/bin/sh

code=$3

case $code in
# Fn+F2 - enable/disable wifi
00000010)
/etc/acpi/actions/wireless-toggle.sh on
;;
00000011)
/etc/acpi/actions/wireless-toggle.sh off
;;
esac

Делаем эти файлы исполняемыми:
chmod a+x /etc/acpi/actions/wireless-toggle.sh
chmod a+x /etc/acpi/eeepc-hotkeys.sh

И создаем файл /etc/acpi/events/hotkey, в который записываем:
event=hotkey ATKD
action=/etc/acpi/eeepc-hotkeys.sh %e

Все, теперь Wi-Fi и кнопка его включения/выключения должны работать. В принципе, для подключения к Wi-Fi точке вы можете использовать графические утилиты, но лично мне гораздо удобнее набрать пару слов в консоли, чем щелкать по множеству кнопок. Поэтому:
# Устанавливаем пакет для работы с WPA шифрованием
sudo apt-get install wpasupplicant

Создаем файл /etc/wpa_supplicant/wpa_supplicant.conf следующего содержания:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
fast_reauth=1
eapol_version=1
network={
ssid="ROUTER_ID"
psk="PASSWORD"
priority=5
}
где ROUTER_ID - имя точки доступа, а PASSWORD - пароль для доступа к ней.

Добавляем в /etc/network/interfaces строки:
iface ath0 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Все, теперь для подключения к точке доступа необходимо выполнить команду
sudo ifup ath0

Если вы используете Wi-Fi точку с открытым доступом, то устанавливать wpasupplicant и создавать файл /etc/wpa_supplicant/wpa_supplicant.conf не нужно - достаточно только добавить в /etc/network/interfaces строки
iface ath0 inet dhcp
pre-up ifconfig ath0 up
pre-up iwconfig ath0 essid "ROUTER_ID"

Разорвать уже установленное соединение можно командой
sudo ifdown ath0

В принципе, можно прописать команды ifup/ifdown в скрипт /etc/acpi/actions/wireless-toggle.sh, чтобы при нажатии на кнопку включения/выключения Wi-Fi автоматически происходило подключение к Wi-Fi точке.


Экономим электроэнергию

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

У меня самыми активными оказались Wi-Fi, USB и Ethernet. Поэтому я добавил в /etc/rc.local следующие строки, которые отключают на этапе загрузки все эти интерфейсы:
# Отключаем Ethernet
/sbin/ifconfig eth0 down

# Отключаем USB
rmmod ehci-hcd
rmmod uhci-hcd

# Отключаем Wi-Fi
/sbin/ifconfig ath0 down

Включаю я их только тогда, когда они мне нужны. Включается они следующими командами:
# Ethernet
ifup eth0

# USB
sudo modprobe ehci-hcd
sudo modprobe uhci-hcd

# Wi-Fi
ifup ath0

Если нет желания набирать каждый раз все эти команды в консоли, то можно поставить программу Eee PC sm-Control, написанную товарищем Serge_RUS, которая позволяет производить те же действия через графический интерфейс.



SD/SDHC карты

Пока что мне вполне хватает встроенного SSD диска, и покупать дополнительную флэш память я к своему Eee PC не думаю. Но, читая различные HowTo и форумы, я заметил, что у многих возникают проблемы с некоторыми картами памяти. Т. к. у меня пока такой проблемы нет, я не особо интересовался, какие карты лучше покупать и как бороться с проблемами, если они вдруг возникнут. В конце статьи я привел пару ссылок на эту тему, если она для вас актуальна.


Увеличение срока службы SSD

Чтобы уменьшить количество операций записи на SSD, добавьте в /etc/fstab следующие строки, чтобы все временные файлы и логи писались в оперативную память:
tmpfs /tmp tmpfs defaults,noatime,nodiratime 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nodiratime 0 0
tmpfs /var/log tmpfs defaults,noatime,nodiratime 0 0

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

В параметрах монтирования раздела SSD диска укажите опции noatime и nodiratime. Т. е. если раздел у вас монтируется строкой
UUID=79d788c4-a8fb-4f03-92c2-e90d4c26b51b    /    ext2    defaults,errors=remount-ro    0    1
то замените ее на
UUID=79d788c4-a8fb-4f03-92c2-e90d4c26b51b    /    ext2    defaults,noatime,nodiratime,errors=remount-ro    0    1
Включение этих опций запрещает обновление времени последнего доступа каждый раз, когда вы обращаетесь к какому-либо файлу или папке на этом разделе.

Если вы не пользуетесь командой locate, то можете удалить (или просто поставить exit 0 после строки #!/bin/sh) файл /etc/cron.daily/mlocate. Этот скрипт запускается каждый день и обновляет базу locate, содержащую пути всех файлов в системе (очень удобно использовать locate, если необходимо быстро найти какой-нибудь файл по имени - каманда find работает значительно медленнее, т. к. использует не готовую базу данных, а каждый раз просматривает все дерево каталогов). Если же вы пользуетесь locate'ом, то можно переместить /etc/cron.daily/mlocate в /etc/cron.weekly/, чтобы база обновлялясь раз в неделю.

Также, чтобы уменьшить количество операций записи на SSD, отключаем все логи (имхо, на карманном ноутбуке они не нужны):
apt-get remove klogd sysklogd logrotate


Экономим место на SSD

Установите пакет localepurge. Он запросит у вас список локалей, которые вам нужны, и удалит все остальные. localepurge также будет автоматически запускаться при каждом запуске apt.

Запустите Synaptic, зайдите в меню Settings->Preferences, перейдите на вкладку Columns and Fonts и поставьте флажок напротив поля Installed Size. Теперь в списке пакетов появится еще одна колонка - Size. Если пакет установлен, то в этой колонке будет отображен размер, который занимают файлы данного пакета. Отсортируйте список пакетов по этой колонке и удаляйте все ненужные пакеты, которые занимают много места.


Компактная тема

Чтобы увеличить количество полезной информации, отображаемой на относительно небольшом экране Eee PC, рекомендую вам установить компактную тему для GTK - Human Compact.





Чтение книг

Для чтения книг могу порекомендовать FBReader.




Ссылки по теме

linux-on-laptops

Linux Laptop & Notebook Installation Guides


DebianEeePC/HowTo/Wifi
Ubuntu 8.04 (Hardy Heron) on the Asus Eee PC
(Un)supported Hardware
Проблемы с SDHC и их решение
Установка Ubuntu на Eee PC
Установка и настройка Ubuntu

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

Запись DVD CD

http://www.cyberciti.biz/tips/how-do-i-write-cd-at-debain-linux-command-prompt.html

http://www.debuntu.org/2006/06/03/61-how-to-burn-dvds-from-the-command-line

http://www.lesbell.com.au/Home.nsf/b8ec57204f60dfcb4a2568c60014ed0f/16d7aba66e3a1812ca2571b80007d960?OpenDocument

суббота, 7 июня 2008 г.

коллекция скриптов

http://www.shelldorado.com/scripts/

скрипт для фоток
Read photos from CF/SD memory card
http://platon.sk/cvs/cvs.php/scripts/shell/photo-managment/foto-copy
и еще сортировка фоток
http://j-sheridan.livejournal.com/35417.html
http://www.nooblet.org/blog/2007/exifsort/
http://www.nslu2-linux.org/wiki/Applications/DigitalCameraBackup
http://dejant.blogspot.com/2007/07/sort-digital-photos.html

HOWTO: Wake On LAN, удалённое включение компьютера

В данном HowTo рассматривается вопрос использования Wake on LAN под Ubuntu.

Wake-On-LAN — технология, позволяющая удалённо включать компьютер. Почему-то не часто используемая функция, хотя бесспорно будет полезна любителям ввести halt не в том ssh-сеансе Wink

Что понадобится:
- компьютер-жертва с ATX-источником питания, материнской платой, поддерживающей Wake On LAN и Ubuntu на борту;
- сетевой адаптер с поддержкой Wake On LAN;
- знание IP и MAC сетевого устройства;
- второй компьютер, при помощи которого будем будить первого;
- спец-программа на втором компьютере, умеющая отсылать «волшебный пакет».

Как это работает:
Управляемый компьютер находится в дежурном режиме (stand by) и выдаёт питание на сетевой адаптер. Сетевой адаптер находится в режиме пониженного энергопотребления, просматривая все пакеты, приходящие на его MAC-адрес и ничего не отвечая на них. Если одним из пакетов окажется Magic Packet, сетевой адаптер выдаёт сигнал на включение питания компьютера.

Делаем:
1.Включаем поддержку WAN в BIOS. Как это делается — смотрите в мануале вашей материнской платы. Или просто ищите в настройках BIOS что-то похожее на «enable Wake On LAN».

2.Теперь загружаем ОС и создаем скрипт, который будет должным образом конфигурировать сетевую карту при каждой загрузке Ubuntu.

- Выбираем необходимую сетевую карту:
Код:
ifconfig
Код:
eth0      Link encap:Ethernet  HWaddr 01:23:45:67:89:ab
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::215:f2ff:fe6f:3487/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:71495 errors:0 dropped:0 overruns:0 frame:0
TX packets:76190 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23164212 (22.0 MiB) TX bytes:7625016 (7.2 MiB)
Interrupt:217 Base address:0xd400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1290 errors:0 dropped:0 overruns:0 frame:0
TX packets:1290 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:161182 (157.4 KiB) TX bytes:161182 (157.4 KiB)
в данном примере карта одна, eth0.

- Теперь создаем сам скрипт, для этого сначала необходимо получить права администратора:
Код:
sudo su
cd /etc/init.d/
gedit wakeonlanconfig

- пишем в файл следующие строки, сохраняем, закрываем:
Код:
#!/bin/bash
ethtool -s eth0 wol g
exit

- устанавливаем права:
Код:
chmod a+x wakeonlanconfig

- создаем символическую ссылку, делаем скрипт исполняемым при загрузке:
Код:
update-rc.d -f wakeonlanconfig defaults

на экране должно отобразиться что-то вроде
Код:
Adding system startup for /etc/init.d/wakeonlanconfig ...
/etc/rc0.d/K20wakeonlanconfig -> ../init.d/wakeonlanconfig
/etc/rc1.d/K20wakeonlanconfig -> ../init.d/wakeonlanconfig
/etc/rc6.d/K20wakeonlanconfig -> ../init.d/wakeonlanconfig
/etc/rc2.d/S20wakeonlanconfig -> ../init.d/wakeonlanconfig
/etc/rc3.d/S20wakeonlanconfig -> ../init.d/wakeonlanconfig
/etc/rc4.d/S20wakeonlanconfig -> ../init.d/wakeonlanconfig
/etc/rc5.d/S20wakeonlanconfig -> ../init.d/wakeonlanconfig

- проверяем что всё нормально получилось, вводим в терминале
Код:
/etc/init.d/wakeonlanconfig
если никакого вывода не последовало и показалась следующая строка ввода - значит всё прошло гладко.

- проверяем на практике.
распечатываем данное руководство, выключаем первый компьютер и идём ко второму Smiley Здесь нам понадобится одна из многочисленных программ, умеющих слать волшебный пакет. Программа попросит указать IP и MAC первого компьютера, в крайнем случае - еще и порт (обычно 7 или 9).
Для Ubuntu удобна программа wakeonlan, для офтопика найдет гугл. Мне же нравится он-лайн сервис http://www.rshut.com/rus/products/wol которым легко можно воспользоваться даже с сотового телефона Smiley

Пробуем:
Код:
wakeonlan -i [IP адрес] -p [порт] [MAC адрес]
, например
Код:
wakeonlan -i 192.168.1.2 -p 7 01:23:45:67:89:ab

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

_____________________________________________________________________
источники:
http://ru.wikipedia.org/wiki/Wake-on-LAN - теоретическая часть
http://ubuntuforums.org/showthread.php?t=234588 - практическая часть

HowTo испробовано на Ubuntu 7.10, сработало с первой попытки.

Скачать linuxFormat одной командой

отсюда
Бывает иногда интересно полистать, оное красочное издание, в формате PDF.
Но скачивать все номера поотдельности? Без поллитру не обойтись!
Не торопитесь в магазин. Продукт виртуальный, но не менее ценен: Wget!
Вбиваем одну команду, и на утро (или день), все номера складированны у
вас в выбранной директории Ну а в это время, неторопясь, можно употребить
и натуральный продукт!
wget -U Mozilla -r -cv -l 4 -np -w 5 -A.pdf -P /home/XXXXX/linuxformat http://www.linuxformat.ru/pdf.phtml

Где:
-A.pdf только файлы PDF
-U Mozilla маскировка под браузер
-P /home/XXXXX/linuxformat каталог в вашей домашней директории

Wget проходит по ссылкам на http://www.linuxformat.ru/pdf.phtml
и сохраняет только файлы PDF.

И ещё одна ценнейшая функия:
После посещения интернета, можно собрать ссылки на файлы, в обычный текстоый
файл ,к примеру links.И сохраним его в дом.директории. Вводим команду:
wget -U Mozilla -i links

Файлы будут скачаны в домашнюю директорию.Ну а свободное время
можно также использовать с пользой.В т.ч.чтение man wget

пятница, 23 мая 2008 г.

Скрипт для упрощения монтирования CD-ROMа Автор: Антон [есть мнение]

Вот такой простой скрипт:

#!/bin/sh
retval=`/sbin/mount | grep /mnt/cdrom`
if [ -n "$retval" ];
then /sbin/umount /mnt/cdrom 1> /dev/null 2> /dev/null
if [ "$?" -ne 0 ];
then echo "Не могу размонтировать CDROM"
else echo "Размонтировал CDROM"
eject /dev/cdrom
fi
else /sbin/mount /dev/cdrom 1> /dev/null 2> /dev/null
if [ "$?" -ne 0 ];
then echo "Не могу смонтировать CDROM"
else echo "Примонтировал CDROM"
fi
fi


П.С. копируем в каталог /sbin под именем cdm. Сам определяет состояние

среда, 21 мая 2008 г.

Настройка exim

здесь

Дрова для Realtek 8185

Дрова для Realtek 8185
wiki

official drivers page

Опыт настройки USB-адаптера D-Link DWL-G122 в Ubuntu

отсюда

Мой опыт настройки USB-адаптера D-Link DWL-G122 в Ubuntu 7.10 Linux, но думаю что методика применима для большинства дистрибутивов (аналогичным методом точно можно настроить в Ubuntu 7.04)

Предисловие

Будем настраивать соединение Wi-Fi USB-адаптера D-Link DWL-G122 rev.C с точкой доступа в Ubuntu 7.10 Linux

Будем пользоваться windows-драйверами через ndiswrapper. Соответственно предполагается что ndiswrapper уже установлен в системе. Для Ubuntu 7.10 это пакеты ndiswrapper-common и ndiswrapper-utils-1.9 Естественно понадобятся и windows-драйвера.

В рассматриваемом адаптере используется чипсет производства Ralink. Проблема в том, что Linux считает, что он умеет работать с данным чипсетом. Соответственно при загрузке ОС мы с большой долей вероятности в выводе команды 'ifconfig -a' увидим сетевой интерефейс 'rausb0'

Все операции должны выполняться с правами пользователя root

Естественно, я снимаю с себя всякую ответственность за результат Ваших действий в системе :-(


Тактика и стратегия

1. Найти ...

Находим модули ядра, которые нам мешают.

lsmod | grep rt7

lsmod | grep rt2

Вывод данных команд будет зависеть от версии дистрибутива Linux. В моем случае это были rt73usb, rt2x00usb и rt2x00lib

2. ... и обезвредить

modprobe -l

показывает где находятся модули ядра. В моем случае все 3 модуля (rt73usb, rt2x00usb и rt2x00lib) находились в каталоге /lib/modules/2.6.22-14-generic/ubuntu/wireless/rt2x00/

Чтобы данные модули больше не подгружались, их нужно либо удалить, либо переименовать. Я выбрал второе.

cd /lib/modules/2.6.22-14-generic/ubuntu/wireless/rt2x00/

mv rt2x00usb.ko rt2x00usb.ko.old

mv rt2x00lib.ko rt2x00lib.ko.old

mv rt73usb.ko rt73usb.ko.old

Все. После перезагрузки системы эти модули не будут загружены.

3. "Заграница" нам поможет

Сначала проинсталлируем драйвера адаптера. Для этого перейдем в каталог где они лежат и выполним команду:

ndiswrapper -i Dr71WU.inf

где Dr71WU.inf inf-файл драйвера нашего адаптера. Данная команда копирует нужные ей файлы в каталог /etc/ndiswrapper. Оттуда модуль ядра ndiswrapper и будет брать их в дальнейшем.

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

modprobe -i ndiswrapper

depmod -a

Теперь проверим что в файле /etc/modprobe.d/aliases отсутствует запись для rausb0

Далее создаем интерфейс wlan0

vi /etc/modprobe.d/ndiswrapper

с такой записью:

alias wlan0 ndiswrapper

Теперь можно перезагрузить систему и если все было правильно, то вывод команды 'ifconfig -a' покажет наличие в системе интерфейса wlan0.

Если этого не произошло, попробуйте еще раз сделать

modprobe -i ndiswrapper

depmod -a

это должно помочь.

4. "Полная тайна вкладов... то есть организации"

Дальше рассказ о том как настроить WPA-шифрование. Для этого в системе должен быть wpa_supplicant (пакет wpasupplicant в Ubuntu 7.10)

Предположения относительно точки доступа:

- SSID = testnet

- сеть "скрытая", т.е. не анонсирует своего имени

- адрес сети 00:11:22:33:44:55

- используются протоколы WPA-PSK, WPA2-PSK, TKIP, AES

- пароль PSK = 1234567890axcvf

- на точке доступа настроена динамическая раздача адресов

Двоичный пароль запрашиваем командой:

wpa_passphrase testnet 1234567890axcvf

и получаем от него нечто вроде:

network={
ssid="testnet"
#psk="1234567890axcvf"
psk=95d5e79040c1da5c70981fbc51679331b53245e923b7dc62f0621826d529abfa
}

Вариантов два.

Вариант 1

Если беспроводная сеть является постоянной, то в файле /etc/network/interfaces прописываем:

auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-ssid testnet
wpa-bssid 00:11:22:33:44:55
wpa-scan-ssid 1
wpa-ap-scan 2
wpa-proto WPA RSN
wpa-pairwise TKIP CCMP
wpa-group TKIP CCMP
wpa-auth-alg OPEN
wpa-key-mgmt WPA-PSK
wpa-psk 95d5e79040c1da5c70981fbc51679331b53245e923b7dc62f0621826d529abfa


Вариант 2

Если беспроводная сеть нужна время от времени,

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

wpa_supplicant -D wext -i wlan0 -c /etc/wpa_supplicant.conf -B

Содержимое файла /etc/wpa_supplicant.conf:

ctrl_interface=/var/run/wpa_supplicant
ap_scan=2
network={
ssid="testnet"
bssid=00:11:22:33:44:55
scan_ssid=1
proto=WPA RSN
key_mgmt=WPA-PSK
auth_alg=OPEN
pairwise=TKIP CCMP
group=TKIP CCMP

psk=95d5e79040c1da5c70981fbc51679331b53245e923b7dc62f0621826d529abfa
}

IP-адрес получается динамически, говорим:

dhclient wlan0

Все.

понедельник, 19 мая 2008 г.

полезные утилиты

htop - просмотр и удаление процессов
cairo-clock - прикольные гномовские часы
darkstat - статистика по трафику интерфейса ( после установки в конфиге подправить первую строку на yes
iptraf просмотр трафика с консоли

Сигнал об окончании загрузки сервера

ставим beep
apt-get install beep
и правим скрипт /etc/rc.local
nano /etc/rc.local
добавляем в скрипт строку
beep -l 900 -r 3 -f 500
теперь после загрузки сервака будет 3 раза пищать встроенный динамик

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

How-to Apache2 и vhost_alias

ставим Apache
# apt-get install apache2
После установки у нас появилась директория /var/www (здесь расположен сайт по умолчанию. Все документы в этой директории доступны через броузер по адресу http://localhost/ или IP адресу сервера.

ставим PHP5 и MySql
# apt-get install libapache2-mod-php5
# apt-get install mysql-server
# apt-get install php5-mysql
рестартуем apache
# /etc/init.d/apache2 restart
Проверяем работу PHP
# echo "<?php echo phpinfo() ?>" > /var/www/info.php
смотрим броузером http://localhost/info.php и видим результат работы PHP.
если предлагается загрузить файл проверяем файлы /etc/apache2/apache2.conf или /etc/apache2/mods-enabled/php5.conf на наличие строки
AddType application/x-httpd-php .php .phtml .php3
если потребовались изменения делаем рестарт апача
# /etc/init.d/apache2 restart
Настраиваем Dynamic Virtual Hosting по именам сайтов (url):
разрешаем запуск модуля vhost_alias
# a2enmod vhost_alias
для того чтобы модуль заработал правим /etc/apache2/apache2.conf
отключаем canonical name ,если нужно настраиваем логи по каждому виртуальному хосту, и указываем директорию виртуальных хостов
# берем имя сервера из Host: header
UseCanonicalName Off
# директории с виртуальными хостами
VirtualDocumentRoot /var/www/vhosts/%0
VirtualScriptAlias /var/www/vhosts/%0/cgi-bin
создаем директорию для виртуальных хостов
# mkdir /var/www/vhosts
# chown -r www-data:www-data /var/www/vhosts
Создаем темплейт виртуального хоста и копируем туда например joomla 1.5
# mkdir -p /var/www/vhosts/template/cgi-bin

Рестартуем апач
# /etc/init.d/apache2 restart
Все готово для создания виртуальных хостов.
Просто копируем темплейт хоста в директорию с именем будущего сайта например для сайта www.mysite.ru
# cp -r /var/www/vhosts/template /var/www/vhosts/www.mysite.ru
теперь все HTTP запросы к серверу с Host-header www.mysite.ru будут перенаправляться на сайт в директории /var/www/vhosts/www.mysite.ru

Для того чтоб до сайта можно было добраться правим записи DNS
или правим /etc/hosts file и добавляем запись
127.0.0.1 localhost www.mysite.ru

вторник, 13 мая 2008 г.

Генерируем пароли

ставим pwgen
sudo apt-get install pwgen
и запускаем
pwgen

how-to Установка антивируса ClamAV

Устанавливаем антивирус
apt-get install clamav
обновляем антивирусную базу
freshclam
обновить сейчас или
freshclam -d -c 2
запускаем как демон (обновлять два раза в день)
и запускаем сканирование вирусов
clamscan -r / <- все сканируем
или
clamscan -r /home <- только домашние папки
разумеется лучше в cron запихнуть например так

0 9 * * * /usr/bin/freshclam > /dev/null 2>&1

и антивирусная база будет обновляться каждый день в 9-00.

Шифрованная файловая система

1.Создаем сам файл, на котором будет храниться шифрованная файловая система
touch /home/secure
2.Заполняем его случайными данными, чтобы сложнее было дешифровать
shred -n1 -s500M /home/secure
в данном случаи мы указали размер в 500Мб.

3.Подгружаем нужные модули:

modprobe dm-crypt
modprobe aes_generic
(aes - быстрый алгоритм шифрования)

4.Создаем loopback устройство из файла:
losetup /dev/loop0 /home/secure
наше устройство теперь называется /dev/loop0, а находится оно в файле /home/secure

5.Создаем шифрованный том из устройства /dev/loop0
cryptsetup -c aes -y create mycrypt /dev/loop0
шифрованный том в этом примере будет называться mycrypt

6.Форматируем его:
mkreiserfs /dev/mapper/mycrypt
После этих операций в устройстве /dev/mapper/mycrypt находится файловая система с шифрованными данными. Ее уже можно монтировать / писать на нее / размонтировать.

7.Монтирование:
losetup /dev/loop0 /home/secure
cryptsetup create mycrypt /dev/loop0
mount -o acl /dev/mapper/mycrypt /home/mnt
ACL - включаем потом для самбы пригодиться

8.Размонтирование:
umount /dev/mapper/mycrypt
cryptsetup remove mycrypt
losetup -d /dev/loop0


Хранение шифрованных данных на отдельной партиции LVM

1. Создаем партицию
lvcreate -L2G -nstorage vg

в данном случаи мы задали размер 2Гб для тома с именем storage в группе vg. Подробнее в документации по LVM2.

2.Подгружаем нужные модули:
modprobe dm-crypt
modprobe aes

(aes - быстрый алгоритм шифрования, можно использовать blowfish, des и пр. - см. раздел Cryptographic options ядра)

3. Создаем шифрованный том из устройства /dev/vg/storage
cryptsetup -c aes -y create mycrypt /dev/vg/storage

шифрованный том в этом примере будет называться mycrypt

4.Форматируем его:
mkreiserfs /dev/mapper/mycrypt

Все. После этих операций в устройстве /dev/mapper/mycrypt находится файловая система с шифрованными данными. Ее уже можно монтировать / писать на нее / размонтировать.

5.Монтирование:
cryptsetup create mycrypt /dev/vg/storage
mount /dev/mapper/mycrypt /mnt/storage

6.Размонтирование:
umount /dev/mapper/mycrypt /mnt/storage
cryptsetup remove mycrypt

воскресенье, 11 мая 2008 г.

Настройка MTA для работы через внешний SMTP сервер

отсюда
Поскольку MTA существуют самые разные и многим нравится только какой-то определенный, я попытаюсь описать настройку нескольких популярных MTA.

1. Sendmail
Классический Sendmail многим не нравится из-за сложной настройки, но все-таки это очень мощный и достаточно распространенный MTA. Итак (все действия будут выполнятся пользователем root),

# apt-get install sendmail

Добавим несколько строк в /etc/mail/sendmail.mc для того, чтобы Sendmail отсылал почту через gmail (добавлять эти строчки нужно до параметров MAILER, иначе потом будет ошибка при сборке конфигов).

define(`SMART_HOST',`smtp.gmail.com')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`RELAY_MAILER',`esmtp')dnl
define(`RELAY_MAILER_ARGS', `TPC $h 587')dnl
FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl

Теперь создадим папку /etc/mail/auth, а в ней - файл client-info, в котором будут храниться наши логин и пароль для my.name@gmail.com.

# mkdir /etc/mail/auth
# touch /etc/mail/client-info

Добавим в client-info наши параметры авторизации (my.name заменим на свой логин на gmail, а password - на пароль).

AuthInfo:smtp.gmail.com "U:root" "I:my.name" "P:password" "M:PLAIN"
AuthInfo:smtp.gmail.com:587 "U:root" "I:my.name" "P:password" "M:PLAIN"

Для пущей безопасности можно сделать этот файл (да и папку тоже) доступными только для пользователя root

# chmod 600 /etc/mail/auth/client-info
# chmod 700 /etc/mail/auth

Преобразуем этот файл в нужный формат

# makemap -r hash /etc/mail/auth/client-info.db < /etc/mail/auth/client-info

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

# cd /etc/mail
# make

И наконец перезапускаем MTA для применения изменений

# /etc/init.d/sendmail reload

Готово. Можно отправлять почту.

2. Postfix
Postfix обладает всей мощью Sendmail, будучи полностью с ним совместимым, но при этом он гораздо проще в конфигурации. Кроме того, это мой любимый MTA, так что я не мог обойтись без описания его настройки. Итак (все действия производятся от имени root),

# apt-get install postfix

Скопируем главный настроечный файл postfix в нужное место (почему-то в Kubuntu он не устанавливается по-умолчанию)

# cp /usr/share/postfix/main.cf.debian /etc/postfix/main.cf

В конец этого файла добавим несколько строк, чтобы настроить доставку почты через gmail.

relayhost = smtp.gmail.com:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/gmail_passwd
smtp_sasl_security_options = noanonymous

Теперь создадим указанный нами файл авторизации

# touch /etc/postfix/gmail_passwd

и добавим в него наши логин и пароль на gmail (my.name заменяем на логин, а password - на пароль).

smtp.gmail.com:587 my.name@gmail.com:password

Преобразуем этот файл в нужный формат (BDB) и для пущей безопасности защитим его от доступа простых смертных.

# postmap /etc/postfix/gmail_passwd
# chown root:postfix /etc/postfix/gmail_passwd*
# chmod 0640 /etc/postfix/gmail_passwd*

Перезапускаем Postfix для применения изменений.

# /etc/init.d/postfix restart

Настройка закончена. MTA готов к отправке почты через gmail.

3. Exim
Exim - один из самых популярных (и мощных) MTA. Именно его мне советовала Kubuntu при установке Mutt. Кроме того, exim уже упоминался в этом блоге, так что описание его настройки вполне закономерно. Итак (всё делаем с правами root),

# apt-get install exim4

Отредактируем следующие параметры в файле /etc/exim4/update-exim4.conf.conf, чтобы отправлять почту через gmail

dc_eximconfig_configtype='smarthost'
dc_smarthost='smtp.gmail.com::587'

В файл авторизации /etc/exim4/passwd.client добавим следующие строки (подставляем свои логин и пароль вместо my.name и password соответственно)

gmail-smtp.l.google.com:my.name@gmail.com:password
*.google.com:my.name@gmail.com:password
smtp.gmail.com:my.name@gmail.com:password

Выполним следующую команду для применения новых настроек

# update-exim4.conf

На этом настройка завершена. Exim будет отправлять почту через gmail.

Использование bacula для mysql баз

отсюда
При использовании Bacula для копирования MySQL баз данных на Bacula-клиенте (там, откуда необходимо копировать mysql-базы) необходимо создать скрипт /usr/loca/bin/mysqlhotcopyall:

#!/bin/bash
DBLIST="db1 db2 db3 mysql" # здесь необходимо указать имена баз, которые следует копировать
DBDIR=/var/lib/bacula/mysql
UP=" --user=$1 --password=$2"
LOGFILE=/var/log/backup.log
mkdir $DBDIR
for DATABASE in $DBLIST
do
mysqlhotcopy $UP $DATABASE ${DBDIR} --allowold >> ${LOGFILE}
done

Также необходимо в MySQL'е создать пользователя bacula, который будет выполнять блокировку и копирование указанных баз на время backup'а. Данному пользователю должны быть предоставлены глобальные привилегии SELECT, RELOAD, LOCK TABLES.

CREATE USER 'bacula'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT SELECT, RELOAD, LOCK TABLES ON *.* TO 'bacula'@'localhost' IDENTIFIED BY 'PASSWORD';

На Bacula Director'е в соответствующий job добавить строки:

ClientRunBeforeJob = "/usr/local/bin/mysqlhotcopyall bacula PASSWORD"
ClientRunAfterJob = "/bin/rm -rf /var/lib/bacula/mysql"

Благодаря указанным параметрам перед backup'ом с помощью утилиты mysqlhotcopy указанные базы будут скопированы в каталог /var/lib/bacula/mysql. После backup'а содержимое данного каталога будет очищено.