LXF113-114:Ответы

Материал из Linuxformat.

Версия от 12:10, 15 января 2010; Crazy Rebel (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Ответы

Есть вопрос по Open Source? Пишите нам по адресу: answers@linuxformat.ruъ

1 Разрешение локальной сети

В У меня на настольном компьютере запущена Fedora 9, а на ноутбуке Ubuntu 8.04, но на машинах сына и жены работает XP. Все это подключено к маршрутизатору D-Link. Я соединил мой настольный и переносной компьютеры через SSH, но использовал для этого локальные IP. Моя проблема в том, что все машины используют DHCP для получения IP-адресов, и они регулярно меняются. Я хотел бы использовать имя каждой машины для определения ее актуального IP-адреса. Для этого, по-моему, надо установить локальный DNS-сервер. А статические IP я использовать не хочу.

Боб Боукат [Bob Bawcutt]

О Большинство маршрутизаторов работают заодно и как серверы DNS, поэтому у вас есть такая возможность. Часть устройств также позволяет привязать конкретный IP-адрес и имя хоста к определенному компьютеру. Обычно, при получении запроса, DHCP-сервера выдают первый неиспользованный IP из пула доступных адресов, но иногда им можно указать, какой адрес должен получать конкретный компьютер. Компьютер определяется по MAC (Media Access Control) адресу сетевой карты. Если маршрутизатор позволяет это, можете задать MAC-адрес каждого компьютера вместе с предпочтительным IP-адресом и именем хоста. После этого доступ по имени хоста будет обязательно работать. MAC-адрес состоит из шести пар шестнадцатеричных чисел (например, 01:23:45:67:89:AB) и может быть найден в свойствах сети или запуском ifconfig в терминале. В Windows запустите ipconfig в командной строке.

Если Ваш маршрутизатор этого не поддерживает, можете использовать dnsmasq (http://www.thekelleys.org.uk/dnsmasq): функциональный, легкий DNS и DHCP-сервер, соответствующий вашим потребностям (я использую его в своей домашней сети). Он позаботится обо всем за вас, но нужно настроить машину, на которой запускается dnsmasq, на использование статического IP-адреса. Отключите DHCP-сервер в вашем маршрутизаторе и поместите следующие строки в /etc/dnsmasq.d/local:

log-facility=/var/log/dnsmasq.log
domain=example.com
 dhcp-range=192.168.1.128,192.168.1.192
 dhcp-option=option:router,192.168.1.1
 dhcp-host=00:1A:92:81:CB:FE,192.168.1.3,hostname

Первая строка устанавливает журнал – он пригодится, если, например, что-то не заработает при первом запуске. Вторая строка содержит домен вашей локальной сети; третья – диапазон адресов, выделяемых по DHCP; а следующая дает адрес маршрутизатора, его необходимо знать всем компьютерам сети для выхода в Интернет. Последняя строка повторяется один раз для каждого компьютера и содержит его MAC-адрес, выделяемый ему IP-адрес и имя хоста, которое он получит. IP-адрес находится за пределами значения dhcp-range, чтобы он не достался другому компьютеру. Убедитесь, что /etc/resolv.conf на этом компьютере содержит адрес по крайней мере одного DNS-сервера. Если ваш провайдер периодически меняет DNS-адрес, правильнее будет поставить здесь адрес маршрутизатора и позволить ему самому договариваться о DNS с провайдером через DHCP. Если вы не хотите использовать DNS-сервер вашего провайдера, укажите нужный вам в resolv.conf.

Запустите dnsmasq или перезагрузите его, если он уже запущен, после редактирования файла конфигурации. Затем переподключите каждый из ваших компьютеров, и они должны получить нужные вам IP-адреса и имена. Что еще более важно, вы получите возможность связываться с каждым из них с помощью имен, и не нужно будет больше запоминать цифры. НБ

2 Что чувствует rsync

В Я весьма заинтересован в регулярном резервном копировании, в идеале децентрализованном. Для этого я обнаружил прекрасную утилиту – rsync. Вот команда, которую я запускаю, чтобы получить локальную копию всей моей домашней директории в другой папке:

 rsync -avz --delete-after /home/white/ /home/white/Backup/

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

Оливер Уайт [Olivier White]

О В rsync есть несколько аргументов, позволяющих делать то, что Вы хотите. Но сперва уточним, находится ли /home/white/Backup на отдельной файловой системы от /home/white? Если да, то добавьте опции или --one-file-system, иначе Вы увидите, что пытаетесь создать резервную копию директории с резервной копией в ней же, что приведет к быстрому опустошению свободного места. Эта функция также полезна при резервном копировании корневого раздела, чтобы не создавать резервных копий виртуальных файловых систем, таких как /dev, /sys и /proc.

Для исключения определенных файлов или директорий воспользуйтесь опцией --exclude: rsync -avxz --exclude ‘*.c’ --exclude ‘*.h’ --exclude .thumbnails …

Отметим, что первые две маски заключены в кавычки, чтобы пресечь толкования символа * оболочкой, в то время как третья исключает весь каталог. Если надо исключить много файлов, то команда получится очень длинной, но можно поставить маску (при этом нет необходимости в кавычках) в файл по одной в каждой строке, а затем вызвать

rsync -avxz --exclude-from ~/myexcludes …

Опция exclude прекрасна для простых масок фильтрации или одиночных директорий, но что делать, если нужно нечто посложнее? Для этого имеется опция --filter; достаточно сложная, чтобы иметь свой собственный раздел на man-странице, и его стоит внимательно прочитать, прежде чем подвергнуть свои данные создаваемым правилам. Впрочем, использование фильтров можно упростить, поместив правила исключения и включения в файл с именем .rsync-filter и добавив опцию -F при вызове rsync. Этот аргумент велит rsync искать файл .rsync-filter в каждом просматриваемом каталоге и применять найденные правила к этой директории и ее поддиректориям. Формат .rsync-filter должен быть такой:

exclude *.c
exclude *.h
exclude .thumbnails

Можно использовать правила и include, и exclude. Каждый файл проверяется на соответствие каждому из них вплоть до первого совпадения в правиле включения или исключения (последующие правила не проверяются). Файлы, не соответствующие ни одному правилу, по умолчанию включаются. Так можно включить и файлы, соответствующие правилам exclude, если команда include идет первой. Вы также можете использовать это для резервного копирования только конкретных директорий, например:

include /mail
include /documents
include /photos
exclude *

Начальное / задает поиск совпадений директорий, начиная с указанного пути, а не от корня файловой системы. Если эти правила находятся в /home/white/.rsync-filter, первой совпавшей директорией будет /home/white/mail. Для начала этого должно хватить, но обязательно прочтите man-страницы и убедитесь, что вы понимаете, что делаете. Помните второе правило резервного копирования: по завершении непременно все проверить (а первое правило – все проверить до того!). ГМ

3 SUSE и MadWifi

В Не скажете ли вы мне, какая версия драйверов MadWifi лучше работает с SUSE Linux? Кроме того, нет ли свободных приложений, способных сообщить мне численные значения частоты, на которой я обмениваюсь битами с моим маршрутизатором? Под частотой я подразумеваю количество циклов в секунду (в диапазоне 2,4 ГГц), а не скорость передачи данных в килобайтах в секунду.

Майк Бэйли [Mike Bailey]

О Обычно лучше бывает использовать ПО из репозиториев вашего дистрибутива. Оно уже тестировано для работы с вашим дистрибутивом: до релиза – разработчиками, после релиза – пользователями. О любой выявленной проблеме можно сообщить, и она будет решена через систему отслеживания ошибок дистрибутива, причем, как правило, очень быстро. В репозиториях OpenSUSE 11.0 имеется пререлизная версия MadWifi 0.9.4, поэтому начните с нее. В случае проблем, попытайтесь скомпилировать версию 0.9.4 из исходников (все подробности – на сайте MadWifi, http://madwifi.org). Основная причина это сделать не связана с Вашим дистрибутивом: это необходимо на случай внесения изменений, касающихся используемого Вами оборудования.

Драйвер MadWifi в настоящее время не развивается, потому что команда перенаправила усилия на новый драйвер Ath5k, включенный в последние ядра: он улучшает поддержку и производительность для большинства карт, и необходимость в отдельном пакете драйвера будет сокращаться и в конечном итоге отпадет. Это стандартный ход вещей в Linux; хорошо показавший себя драйвер с открытым исходным кодом, как правило, включается в ядро. Многие компьютеры уже могут прекрасно работать без всяких внешних драйверов, и их доля будет расти, как только ядро сможет обрабатывать больше оборудования напрямую.

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

iwconfig ath0
iwlist ath0 scan
iwlist ath0 frequency

Первая команда выдаст подробную информацию о связи между вашим компьютером и точкой доступа; вторая даст список всех видимых беспроводных точек доступа; последняя команда показывает частоты, доступные для вашей карты, и ту, что используется сейчас. Это команды администрирования, так что перед запуском любой из этих команд наберите в терминале su, чтобы перейти на root. НБ

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию