Показаны сообщения с ярлыком How To. Показать все сообщения
Показаны сообщения с ярлыком How To. Показать все сообщения

среда, 8 января 2014 г.

md5sum - индикатор прогресса, он же progress bar

Иногда очень хочется, чтобы md5sum выводил какой-то индикатор прогресса.
У него нет такой встроенной возможности, однако unix-way заключается в том, чтобы все программы делали своё дело, пусть небольшое, но хорошо.
Поэтому для этой цели используем pv.
В Debian/Ubuntu/Mint можно установить командой:
 sudo aptitude install pv

В CentOS/Fedora/RHEL:
sudo yum install pv
И потом просто вместо:
md5sum filename
запускаем
pv filename | md5sum

В итоге получаем наглядный прогресс-бар и примерную оценку оставшегося времени:
$ pv downloaded_2012-05.tar | md5sum
14.1GB 0:04:16 [54.1MB/s] [====>                        ] 20% ETA 0:16:55

вторник, 17 декабря 2013 г.

Exim - моя подборка полезных команд Exim (exim4). Роутинг, работа с очередью, статус и так далее.

1. Проверяем, что нет ошибок в файле (файлах) конфигурации Exim, то есть что всё верно настроено (валидация конфига, короче):


# exim -bV
Exim version 4.80 #2 built 02-Jan-2013 18:59:17
Copyright (c) University of Cambridge, 1995 - 2012
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2012
Berkeley DB: Berkeley DB 5.1.29: (October 25, 2011)
Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc GnuTLS move_frozen_messages Content_Scanning DKIM Old_Demime
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch ldap ldapdn ldapm mysql nis nis0 passwd pgsql sqlite
Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa
Routers: accept dnslookup ipliteral iplookup manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
Configuration file is /var/lib/exim4/config.autogenerated
В выводе можно найти версию Exim, то, что он поддерживает и имя конфигурационного файла, который был проверен.

2. Валидация email адреса:


# exim -bv scukonick@gmail.com
scukonick@gmail.com verified

3. Отправка письма и отладка этой отправки

Используйте эту команду, чтобы отправить с помощью Exim письмо на определённый адрес и получить подробную информацию по тому, как Exim обработал это письмо (курсивом выделен текст письма, его надо вбить самому):
# exim -v scukonick@gmail.com
LOG: MAIN
cwd=/etc/exim4 3 args: exim -v scukonick@gmail.com
Subject: test

Hey, my message
.

LOG: MAIN
<= root@aptrack.co U=root P=local S=312 T="test"
root@m5:/etc/exim4# LOG: MAIN
cwd=/var/spool/exim4 4 args: /usr/sbin/exim4 -v -Mc 1VpioC-00036Q-NT
delivering 1VpioC-00036Q-NT
Connecting to gmail-smtp-in.l.google.com [2a00:1450:400c:c05::1b]:25 ... connected
SMTP<< 220 mx.google.com ESMTP fb7si2984260wjc.173 - gsmtp
SMTP>> EHLO mydomain.com
SMTP<< 250-mx.google.com at your service, [2a00:1a48:7806:117:fc8f:1b4a:ff08:4c93]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250 CHUNKING
SMTP>> STARTTLS
SMTP<< 220 2.0.0 Ready to start TLS
SMTP>> EHLO mydomain.com
SMTP<< 250-mx.google.com at your service, [2a00:1a48:7806:117:fc8f:1b4a:ff08:4c93]
250-SIZE 35882577
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-PIPELINING
250 CHUNKING
SMTP>> MAIL FROM: SIZE=1345
SMTP>> RCPT TO:
SMTP>> DATA
SMTP<< 250 2.1.0 OK fb7si2984260wjc.173 - gsmtp
SMTP<< 250 2.1.5 OK fb7si2984260wjc.173 - gsmtp
SMTP<< 354 Go ahead fb7si2984260wjc.173 - gsmtp
SMTP>> writing message and terminating "."
SMTP<< 250 2.0.0 OK 1386526199 fb7si2984260wjc.173 - gsmtp
SMTP>> QUIT
LOG: MAIN
=> scukonick@gmail.com F= P= R=outgoing_alerts T=remote_smtp S=325 H=gmail-smtp-in.l.google.com [2a00:1450:400c:c05::1b]:25 X=TLS1.2:RSA_ARCFOUR_SHA1:128 CV=no DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=mx.google.com" C="250 2.0.0 OK 1386526199 fb7si2984260wjc.173 - gsmtp" QT=12s DT=0s
LOG: MAIN
Completed QT=12s

