LXF161:Вопросы и ответы
Olkol (обсуждение | вклад) (Новая страница: « ==Ответы== ''Есть вопрос по открытому ПО? Пишите нам по адресу answers@linuxformat.ru, и мы найде…») |
Olkol (обсуждение | вклад) (→1 Автосерфинг) |
||
Строка 14: | Строка 14: | ||
===1 Автосерфинг=== | ===1 Автосерфинг=== | ||
− | + | ||
<span style="color:black"><span style="font-size: 300%">В</span></span> На работе мне, как и многим другим, приходится классифицировать, сравнивать, извлекать и проверять длинные файлы с артикулами, количеством, ценами и другими атрибутами. Мне уже удалось упростить и ускорить некоторые из этих действий путем установки Cygwin и запуском всяких скриптов на Python и Bash. Но я по-прежнему трачу массу времени на получение данных с обычно медленных серверов баз данных через web-интерфейс. Пока я не придумал, как автоматически подключиться к HTTP-странице, аутентифицироваться, щелкнуть по нужным ссылкам, заполнить текстовые поля и, наконец, вернуть данные, полученные в ответ от сервера. | <span style="color:black"><span style="font-size: 300%">В</span></span> На работе мне, как и многим другим, приходится классифицировать, сравнивать, извлекать и проверять длинные файлы с артикулами, количеством, ценами и другими атрибутами. Мне уже удалось упростить и ускорить некоторые из этих действий путем установки Cygwin и запуском всяких скриптов на Python и Bash. Но я по-прежнему трачу массу времени на получение данных с обычно медленных серверов баз данных через web-интерфейс. Пока я не придумал, как автоматически подключиться к HTTP-странице, аутентифицироваться, щелкнуть по нужным ссылкам, заполнить текстовые поля и, наконец, вернуть данные, полученные в ответ от сервера. | ||
Строка 21: | Строка 21: | ||
Лоран [Laurent] | Лоран [Laurent] | ||
− | + | <span style="color:black"><span style="font-size: 300%">O</span></span> Вы не сказали, пытались ли подключиться к базе данных напрямую, хотя многие базы данных, доступные через web-интерфейс, блокируют любые попытки доступа, исходящие не от web-сервера. Если API для доступа к базе данных из скрипта нет, можно применить программу для записи макроса, хотя web-дизайнеры имеют склонность перемещать все с места на место во имя прогресса (или для имитации кипучей деятельности?). | |
Вам должен подойти модуль расширения iMacros для Chrome и Firefox (и для IE, если другого выхода нет). Версия для Chrome пока на стадии бета, поэтому лучше воспользоваться этим модулем в Firefox. После установки дополнения зайдите на web-страницу, нажмите на кнопку iMacros на панели инструментов, чтобы открыть его панель, а затем на кнопку Rec [Запись]. | Вам должен подойти модуль расширения iMacros для Chrome и Firefox (и для IE, если другого выхода нет). Версия для Chrome пока на стадии бета, поэтому лучше воспользоваться этим модулем в Firefox. После установки дополнения зайдите на web-страницу, нажмите на кнопку iMacros на панели инструментов, чтобы открыть его панель, а затем на кнопку Rec [Запись]. |
Версия 16:38, 2 октября 2018
|
|
|
Содержание |
Ответы
Есть вопрос по открытому ПО? Пишите нам по адресу answers@linuxformat.ru, и мы найдем ответ.
В этом месяце мы ответим на вопросы про...
- 1 Автоматизацию серфинга
- 2 Утилиту для проверки орфографии Enchant
- 3 Резервное копирование с rsync
- 4 Загрузчик Grub
- 5 Групповое переименование файлов JPEG
- 6 Операционные системы
1 Автосерфинг
В На работе мне, как и многим другим, приходится классифицировать, сравнивать, извлекать и проверять длинные файлы с артикулами, количеством, ценами и другими атрибутами. Мне уже удалось упростить и ускорить некоторые из этих действий путем установки Cygwin и запуском всяких скриптов на Python и Bash. Но я по-прежнему трачу массу времени на получение данных с обычно медленных серверов баз данных через web-интерфейс. Пока я не придумал, как автоматически подключиться к HTTP-странице, аутентифицироваться, щелкнуть по нужным ссылкам, заполнить текстовые поля и, наконец, вернуть данные, полученные в ответ от сервера.
Большинство web-интерфейсов основного сервера работают на Java 1.6, и я не могу напрямую изменить код страницы. Нет ли открытых программ, способных как-то записать мои переходы по ссылкам и преобразовать их в редактируемый макрос, просто вызваемый из скрипта Bash или Python, чтобы мне не приходилось вручную открывать браузер и выполнять тысячи повторных копирований и вставок?
Лоран [Laurent]
O Вы не сказали, пытались ли подключиться к базе данных напрямую, хотя многие базы данных, доступные через web-интерфейс, блокируют любые попытки доступа, исходящие не от web-сервера. Если API для доступа к базе данных из скрипта нет, можно применить программу для записи макроса, хотя web-дизайнеры имеют склонность перемещать все с места на место во имя прогресса (или для имитации кипучей деятельности?).
Вам должен подойти модуль расширения iMacros для Chrome и Firefox (и для IE, если другого выхода нет). Версия для Chrome пока на стадии бета, поэтому лучше воспользоваться этим модулем в Firefox. После установки дополнения зайдите на web-страницу, нажмите на кнопку iMacros на панели инструментов, чтобы открыть его панель, а затем на кнопку Rec [Запись].
Выполните необходимые действия и нажмите Stop [Остановка]. Теперь очистите вкладку или перейдите на другой сайт и нажмите Play [Воспроизвести] в панели iMacros – и Вы должны увидеть повтор своих действий.
Модуль не только записывает макросы – после записи их можно редактировать и встраивать в скрипты, чтобы обработать полученную с их помощью информацию далее в скрипте. Детали зависят от того, что именно нужно сделать, но на сайте iMacros www.iopus.com/imacros/firefox на вики и форумах можно накопать массу примеров и справку.
Запуск из скрипта означает, что Вам даже не придется запускать браузер, поэтому можно поместить все задачи в скрипт, который запускает макрос с помощью cron и отправляет результаты Вам по почте или передает их другой программе. Ваши возможности, насколько можно судить, ограничены только воображением и навыками в написании скриптов.
2 Lyx-чаровник
В У меня проблема с проверкой орфографии в текстовом процессоре Lyx. Я пользуюсь им в Ubuntu 11.10, но проверка орфографии в редакторе недоступна. Я попытался активировать ее через меню Tools > Preferences [Инструменты > Настройки]. Появляется только слово ENCHANT [Очарованный], а проверка не работает, и результат не сохраняется. Я поискал решение на форумах, но только и узнал, что у еще нескольких человек та же проблема, а решения никто так и не нашел.
Все пакеты я загружал из репозиториев Ubuntu через центр управления ПО. В ранних релизах проверка орфографии в Lyx работала. Я решил установить Lyx на ноутбук с Ubuntu 11.04, на котором я копался в форумах. Все заработало! Единственная разница в том, что в 11.04 загружается версия Lyx 1.6.7, а в 11.10 — 2.0.0.
Брайан Митчелл [Bryan Mitchell]
О Различие между версиями важно, так как в 2.0.0 для проверки орфографии используется Enchant. Это не утилита проверки орфографии, а клиент к другим утилитам, таким как Hunspell, Aspell и Ispell. Идея состоит в том, что вместо выбора одной утилиты проверки орфографии – а в разных программах они разные, что заставляет Вас поддерживать несколько словарей или добавлять в код возможность выбора утилиты – все программы поддерживали бы только Enchant, который сам вызовет нужную утилиту проверки орфографии. Это позволяет разработчику сэкономить массу времени, которое можно потратить на реализацию новых чудесных функций, а Вам – обойтись одной утилитой проверки орфографии и одним словарем. Проблема, с которой Вы столкнулись, говорит о том, что Enchant либо не установлен, и это легко исправить, либо установлен, но не настроен. Последнее вряд ли имеет место, так как по умолчанию у Enchant вполне нормальная конфигурация; но настроить его легко. Создайте файл .enchant/enchant.ordering в своем домашнем каталоге и добавьте туда всего одну строку:
- aspell,hunspell
Фрагмент перед двоеточием определяет языки, к которым применяется правило (в данном случае – ко всем); остальное – список утилит для проверки орфографии, которые будут запущены. Так, в моей системе для проверки орфографии по умолчанию используется Aspell, но если его не удастся найти, будет вызван Hunspell. Кстати, чтобы это заработало в Ubuntu 11.10, мне пришлось дважды нажать кнопку Save [Сохранить].
3 Чувство синхронизма
В Я пытался сделать резервную копию данных с rsync — безуспешно. В моей системе используется двойная загрузка — Windows XP и Linux Mint 9 Isadora. Я пользуюсь XP для двух вещей: для моего сканера (Visioneer 9020), который не работает в Linux, и для еженедельного инкрементального копирования с помощью syncback с sdb1 (диск объемом 500 ГБ) на sda5 каталогов data_in и data-bu соответственно. В течение недели каждый раз по окончании работы я делаю резервную копию домашнего каталога в data_in с помощью Back In Time и удаляю старую резервную копию, чтобы не засорять каталог data_in прежними ненужными копиями.
Я хотел бы делать это из Linux, но получаю сообщение о том, что sdb1 и sda5 не являются каталогами. Так как оба раздела имеют файловую систему NTFS, я решил проверить их идентификаторы (UUID), и они оказались одинаковы! А я-то думал, что они должны быть уникальны!
Джон Йейтс [John Yates]
О Кажется, что идентификаторы файловых систем в Linux должны быть одинаковы, но на самом деле это не обязательно, потому что вы можете задать UUID файловой системы чему угодно. Однако у файловых систем NTFS и FAT нет UUID, а есть номер тома, присвоенный при создании файловой системы и не обладающий такой степенью «уникальности», как UUID. Более важно, что при клонировании файловой системы номер тома тоже клонируется. Изменить номер тома NTFS непросто (в отличие от UUID ext2/3/4). Варианты – отредактировать двоичные данные в заголовке файловой системы напрямую (довольно рискованно) или переформатировать файловую систему. Последний вариант – самый простой, так как номер тома среди прочего формируется на основании даты создания.
Однако причина ошибок с rsync не в этом, а в Вашем неправильном понимании работы rsync. rsync работает на уровне файлов и каталогов, а Вы пытаетесь применять его к блочным устройствам. Вы пытались воспользоваться командой:
rsync -av /dev/sdb1/ /dev/sda5/
тогда как верный синтаксис (с корректными путями к каталогам) таков:
rsync -av /path/to/source/ /path/to/backup/
Параметр -v выводит подробную информацию, но иногда ее слишком много, и это замедляет процесс. С rsync Вам не нужно пользоваться другой программой для резервного копирования или удалять старые резервные копии. Добавив параметр --delete, можно удалить файлы, которых уже нет в исходном каталоге, и мы получим резервную копию, являющуюся точной копией источника. Команда
rsync --archive --delete ~/ /mnt/backup/myhome/
создаст точную копию домашнего каталога в /mnt/backup/myhome. Ее можно запускать как задание cron, и тогда о ней даже не придется помнить. Простейший способ запускать ее каждый день – поместить команду в короткий скрипт:
- !/bin/sh
rsync --archive --delete /home/myuser/ /mnt/backup/myhome/
Поместите скрипт в /etc/cron.daily, сделайте файл исполняемым, и резервное копирование будет выполняться каждый день в одно и то же время. Путь до домашнего каталога нужно указывать полностью, так как скрипты из cron.daily запускаются от имени пользователя root.
Недостаток этого подхода в том, что теряются все предыдущие копии. Если вы что-то испортите в файле, то испорченный вариант файла попадет в резервную копию. Одно из решений проблемы – воспользоваться rdiff-backup (www.nongnu.org/rdiff-backup), который использует rsync, но сохраняет определенное (настраиваемое) количество прежних копий каждого файла, чтобы его можно было восстановить. Rdiff-backup также работает с командной строки – и его очень удобно запускать с cron.
4 Один диск — один дистрибутив?
В Я перешел с Windows на Mint, и впечатления самые приятные. Раньше мне перепадали старые компьютеры, прошедшие через вторые или третьи руки, и вот в возрасте 73 лет я решил купить новый. На компьютере, который я хочу купить, два диска по 500 ГБ. На один я поставлю Mint, а что посоветуете для второго?
Терри Бэйл [Terry Bale]
О На одном диске не обязательно размещать только одну операционную систему. На самом деле, так бывает редко. Привязывать одну операционную систему к одному диску – трата места, так как большинству операционных систем нужно для своих файлов меньше 15 ГБ. Остальное обычно отдается под файлы пользователей. Так как Вы скорее всего захотите слушать одну и ту же музыку в обеих системах, большую часть места стоит выделить под домашние каталоги, а операционным системам оставить всего несколько десятков ГБ. Сначала установите Mint на первый диск, создав во время установки отдельный раздел для домашнего каталога. Настройте все необходимое, пока не приступая ко второму диску. Если Вам понадобится больше места, чем 500 ГБ, можно добавить разделы на второй диск и смонтировать их в своей файловой системе позже. Например, если у Вас большая коллекция видео, можно создать для нее отдельный раздел на втором диске и смонтировать в каталог videos в своем домашнем каталоге. Для этого создайте раздел и файловую систему стандартной утилитой для работы с разделами, например, Gparted, и добавьте следующую строку в файл /etc/fstab.
/dev/sdb5 /home/terry/videos ext4 defaults 0 0
После перезагрузки новый раздел будет смонтирован в каталог videos в домашнем каталоге. Чтобы записывать в него данные под своим пользователем, нужно выполнить следующую команду после первого монтирования (или первой перезагрузки):
sudo chown -R terry: ~terry/videos
Обязательно сохраните свободное место, которое Вам пока не нужно, для экспериментов с другими дистрибутивами, но сначала настройте главную систему. Когда захотите поэкспериментировать, начните с дистрибутивов, которые не основаны на Ubuntu, так как у них слишком велико сходство с Mint. Такие дистрибутивы, как Fedora, OpenSUSE, PCLinuxOS и Mageia, могут оказаться хорошей отправной точкой.
При установке другого дистрибутива откажитесь от опции по умолчанию перезаписать загрузчик главной загрузочной записи первого диска. Пусть новый дистрибутив разместит загрузчик на собственном разделе. При этом загрузчик Mint останется нетронутым, так что новый дистрибутив сначала будет недоступен. Вернитесь в Mint и выполните команду:
sudo update-grub
в терминале. Она проверит жесткие диски на наличие операционных систем и добавит их в загрузчик Mint. После этого в одном меню будут все операционные системы. Каждый раз при добавлении, удалении или обновлении другого дистрибутива, эту команду нужно будет запустить в Mint один раз.
5 Проблема с монитором
В У меня возникла проблема при установке Ubuntu в систему с двойной загрузкой — XP и Ubuntu. Та же проблема иногда возникала в прошлом — разрешение загрузчика было маленьким, появлялось сообщение о том, что частота и разрешение выходят за диапазон работы монитора, и изображения не было. Раньше я решал эту проблему так: загружался в Ubuntu и запускал startup-manager, в котором увеличивал разрешение, и после этого система загружалась с нормальным разрешением. После установки 12.04 startup-manager уже не установить, и, следовательно, нельзя изменить настройки менеджера загрузки. Есть ли простой способ решить эту проблему во время установки системы?
Рэй Хьюз [Ray Hughes]
О В Grub по умолчанию используется разрешение 640 × 480, так как его поддерживают почти все мониторы, а для нескольких строк текста большего и не надо. В Grub 2, который сейчас используется в большинстве дистрибутивов, разрешение легко изменить. От имени суперпользователя-root откройте файл /etc/default/grub, и Вы увидите строку:
#GRUB_GFXMODE=640x480
Символ # в начале строки – комментарий, с ним строка становится недействующей. Удалите символ # и измените разрешение на более подходящее для своего монитора, затем сохраните файл. Если Вы не уверены, что редактируете файл от имени суперпользователя, откройте терминал и выполните команду:
sudo nano /etc/default/grub
Она откроет файл в простом редакторе в терминале от имени root. После внесения изменений нажмите Ctrl+X для сохранения файла и выхода.
Теперь обновите файл меню Grub командой
sudo update-grub
и разрешение при следующей загрузке системы должно измениться на заданное вами. При установке системы со стандартных CD Ubuntu изменить его нельзя – Вам понадобятся альтернативные CD.
Однако можно загрузиться со стандартного CD после установки и открыть файловый менеджер для монтирования корневой файловой системы. Файл нельзя изменить из нее, но после монтирования диска файл можно будет открыть с терминала в Nano как указано выше.
Диск будет смонтирован в каталог /media/xxxxxxx, где xxxxxx – UUID корневой файловой системы, который будет показан в заголовке окна файлового менеджера.
6 Групповуха с именами
В Моя жена привыла к дурацкому способу опускать расширения в Windows, и переименовала все свои фотографии без расширения JPG. Их сотни. Пока ее ноутбук был в ремонте, она пользовалась ноутбуком дочери с Mint 11 и думает, что это Linux во всем виноват. Когда я говорю, что это она переименовала файлы, она обижается. Нет ли простого способа добавить к каждому расширение .jpg, не переименовывая каждый файл вручную?
Heiowge, с форумов
О Как водится, в Linux есть несколько способов это сделать, в зависимости от имеющихся у Вас программ. В KDE можно воспользоваться простой графической программой KRename; пользователи Gnome могут установить gprename; а у пользователей Xfce данная возможность есть в файловом менеджере Thunar. Но это легко сделать и с командной строки. Какой бы способ Вы ни выбрали, сделайте резервную копию каталога – ошибка при переименовании может привести к перезаписи всех файлов.
Команда find входит в базовый набор программ всех дистрибутивов. Откройте в терминал, зайдите в каталог с фотографиями командой cd и выполните команду:
find -type f ! -iname \*.jpg -exec mv “{}” “{}.jpg” \;
Она ищет в текущем каталоге (чтобы искать в другом каталоге, укажите его сразу после find) все объекты типа f (обыкновенные файлы), имена которых не заканчиваются на .jpg или .JPG. Директива -iname проверяет соответствие имени с учетом регистра, а ! в начале инвертирует условие, и мы получаем только файлы, которые не соответствуют условию. Часть -exec велит команде find выполнить указанную команду, заменив {} на имя файла, и эта команда переименует все файлы, у которых нет расширения .jpg. Кавычки нужны для обработки имен файлов с пробелами. Символы * и ; экранируются обратным слэшем \, чтобы оболочка не пыталась интерпретировать их перед передачей команде find.
Существуют и другие команды для переименования файлов. У Вас есть команда rename, являющаяся частью пакета coreutils, который есть в каждом дистрибутиве, но в данном случае пользоваться ею неудобно.
Можно также воспользоваться альтернативой команде rename с http://rename.berlios.de, или mmv (http://packages.debian.org/unstable/utils/mmv), но команда find у Вас уже есть, и она делает именно то, что необходимо – Вам нет нужды устанавливать и изучать отдельные программы для решения однократной задачи. |
MD5
Если вы когда-нибудь загружали ISO-образы дистрибутивов, вместе с файлами ISO вы видели файлы с именами вроде cooldistro1.0.iso.md5. Сумма MD5 – 128-битная криптографическая свертка содержимого файла. Свертка у каждого файла всегда получается одинаковая, но стоит изменить в файле хотя бы один бит – и она изменится радикально. MD5 была предназначена для целей безопасности; проверив сумму MD5, можно убедиться, что файл не был изменен. Теперь она также используется для проверки случайных повреждений файлов при передаче. При загрузке ISO-образа вы получаете и файл MD5. Удостовериться, что файл не поврежден, можно посредством следующей команды:
md5sum cooldistro-1.0.iso
В результате должна получиться та же строка шестнадцатеричных цифр, что указана в файле cooldistro1.0.iso.md5. Сравнивать 128-битные числа друг с другом – не слишком веселое занятие; пусть за нас это сделает программа:
md5sum --check cooldistro-1.0.iso.md5
Эта команда даст вам знать, соответствует ли контрольная сумма содержимому файла. В файле MD5 можно хранить суммы для нескольких файлов. Например, исходники Gnome поставляются во множестве файлов, но их суммы MD5 находятся в одном файле, часто называемом MD5SUMS. Можно загрузить все файлы и проверить их одной командой:
md5sum -c MD5SUMS
Сгенерировать файл MD5SUMS можно следующей командой:
md5sum *.iso >MD5SUMS
Свертки SHA1 и SHA256 работают по похожей схеме, но обеспечивают немного более высокий уровень защиты. Принцип их работы, как и синтаксис, такие же, лишь используемые программы другие: sha1sum и sha256sum.
Часто задаваемые вопросы
Wine
» Что такое Wine? Это аббревиатура от «Wine Is Not an Emulator [Wine – это не эмулятор]”.
» Если это не эмулятор, тогда что? Ну, в какой-то степени все же эмулятор. Wine – открытая реализация API Windows поверх X и Unix.
» С Wine можно запустить Windows в Linux? Не совсем. Wine – слой совместимости между программами Windows и Linux. Когда вы запускаете программу Windows в Wine, программа думает, что работает в Windows, но вызовы функций Windows, которые она выполняет, преобразуются в вызовы функций Linux.
» Нужна ли установленная Windows, чтобы Wine заработал? Нет, но если Windows установлена, Wine воспользуется ее DLL-библиотеками. Если нет, у нее есть альтернативные варианты.
» Если у меня есть Windows, зачем мне Wine? Прежде всего это означает, что можно запустить программу Windows, не перезагружаясь в Windows и обратно в Linux. Можно запускать программы Windows вместе с программами в Linux.
С Wine также можно пользоваться модулями расширения Windows для программ Linux, такими как web-браузеры и медиапроигрыватели. Это дает программам Linux доступ к форматам, поддерживаемым только проприетарными кодеками Windows.
» Бывает, что эмуляторы тормозят — а насколько быстр Wine? Wine эмулирует только API Windows, а не устройства. Это означает, что программы в Wine будут работать с той же скоростью, что и в Windows, иногда даже быстрее. Недостаток в том, что Wine может запускаться только на том же оборудовании, что и Windows, поскольку это не эмулятор процессора.
» Как ее загрузить? Загрузить Wine во множестве форматов можно с сайта проекта. Пакеты также доступны в репозиториях большинства дистрибутивов. Дополнительно имеются две коммерческих версии Wine.
CrossOver Office от Codeweavers предназначена для запуска рабочих приложений Windows. Она также запускает модули расширения для Internet Explorer в некоторых браузерах, применяющихся в Linux. Вся сложная работа по конфигурации выполнена за вас.
На сайте Codeweavers перечислено 50 поддерживаемых приложений, но на самом деле их гораздо больше.
» С рабочими приложениями ясно, а что у нас с играми? Существует еще одна коммерческая версия – Cedega, ранее известная как WineX. Cedega от TransGaming Technologies – улучшенная версия Wine с поддержкой DirectX. Cedega доступна бесплатно через репозиторий CVS.
Если вам нужны готовые пакеты и поддержка, оформите подписку. Список поддерживаемых программ весьма обширен, и он постоянно пополняется.
Помогите нам помочь вам
Ежемесячно мы получаем несколько писем, на которые не в состоянии ответить, так как проблема описана в них недостаточно полно. Чтобы дать вам наилучший ответ, нам нужно знать как можно больше.
Если у вас появляется сообщение об ошибке, приведите его точный текст и опишите конкретные условия, когда оно появляется. При возникновении проблемы с устройствами перечислите нам все установленные устройства. Если Linux уже запущен, можете применить для этого отличную программу Hardinfo (http://hardinfo.berlios.de/) – она сохранит подробную информацию об устройствах и о состоянии системы в HTML-файл, который вы сможете приложить к своему письму. Альтернативный и не менее удобный вариант – lshw (http://ezix.org/project/wiki/HardwareLiSter). Одна из этих программ должна быть включена в ваш дистрибутив (а то и обе).
Если вы не хотите или не можете их установить, выполните следующие команды в терминале от имени root и приложите файл system.txt к письму. Это здорово поможет диагностике.
uname -a >system.txt
lspci >>system.txt
lspci -vv >>system.txt