вторник, 23 декабря 2008 г.
воскресенье, 21 декабря 2008 г.
четверг, 11 декабря 2008 г.
slimrat: -утилита для закачки с файлообменников
- Rapidshare
- FastLoad
- MediaFire
- YouTube
- DepositFiles
- Leteckaposta
Я протестировал только rapidshare, но тест пройден отлично. Slimrat распознает 60-ти секундные таймауты rapidshare, ожидает нужное время и затем скачивает файлы из списка по очереди.
взято отсюда
clive: cli-утилита для скачивания встроенного в страницы видео
Часто использую его для youtube и очень доволен - скачивается mp4-видео с информативным именем файла.
взято отсюда
вторник, 25 ноября 2008 г.
среда, 29 октября 2008 г.
SSHFS -монтирование удаленных систем через SSH.
$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
До установки проверяем установку питоновских пакетов
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
Делаем свой дистрибутив
- Полный бекап своей системы, включая персональные данные,и создать его в виде LiveCD или DVD для последующей инсталляции.
- Сделать свой дистрибутив на основе 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
создания зеркала репозиториев, указанных в файле /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 г.
Доменное имя на динамический IP адрес
Ставим демона обновления
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
Вчера собрался ускорить работу(получилось достаточно ощутимо) и загрузку системы(30 секунд, против полутора минут), почитал многие how-to.
Опишу что и где я улучшал. Итак о способах, по порядку:
1. Прописываем hostname.
Было:sudo vim /etc/hosts
Стало:127.0.0.1 localhost
127.0.1.1 lib
Подписываем то, что справа от вызова консоли находится, например: lib@laptop:~$, то вписываем laptop.127.0.0.1 localhost lib
127.0.1.1 lib
Это несколько ускоряет загрузку системы, и ускоряет запуск некоторых программ.
2. Использование ядра, сконфигурированного под Вашу систему, подробнее
3. Несколько ускоряем работу ext3 файловой системы:
Добавляем в существующие строки:sudo vim /boot/grub/menu.lst
# defoptions=quiet splash rootflags=data=writebackУ меня в defoptions убран quiet и splash дополнительно, и добавлен vga=0×324, для framebuffer.
# altoptions=(recovery mode) single rootflags=data=writeback
Обновляем grub.
Правим fstab:sudo update-grub
В моём случае, добавляем data=writeback:sudo vim /etc/fstab
Выполняем:UUID=32903d9a-98a8-4048-8472-a0896b81b3fa / ext3 relatime,errors=remount-ro,noatime,data=writeback 0 1
/dev/sda1 это имя раздела, на котором лежит /sudo tune2fs -o journal_data_writeback /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:
Это позволит ускорить отрисовку страниц в Firefox.MOZ_DISABLE_PANGO=1
5. Убираем ненужные консоли(которые вызываются по Ctrl+Alt+F1..8):
6. Ускоряем загрузку системы:sudo rm /etc/event.d/tty[3-6]
Выставляем:sudo vim /etc/init.d/rc
CONCURRENCY=shellЭто устанавливает множественную загрузку в одно и то же время, особенно хороший эффект имеет, если у Вас многоядерная система.
7. Удаляем ненужные сервисы из загрузки:
Подробно о сервисах написано наsudo aptitude install sysv-rc-conf
sudo sysv-rc-conf
Дополнительно я отключал 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 не работает
ругаеться на ошибки
[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
2. ставим пакетыsudo wget http://www.medibuntu.org/sources.list.d/hardy.list
-O /etc/apt/sources.list.d/medibuntu.list
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 г.
Сортировка фотографий
sudo apt-get install libimage-exiftool-perlи запускаем следующий скрипт
например так
photosort.sh /home/user1/unsorted_photo /home/user1/myphotoприэтом все фото jpg,raw,tif,cr2,crw .... будут перемещены из директории /home/user1/unsorted_photo ( и рекурсивно из всех поддиректорий) в директории следующего вида
/home/user1/myphoto/2008-01-28в зависимости от даты создания фотографии (exif)
/home/user1/myphoto/2007-04-17
вторник, 2 сентября 2008 г.
Xen на Ubuntu 8.04.1 desktop
однако из за ошибок ругается на неудовлетворенные зависимости xenman и не ставитя.
работающий порядок установки
1. ставим xen-tools
$ apt-get install xen-tools2. ставим руками xenman отсюда
http://launchpadlibrarian.net/11041870/xenman_0.6-5ubuntu1_all.deb3. ставим xen
$ apt-get install ubuntu-xen-desktop4. перезагружаемся и смотрим командой
$ uname -rчто загружено ядро XEN
если получаем черный экран вместо гнома то грузимся с обычного ядра и исправляем
/etc/X11/xorg.confправим секцию подставляя драйвер vesa
Section "Device"сохраняем и перезагружаемся (это пришлось делать изза ошибок в убунтовской сборке ядра хен)
Identifier "Configured Video Device"
Driver "vesa"
EndSection
проверяно на 2.6.24-19-xen (может потом исправят)
суббота, 26 июля 2008 г.
вторник, 8 июля 2008 г.
Советы по Linux
Быстро получить информацию о системе можно используя команду 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. Далее:
- Устанавливаем Ubuntu в виртуальной машине.
Настраиваем установленную операционную систему. Например так:
- включить основные и дополнительные репозитарии и произвести обновление пакетов;
- установить полную локализацию системы;
- установить мультимедийные кодеки;
- установить пакеты с драйверами для видео карт nvidia и ati;
- установить flash плугин для браузера;
- установить плугин для открытия документов MSOffice 2007 (*.docx и др.) в OpenOffice;
- установить необходимые программы и утилиты: ssh сервер, vnc сервер, unrar, wine, virtualbox и много чего ещё...;
- указать сетевые настройки, например адреса dns и ntp серверов, маршруты;
- отключить загрузку не нужных демонов;
- отключить запуск не нужных заданий по расписанию cron;
- любые другие программы и/или настройки.
Настройка профиля пользователя по умолчанию. Для этого создаем пользователя, например testuser, логинимся под ним и производим настройку. Например:
- отключить эффекты рабочего стола;
- разрешить удаленный доступ к рабочему столу (vnc) и задать пароль для него;
- прописать настройки соединения в браузере: проски-сервер и прочее;
- в редакторе меню отключить запуск некоторых программ, например подменю "Игры";
- в настройках сеанса, отключить запуск не нужных программ;
- любые другие настройки.
После завершения настройки профиля, копируем содержимое /home/testuser в /etc/skel. Делаем владельцом пользователя root:
sudo chown -R root:root /etc/skel
Просматриваем директорию /etc/skel, удаляем все лишнее, заменяем в файлах абсолюный путь /home/testuser на относительный ~/.
Теперь при создании нового пользователя в его домашнюю директорию будет копироваться содержимое /etc/skel.
Для создания образа будем использовать 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, устанавливаем в привод болванку с образом. Далее:
Разметка диска. Например: все место под корневой раздел, файловая система reiserfs, под swap 2ГБ:
sysresccd ~ # сfdisk /dev/sda
sysresccd ~ # mkfs.reiserfs /dev/sda1
sysresccd ~ # mkswap /dev/sda2Монтируем диски и разворачиваем эталон:
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Правим файлы /mnt/sda1/etc/fstab и /mnt/sda1/boot/grub/menu.lst чтобы UUID метки дисков соответствовали новым томам. UUID метки можно узнать с помощью команды:
sysresccd ~ # blkid
Устанавливаем загрузчик grub в mbr область нового диска:
sysresccd ~ # grub-install --root-directory=/mnt/sda1 /dev/sda
Если все прошло успешно, то мы уже можем загрузить с операционную систему с жесткого диска. Дальше:
Сконфигурируем видео драйвер (в эталоне должен быть установлен универсальный драйвер vesa):
administrator@etalon:~# sudo dpkg-reconfigure -phigh xserver-xorg
После перезапуска иксов (Ctrl-Alt-Backspace) должен подняться нормальный видео драйвер.
Сменим имя хоста и сетевые настройки:
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 следующие строки:# Включаем динамическое изменение частоты процессора
Если в процессе работы скорость реакции приложений вас не будет устраивать, то можно повысить минимальную частоту процессора (список доступных частот можно посмотреть в /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies) или уменьшить значение опции -p утилиты powernowd.
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
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
где ROUTER_ID - имя точки доступа, а PASSWORD - пароль для доступа к ней.
ctrl_interface_group=0
ap_scan=1
fast_reauth=1
eapol_version=1
network={
ssid="ROUTER_ID"
psk="PASSWORD"
priority=5
}
Добавляем в /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.
Ссылки по теме
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.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 г.
коллекция скриптов
скрипт для фоток
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, удалённое включение компьютера
Wake-On-LAN — технология, позволяющая удалённо включать компьютер. Почему-то не часто используемая функция, хотя бесспорно будет полезна любителям ввести halt не в том ssh-сеансе
Что понадобится:
- компьютер-жертва с 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)
- Теперь создаем сам скрипт, для этого сначала необходимо получить права администратора:
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
- проверяем на практике.
распечатываем данное руководство, выключаем первый компьютер и идём ко второму Здесь нам понадобится одна из многочисленных программ, умеющих слать волшебный пакет. Программа попросит указать IP и MAC первого компьютера, в крайнем случае - еще и порт (обычно 7 или 9).
Для Ubuntu удобна программа wakeonlan, для офтопика найдет гугл. Мне же нравится он-лайн сервис http://www.rshut.com/rus/products/wol которым легко можно воспользоваться даже с сотового телефона
Пробуем:
wakeonlan -i [IP адрес] -p [порт] [MAC адрес]
wakeonlan -i 192.168.1.2 -p 7 01:23:45:67:89:ab
должно сработать если ничего не вышло - проблема, скорее всего, в неправильной настройке 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 г.
Опыт настройки 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 г.
полезные утилиты
cairo-clock - прикольные гномовские часы
darkstat - статистика по трафику интерфейса ( после установки в конфиге подправить первую строку на yes
iptraf просмотр трафика с консоли
Сигнал об окончании загрузки сервера
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
# apt-get install apache2После установки у нас появилась директория /var/www (здесь расположен сайт по умолчанию. Все документы в этой директории доступны через броузер по адресу http://localhost/ или IP адресу сервера.
ставим PHP5 и MySql
# apt-get install libapache2-mod-php5рестартуем apache
# apt-get install mysql-server
# apt-get install php5-mysql
# /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Создаем темплейт виртуального хоста и копируем туда например joomla 1.5
# chown -r www-data:www-data /var/www/vhosts
# 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 г.
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.
Шифрованная файловая система
touch /home/secure2.Заполняем его случайными данными, чтобы сложнее было дешифровать
shred -n1 -s500M /home/secureв данном случаи мы указали размер в 500Мб.
3.Подгружаем нужные модули:
modprobe dm-crypt(aes - быстрый алгоритм шифрования)
modprobe aes_generic
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/secureACL - включаем потом для самбы пригодиться
cryptsetup create mycrypt /dev/loop0
mount -o acl /dev/mapper/mycrypt /home/mnt
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.