4. Проверка роутинга письма (простая)

Проверяем, куда, через какие acl, роутеры, транспорты  и т.д. пройдет письмо. При этом само письмо не будет отправлено.
# exim -bt scukonick@gmail.com
scukonick@gmail.com
router = outgoing_alerts, transport = remote_smtp
host gmail-smtp-in.l.google.com [2a00:1450:400c:c05::1a] MX=5
host gmail-smtp-in.l.google.com [173.194.66.26] MX=5
host alt1.gmail-smtp-in.l.google.com [2a00:1450:400c:c05::1b] MX=10
host alt1.gmail-smtp-in.l.google.com [173.194.70.27] MX=10
host alt2.gmail-smtp-in.l.google.com [2a00:1450:4008:c01::1a] MX=20
host alt2.gmail-smtp-in.l.google.com [173.194.69.27] MX=20
host alt3.gmail-smtp-in.l.google.com [74.125.143.26] MX=30
host alt4.gmail-smtp-in.l.google.com [173.194.79.26] MX=40

Видно, что будет использован router outgoing_alerts, транспорт remote_smtp.Разумеется, в вашем конкретном случае роутер и транспорт могут быть (и скорее всего будут) другими.

5. Проверка роутинга письма с дебагом

Точно такая же проверка, как предыдущая, однако будет выведена куча дополнительной информации. То, что дополнительно будет выводиться, настраивается в параметре -d. Значения можно посмотреть в man exim, секция про параметр -d. Например, -d+all - выведет всё, что только можно.
# exim -bt -d+all scukonick@gmail.com
Я тут даже не буду приводить вывод этой команды, потому что  он ну уж очень большой. Однако это команда весьма полезна, когда вы пытаетесь разобраться, почему письмо отправляется куда-то вообще не туда и не тому:-)

Полезные команды MySQL

Моя подборка полезных команд для MySQL.

Узнать размер базы данных

SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM   information_schema.tables
GROUP  BY table_schema
ORDER BY Round(Sum(data_length + index_length) / 1024 / 1024, 1) DESC;

Выводим 15 наиболее фрагментированных таблиц

SELECT CONCAT(TABLE_SCHEMA, ":",TABLE_NAME) AS TABLENAME, 
ROUND(DATA_FREE * 100/ DATA_LENGTH,1) AS FRAG_PERCENTAGE 
FROM information_schema.tables 
ORDER BY FRAG_PERCENTAGE DESC
LIMIT 15;
где FRAG_PERCENTAGE - соотношение свободного места в таблице к занятному.
Стоит заметить, что этот метод не работает, когда вы используете InnoDB таблицы без включенной опции innodb_file_per_table. Когда эта опция выключена, все таблицы innodb хранятся в одном файле: /var/lib/mysql/ibdata1. В таком случае результат будет одинаков для всех таблиц. Дефрагментация в данном случае тоже поможет, все таблицы и индексы будут упорядочены в этом файле, однако файл ibdata1 всё равно будет занимать столько же места, сколько и до дефрагментации (просто свободное место в нём будет упорядочено и аккуратно размечено:) ).
Чтобы можно было получать адекватные значение по каждой InnoDB таблице, надо выполнить следующее:
  • Сделать дамп всех баз
  • Включить опцию innodb_file_per_table
  • Удалить файл /var/lib/mysql/ibdata1
  • Залить обратно дамп
Ниже более интересная команда:

Выводим 15 наиболее фрагментированных таблиц, их размер и движок

SELECT CONCAT(TABLE_SCHEMA, ":",TABLE_NAME) AS TABLENAME,
ROUND(DATA_FREE * 100/ DATA_LENGTH,1) AS FRAG_PERCENTAGE,
ENGINE , (DATA_LENGTH+INDEX_LENGTH)/(1024*1024) AS "SIZE (MB)" 
FROM information_schema.tables 
ORDER BY FRAG_PERCENTAGE DESC 
LIMIT 15;

Дефрагментируем таблицы

Для этого достаточно выполнить команду:
OPTIMIZE TABLE tablename
где tablename - название дефрагментированной таблицы. Стоит заметить, что для InnoDB таблиц OPTIMIZE TABLE - всего лишь обертка для ALTER TABLE tablename ENGINE="INNODB", которая перестраивает таблицу и оптимизирует индексы.

четверг, 12 декабря 2013 г.

Защищаем Apache2 от SlowLoris DDoS


Что такое SlowLoris

У вас случалось такое, когда на сервере нагрузки нет, свободной памяти достаточно, и при этом ваш сайт не открывается?
Если при этом на статусной страничке апача все треды в состоянии R (reading), весьма вероятно, что вы находитесь под атакой SlowLoris.
SlowLoris означает, что злоумышленники открывают множество коннектов к серверу, однако не посылают много-много запросов, а, наоборот, посылают один и медленно-медленно. В таком случае серверу не остается ничего другого, кроме как ждать, когда же вы запрос наконец придёт. А он всё не приходит и не приходит.
В результате все треды (или потоки) апача заняты тем, что ждут, когда же всё-таки запрос придёт.

Nginx перед или вместо Апача

Nginx атаке SlowLoris практически не подвержен. Конечно, у него есть лимит открытых соединений, который по дефолту довольно маленький, однако его можно увеличивать практически безболезненно для системы. Не забывая, конечно, при этом увеличивать значение worker_rlimit_nofile. 
Однако иногда бывает, что по каким-то причинам Нжинкс перед Апачем не поставить. Делать нечего, надо отбиваться другими силами.

Так и как бороться?

Я для этой цели написал небольшой скрипт, который делает следующее:

  1. Выбираем из /server-status список PID'ов процессов апача, которые заняты чтением (reading).
  1. Из вывода netstat смотрим, с каких IP идут коннекты
  1. Баним эти IP
#!/bin/bash
date >> /tmp/banned
lynx -dump  localhost/server-status | grep reading | awk '{if ($6 > 10 ) print $2}' > /tmp/processes
for pid in `cat /tmp/processes`; do
        IP=`netstat -ntp | grep EST| grep $pid | awk '{print $5}' | cut -d: -f1`;
        echo $IP >>  /tmp/banned
        iptables -t raw -I PREROUTING -s $IP -j DROP 2>/dev/null
done
И запускаем этот скрипт по крону раз в сколько-то минут.
Для его работы необходим lynx, который можно установить командой:
$ sudo aptitude install lynx
Не забудьте включить mod_status у апача. В моём случае он отвечает на localhost/server-status.


понедельник, 14 октября 2013 г.

Не собирается mdraid - resync=PENDING

Оказывается, resync=PENDING, из-за которого не собирается и не ребилдится mdraid-массив, очень легко победить.
Для этого достаточно выполнить команду:
mdadm --readwrite /dev/mdX
где X - номер массива, например, /dev/md1.
И после этого массив сразу начинает собираться:
 md1 : active raid1 sda2[1] sdb2[0] 943587136 blocks super 1.2 [2/2] [UU] [>....................] resync = 1.2% (12186176/943587136) finish=182.4min speed=85095K/sec

воскресенье, 5 мая 2013 г.

Исправляем ошибку "sorry, you must have a tty to run sudo"

Внезапно столкнулся с тем,  что из крона не отрабатывал скрипт, который прекрасно отрабатывал из консоли. Выдавал в STDERR указанную ошибку-  sorry, you must have a tty to run sudo.
Проблема решается изменением файла /etc/sudoers. Для его изменения рекомендую использовать утилиту visudo, а не править редактором напрямую. Находим строку:
Defaults    requiretty
И закомментируем её:
#Defaults    requiretty

И всё, sudo отлично работает из под cron.


Примечание: на самом деле, лучше переписать скрипты без использования sudo, поскольку эта закомментирование этой директивы наносит некоторый ущерб безопасности сервера:

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
#         You have to run "ssh -t hostname sudo <cmd>".

воскресенье, 21 апреля 2013 г.

CentOS / Fedora - исправляем ошибку yum: database disk image is malformed

Проблема

Столкнулся с ошибкой, когда yum после команды yum update стал выдавать ошибку:
Error: database disk image is malformed
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Попытки решения

Указанные в этом выводе команды не помогли.
Нагугленные команды типа:
 mv /var/lib/rpm/__db* /tmp
rpm --rebuilddb
или
 yum history new
также не помогли.

Решение

В итоге решение проблемы пришло в виде команды:
 yum clean dbcache
Однако после неё вылезла другая ошибка:
sqlite3.OperationalError: table trans_beg already exists
Она решилась с помощью команды
 yum history new

среда, 17 апреля 2013 г.

batch resize, или массовое изменение размера картинок в Linux Debian/Ubuntu

Столкнулся с необходимостью быстро отресайзить папку фотографий.  Так как под рукой только Linux Ubuntu, пришлось искать способы под него.
Конечно, была идея отресайзить все картинки через Гимп, но это стрельба из пушки по воробьям. Причём медленная стрельба.
А простой и красивый способ нашёлся следующий.

среда, 2 ноября 2011 г.

Converting 32bit RRD to 64bit RRD (This RRD was created on other architecture)

Такая ошибка вываливается тогда, когда на одной архитектуре (скажем, 64bit), вы пытаетесь использовать rrd-шки, созданные на другой (32bit).
Починить можно, перегнав rrd-шку в xml на старой системе, а затем обратно - на новой.
Например, на старой системе выполняем:
rrdtool dump sometest.rrd > sometest.xml
На новой:
rrdtool restore sometest.xml sometest.rrd
Если же файлов много, то можно сделать это так:
На старой системе:
for i in `find -name "*.rrd"`; do rrdtool dump $i > $i.xml; done
На новой:
for i in `find -name "*.xml"`; do rrdtool restore $i `echo $i |sed s/.xml//g`; done

воскресенье, 30 октября 2011 г.

fdisk - Partition table entries are not in disk order, или восстанавливаем порядок разделов


Иногда может случиться так, что порядок разделов в таблице разделов меняется. Таким образом, что раздел (партиция) с номером x+2 оказывается физически между разделом x и x+1. Например, так, как это показано ниже:

$ sudo fdisk -l /dev/sda 
 ...
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e3147
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    58593279    29295616   83  Linux
/dev/sda2        58595326   625141759   283273217    5  Extended
/dev/sda5        58595328   373270527   157337600   83  Linux
/dev/sda6       615235584   625141759     4953088   82  Linux swap / Solaris
/dev/sda7       373272576   615225239   120976332   83  Linux
Partition table entries are not in disk order
Как видно, раздел /dev/sda7 на самом деле расположен между /dev/sda5 и /dev/sda6.
В принципе, это не критично. Однако, если вы всё же хотите восстановить правильный порядок разделов, надо выполнить следующие простые действия:
1) Запускаем fdisk для требуемого раздела
$ sudo fdisk /dev/sda
2) Включаем расширенные команды:
Command (m for help): x
3) Правим порядок:
Expert command (m for help): f
Done.
4) Записываем изменения на диск:
Expert command (m for help): w
The partition table has been altered!
Собственно, всё, порядок разделов исправлен:
Command (m for help): p
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesU
Disk identifier: 0x000e3147
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    58593279    29295616   83  Linux
/dev/sda2        58595326   625141759   283273217    5  Extended
/dev/sda5        58595328   373270527   157337600   83  Linux
/dev/sda6       373272576   615225239   120976332   83  Linux
/dev/sda7       615235584   625141759     4953088   82  Linux swap / Solaris
Однако, если в вашем /etc/fstab прописаны диски по их названиям типа /dev/sdaX, а не по UUID, то вам следуем не забыть поправить  fstab, так как названия поменялись. UUID же остались прежними.

вторник, 18 октября 2011 г.

Ubuntu - возвращаем F10 в MC (Midnight Commander)

К сожалению, в Ubuntu 11.04 и 11.10 нажатия кнопки F10 перехватываются Unity. Это очень разжражает, так как в Midnight Commander'е эта кнопка часто используется, например, для выхода.
Избавиться о перехватов Unity просто. Для этого надо выполнить следующие действия:
1) Устанавливаем compizconfig-settings-manager:
$ sudo aptitude install compizconfig-settings-manager
2) Далее, запускаем его (в меню приложений находим compizconfig-settings-manager)
3) Вводим в фильтре Unity и находим Ubuntu Unity Plugin:
4) Снимаем галочку либо нажимаем на него и переназначаем клавишу вызова. Я выбрал Ctrl+Shift+F10

воскресенье, 25 сентября 2011 г.

PHP MongoDB - получаем _id только что созданной записи (MongoID)

Ситуация: мы хотим получить _id только что созданной нами записи. То есть, например, мы создали юзера и хотим знать айдишник, который MongoDB присвоила ему. Делается это очень просто:
Добавляем элемент:
$x = array('foo' => 'bar');
$c->insert($x); 
Проверяем внутренности $x:

var_dump($x);
array(2) {
  ["_id"]=>
  object(MongoId)#2 (0) {
  }
  ["foo"]
  string(7) "bar" 

Таким образом, для того, чтобы узнать _id, достаточно вывести $x['_id']

суббота, 28 мая 2011 г.

Javascript - расшифровка htmlEntities

function decodeHtml(decoded){
var ta = document.createElement("textarea");
ta.innerHTML = decoded;
return ta.value;
}

понедельник, 9 мая 2011 г.

Простой скрипт для бэкапа MySQL баз

#!/bin/bash

# Variables
CNF=/etc/mysql/debian.cnf
BACKUPDIR=/var/backups/mysql/
DATE=`date +%F`
OLDDAYS=7

# Main part
for DATABASE in `echo SHOW DATABASES | mysql --defaults-file=${CNF} --skip-column-names`;do
BACKUPNAME=${BACKUPDIR}${DATABASE}.sql.${DATE}
BZBACKUPNAME=${BACKUPNAME}.bz2
echo Dumping ${DATABASE} into ${BZBACKUPNAME}
mysqldump --defaults-file=${CNF} ${DATABASE} > ${BACKUPNAME}; bzip2 -f ${BACKUPNAME}
done

# Deleting old backups

find ${BACKUPDIR} -mtime +${OLDDAYS} -delete


Дампит и сжимает базы данных.
Можно (и нужно) добавить его в крон, например:
00 05 * * * root /usr/local/sbin/mysqlbackup.sh

P.S. Ах да, это юбилейный, сотый пост в моём бложике:) 

вторник, 26 апреля 2011 г.

Ubuntu (Debian) - устанавливаем VirtualBox 4.0.6

VirtualBox 4.0.6 устанавливается в Ubuntu очень просто. Все описано вот здесь: http://www.virtualbox.org/wiki/Linux_Downloads . Если вкраце, то должны быть следующие действия:
Выбираем нужную строчку по версии операционной системы из этого списка:

deb http://download.virtualbox.org/virtualbox/debian maverick contrib non-free
deb http://download.virtualbox.org/virtualbox/debian lucid contrib non-free
deb http://download.virtualbox.org/virtualbox/debian karmic contrib non-free
deb http://download.virtualbox.org/virtualbox/debian hardy contrib non-free
deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free
deb http://download.virtualbox.org/virtualbox/debian lenny contrib non-free
Например, для Ubuntu 10.04 нужна строка

deb http://download.virtualbox.org/virtualbox/debian lucid contrib non-free
Добавляем ее в конец файла /etc/apt/sources.list.
Затем скачиваем ключ репозитория и добавляем его в apt:

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
После чего обновляем репозитории и устанавливаем VirtualBox:

sudo apt-get update
sudo apt-get install virtualbox-4.0

четверг, 21 апреля 2011 г.

Linux - меняем кодировку для всех файлов в директории

for file in `find . -type f`; do iconv $file -f cp1251 -t utf8 -o ${file}_tmp; mv ${file}_tmp $file; done

Рекурсивно меняет кодировку для всех файлов в текущей директории из cp1251 в utf8.

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

Linux MTA - настройка своего сервера для борьбы со спамом

Вот еще одна отличная статья про настройку своего MX сервера: ссылка на статью. Описывается фильтрация на уровне SMTP протокола, а не на основе спам-фильтров и т.п.

Linux MTA - как не попасть в спам, или настройка PTR и DKIM.

Вот в этой статье на Хабре подробно и понятно всё описано. Сделал как там рекомендовалось - и Google стал рад моим письмам:)

Linux MTA - настройка отправки писем через smarthost для exim4 и sendmail

Вот замечательная статья, в которой описывается, как это делать:
http://blog.sozinov.eu/2007/10/smarthost.html

вторник, 8 марта 2011 г.

Настройка и установка МФУ (принтера и сканера) HP F4100 в Linux Debian Wheezy (и Ubuntu)

Предыстория: Понадобилось отсканировать несколько фотографий из книжки типа "Лучшие советские фотографы". А для этого нужен был сканер. У меня как раз завалялся МФУ Hewlett Packard F4100. Вот такой вот зверек:

Настраиваел я его на Linux Debian Wheezy. В принципе, инструкция ничем не отличается и для других Дебианов. В Убунту, скорее всего, тоже так получится, но там наверняка можно всё тоже самое еще и через гуи натыкать.
Здесь же я выполнил следующие действия:
Во-первых, воткнул его в сеть и в USB моего нежного любимого Lenovo U350.
Во-вторых, посмотрел вывод dmesg:
# dmesg
[10537.432045] usb 6-1: new full speed USB device using uhci_hcd and address 3
[10537.631039] usb 6-1: New USB device found, idVendor=03f0, idProduct=7e04
[10537.631045] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[10537.631049] usb 6-1: Product: Deskjet F4100 series
[10537.631053] usb 6-1: Manufacturer: HP
[10537.631056] usb 6-1: SerialNumber: CN75R3H2D004TJ
[10537.631183] usb 6-1: configuration #1 chosen from 1 choice
[10537.810588] usblp0: USB Bidirectional printer dev 3 if 1 alt 0 proto 2 vid 0x03F0 pid 0x7E04
[10537.810619] usbcore: registered new interface driveи usblp
Вроде как и нашлось, однако в lsusb я устройства не увидел:
# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 5986:0241 Acer, Inc BisonCam, NB Pro
Bus 002 Device 004: ID 8086:1406 Intel Corp. WiMAX Connection 2400m
Bus 006 Device 002: ID 0458:0056 KYE Systems Corp. (Mouse Systems) Ergo 300 Mouse
Bus 007 Device 002: ID 0a5c:2150 Broadcom Corp. BCM2046 Bluetooth Device
В-третьих, установил sane b гую для него - xsane.
# aptitude install sane xsane
sane поставился, однако пользы от этого особой не было. Xsane настойчиво пытался получать изображение с веб-камеры, и никак не видел HP. Немного погуглив, я выяснил, что HP делает драйвера специально под линукс, и можно поискать ссылку на них на официальном сайте. Там меня редиректнуло на такой вот сайт: http://hplipopensource.com/hplip-web/index.html. Тут я подумал, у меня же Debian, а не Слака какая-нибудь, и нашёл пакет hplip в репозиториях. Установил:
# aptitude install hplip
, и подумал, что все, готово.
Однако, всё не так просто, мне понадобилось еще перевтыкнуть usb-шнурок, и после этого xsane уже отлично видел МФУ-шку и был готов сканировать:
Вот теперь уже всё:) Кстати, GIMP умеет сразу создавать файл через xsane: Файл - Создать - Xsane...
Если обобщать, то надо выполнить следующие действия:
# aptitude install xsane hplip
и после этого воткнуть шнурок сканера.