Записи с Меткой ‘ linux

tool utils Linux

Linux (Xenserver 7) HASP проброс USB в Windows server 2012

1с с ключем HASP, нужно пробросить с Xenserver 7 в виртуалку w2k12.
Собственно брал USB over Network with XenServer 6 _ Citrix Blogs гайд нормальный, но проблема заключилась в том что собирается x86 софт, а XEN x64, что приводило к ошибке:

[root@srv-xen1 ~]# /usr/local/usb-redirector/bin/usbsrv
-bash: /usr/local/usb-redirector/bin/usbsrv: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

 

Можно это лечить установкой glibc.i686, но ломка зависимостей в xenserver мне не улыбнулась.

Дальше смотрел в сторону usb/ip, но многие писали, что дружит не со всем. С hasp нет!
Пошел искать дальше.
https://virtualhere.com/ тот-же usb/ip, но меньше гемороя. И дрова свежие для всего.
1 usb бесплатно за остальные плати.

Installation is simple, figure out the architecture of your server device (for example x86_64), then on the linux server device:

wget http://www.virtualhere.com/sites/default/files/usbserver/vhusbdx86_64 (e.g x86_64, see list below) ()
chmod +x ./vhusbdx86_64 (to make that file executable)
sudo ./vhusbdx86_64 -b (to run it in the background)
Plug USB devices to share into your server and run the Client on the remote machines

vi /etc/sysconfig/iptables
вставить перед REJECT
-A RH-Firewall-1-INPUT -m state —state NEW -m tcp -p tcp —dport 7575 -j ACCEPT

service iptables restart

vnc4server for gui

#sudo apt-get install gnome-core
#sudo apt-get install vnc4server
#vncserver -geometry 1280×1024 -depth 24
#vncserver -kill :1
#cd
#sudo vi .vnc/xstartup

should be: (look at reference link as does not format well on forum)

#vncserver -geometry 1280×1024 -depth 24

(reference for gnome and vnc http://www.havetheknowhow.com/Configure-the-server/Install-VNC.html)

Когда нужно поднять графику без монитора.
Или использовать framebuffer, dummy.

vnc xenserver vm
xenserver65sp1_vm_users_guide

Jpegoptim сжимаем фотки на шарах

debian & ubuntu
apt-get install jpegoptim
find . -name ‘*.jpg’ | xargs jpegoptim -m85 —strip-all

centos
yum install findutils jpegoptim
find . -name ‘*.jpg’ -print0 | xargs -0 jpegoptim -m85 —strip-all

jpegoptim windows
Жмут все в локальных папках. Не стоит забывать о *.JPG!

openwrt dhcp

Трабл, возник при прошивке моего keenetik (первая версия — белый),
Прошивки под мой keenetik в Openwrt, нашел на 4pda
по дефолту dhcp в lan не отдается только в wlan. Соответственно в конфиг /etc/config/dhcp нужно добавить автоматическое добавление dhcp в lan

config dhcp lan
	option interface lan
	option start 100
	option limit 150
	option leasetime 12h
	option ignore 0 # << получать IP автоматом

 

И жизнь в lan с dhcp становиться легче.

Установка Thinstuff LX Server — Терминальный сервер на linux

Я поднимал его на lxde debian 7.
Если из инета уплывет, чтобы у меня сохранилось.
lx_server_manual
Дистриб сервера lxserver-1.2.1-5366.sh

Копи-паст спасибо.
Краткое вступление

Стоит напомнить, что Thinstuff LX Server позволяет получить удаленный доступ к приложениям на основе X11 с помощью протокола Microsoft RDP (Remote Desktop). Что обеспечивает возможность использования как приложений Linux, так и Windows на одном рабочем столе — без необходимости внсить изменения в инфраструктуру.

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

[]

Домашняя страница продукта находится по адресу: http://www.thinstuff.com/products/lx-server/

Подробно останавливаться на описании и возможностях продукта я сейчас не буду, с учетом того, что не так давно я вкратце описывал их (LX Server от Thinstuff).

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

Компания Thinstuff также предоставляет такую возможность, чем мы и воспользуемся. Заодно скажу, что для Windows-версии существует 14-дневная триальная версия с полноценными возможностями, а для Linux — версия без ограничений по времени, но зато с ограничением количества подключений и сессий. Оба варианта доступны на следующей странице: http://www.thinstuff.com/downloads-support/downloads/ . Подробней на возможностях оценочной Linux-версии я остановлюсь чуть позже.

На этой же странице (https://www.thinstuff.com/licensing/) можно посмотреть варианты предоставляемого продукта, а также стоимость лицензий на его использование, которая зависит от количества подключений.
Установка

Для начала необходимо получить дистрибутив LX Server.

Переходим в произвольную директорию по вашему выбору. У меня будет /tmp:

cd /tmp
wget [http://www.thinstuff.com/releases/lxserver-1.2.1-5366.sh](http://www.thinstuff.com/releases/lxserver-1.2.1-5366.sh)

Размер — примерно 60 мегабайт, поэтому потребуется какое-то время на скачивание.

—2009-03-16 16:37:59— http://www.thinstuff.com/releases/lxserver-1.2.1-5366.sh
Распознаётся www.thinstuff.com… 78.46.51.238
Устанавливается соединение с www.thinstuff.com|78.46.51.238|:80… соединение установлено.
Запрос HTTP послан, ожидается ответ… 200 OK
Длина: 62484766 (60M) [application/x-binary]
Сохраняется в каталог: `lxserver-1.2.1-5366.sh’.
100%[===============================================>] 62 484 766 115K/s в 7m 52s
2009-03-16 16:45:50 (129 KB/s) — `lxserver-1.2.1-5366.sh’ сохранён [62484766/62484766]

Для установки необходимо получить права пользователя root. Установка под другим пользователем не поддерживается. Запускаем скрипт установщика:

[root@off2 tmp]# bash lxserver-1.2.1-5366.sh
checking archive integrity …
Thinstuff LX Server
(c) Thinstuff s.r.o.
http://www.thinstuff.com
Welcome to the setup routine for the Thinstuff LX Server.
This setup will install the RDP server on your computer in
the directory /opt/thinstuff/rdpserver. The installation
will take about 132 MB of harddisk space.
For more information on non-interactive execution of this
installer please use:
lxserver-1.2.1-5366.sh —help
Please press to continue

Здесь требуется нажать Enter для продолжения.

detecting old installations …
Please choose one of the following actions:
[I]nstall: This installs 1.2.1, build 5366.
[E]xit: Exit installer without changing anything.
Please enter choice (E/I):

В данном случае, поскольку я уже ставил этот продукт, то установщик обнаружил ее. В данном случае нас интересует новая установка, поэтому выбираем I:

Please enter choice (E/I): i
Ready to begin installation. Please press to continue.

Установщик по любому поводу задаются вопросы ))) Что-то мне это напоминает, но сейчас не об этом. Продолжим, нажав Enter.

BY ANSWERING «Y» TO THE PROMPT AT THE END OF THIS TEXT, YOU ARE CONSENTING
TO BE BOUND BY THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF
THIS AGREEMENT, ANSWER «N» TO THE PROMPT AT THE END OF THIS TEXT TO
DISCONTINUE THE INSTALLATION. PLEASE PROMPTLY RETURN THE SOFTWARE PACKAGE
TO Thinstuff s.r.o.
THE FOLLOWING LICENSE GOVERNS YOUR RIGHTS TO THE THINSTUFF LX SERVER(tm)
SOFTWARE. YOU ARE NOT GRANTED ANY RIGHTS IN ANY SOFTWARE INCLUDED IN THIS
SOFTWARE DISTRIBUTION THAT YOU HAVE NOT LICENSED AND FOR WHICH YOU HAVE NOT
PAID THE APPROPRIATE LICENSE FEES TO Thinstuff s.r.o.

1. License. The enclosed computer software and documentation («Software»)
is not being sold and purchased, but is being licensed to you by
Thinstuff s.r.o. («Thinstuff») under a personal, nonexclusive,
nontransferable and paid-up license for use only under the following
terms, and Thinstuff reserves any rights not expressly granted to you
herein. Under the terms of this license you own the media on which the
Software is recorded, but Thinstuff retains all of the rights of
ownership to the Software and all copies of the Software. This license
shall be governed by the laws of the Republic of Austria.

2. Under this license you may:
a.) Make copies of the Software solely for backup or archival purposes.
b.) Make simultaneous use of the Software on a number of computers up
to the number of licenses you purchased for the software.
c.) Transfer your rights under this license for the Software, provided
that you give Thinstuff prior written notice of such transfer and
—Далее—

Предлагается прочитать лицензию на использование. И принять ее:

Do you accept the license (yes/no) ? Yes

Далее будет предложено отправить производителю анонимную информацию о платформе, на которой будет использоваться данный продукт. Эта информация включает в себя тип процессора, версию ядра и другие подобные данные, собранные во время установки. Это опционально, можно отказаться, потому нажмем No.

We would like to collect anonymous information about
the platforms where this product is installed. These
informations would include CPU type, Kernel version
and similar data and would be collected only once
during this setup.
This step is OPTIONAL. If you do not want to send any
information, just answer no to the next question. If
you agree, then the information that is about to be
sent will be displayed before it is actually trans-
mitted.
Would you like to send anonymous system information (yes/no) ? No

И далее следует подготовка и извлечение из архива:

preparing Archive …
extracting Archive …
WARNING: enabling «trust» authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

* CORBA already running -> skipping
* Starting PostgreSQL: .Done
* lighttpd is already running -> skipping

Finished starting system services…
FINISHED installing database
starting server …

* Starting Configuration Server: .Done
* Proxy Service is already running -> skipping
* Application Launcher is already running -> skipping
* Waiting for RDP server to complete startup:

Finished starting terminalserver services — accepting connections to the
terminalserver
Configuring default session program. Please choose one of the following
options:
[G]nome
[T]wm: Built-in simple windowmanager (default).
Please enter choice (G/T):

Здесь немного остановимся. В комплекте с rdpserver поставляется база данных PostgreSQL и веб-сервер lighttd. При установке проверяется установка этих компонентов и проверка их работоспособности. На некоторых дистрибутивах Linux у меня были проблемы именно на этом шаге. База данных и веб-сервер устанавливались, но установщик не мог подключиться к ним для проверки. При этом lighttpd не мог обнаружить свой файл конфигурации. Это имело место при установке на openSUSE 11.1 и SLED 11 RC1. Может быть, это просто случайность, может еще что-то. Успешная установка была проведена на Fedora 10 и SLES 10 SP2.

Итак, при установке можно выбрать, какой оконный менеджер будет запускаться при входе в систему. В данном случае, поскольку я использую Gnome, то он в пунктах выбора и присутствует. А вот Twm поставляется вместе с LX Server и, если на вашем сервере не ставилась X Window Sustem, то есть возможность использовать именно Twm. Я выбираю Gnome:

Please enter choice (G/T): G
Password (for user root):

Требуется ввести пароль пользователя root. А также потом ответить на вопрос, установить ли скрипт запуска и запускать ли сервис во время старта системы:

Do you want to install the init.d script and start the service on system start
(yes/no) ? Yes
INSTALLATION COMPLETE
Please copy your license to «/opt/thinstuff/rdpserver/licenses»
Default configuration: you can connect to this host with your RDP
client. For server management please connect to this host
using the https protocol (e.g. https://localhost). By default
only the user root has access to the management interface.
Please see the documentation at «/opt/thinstuff/rdpserver/doc»
for further setup and configuration instructions.

На этом процесс установки заканчивается. Для управления сервером необходимо в браузере открыть адрес https://localhost, если устанавливали на локальную машину, а также можно использовать ip-адрес или имя компьютера, при удаленной установке. В данной статье ставилось все на локальном, потому его ip-адрес использовать и будем.
Кратко о получившемся

LX Server устанавливается только в директорию /opt/thinstuff/rdpserver. Установка в другую директорию не поддерживается. Это позволяет гарантировать, что будет установлена только одна копию сервера. LX Server содержит все библиотеки, необходимые для успешного запуска, в своей директории, что позволяет обойтись без необходимости установки каки-либо дополнительных приложений.
Настройка и Администрирование

Поскольку при установке сервера мы решили сразу его и запустить, то он уже работает. Но все же хотелось бы как-то управлять им и в дальнейшем. Для этого предоставляется скрипт для Thinstuff LX Server, находящийся в файле /opt/thinstuff/rdpserver/scripts/rdp-server.init.d-template, который необходимо установить. Дальнейшие шаги будут немного отличаться для различных дистрибутивов, но для основных достаточно будет проделать следующее:

cp /opt/thinstuff/rdpserver/scripts/rdp- server.init.d-template \
/etc/init.d/rdp-server

/usr/lib/lsb/install_initd /etc/init.d/rdp-server

Также, для дальнейшей работы представляют интерес следующие скрипты и директории:

/opt/thinstuff/rdpserver/scripts/startall.sh Запустить сервер.
/opt/thinstuff/rdpserver/scripts/stopall.sh Остановить сервер.
/opt/thinstuff/rdpserver/scripts/init.sh Перезапустить сервер, действует так же, как остановка и последующий запуск.
/opt/thinstuff/rdpserver/licenses/ В этой директории содержатся все текущие лицензии. Лицензии должно храниться только в этом месте; установить лицензию можно простым копированием или перемещением в это место. И для установки или удаления лицензии не требуется перезапускать сервер.

LX Server администрируется и настраивается через веб-интерфейс. Итак, попробуем:

[]

Для входа необходимо ввести следующие данные:

Login — root Password — <пароль пользователя root>
Интерфейс

Интерфейс состоит из четырех частей.

Server StatusПозволяет быстро определить существующие проблемы.
SessionsПоказывает, какие пользователи используют сервисы, и позволяет управлять ими.
RightsПозволяет настроить права доступа к веб-интерфейсу.
SettingsЗдесь можно настроить параметры для терминального сервера и сессий.

Предлагаю пройтись слегка по выше перечисленным пунктам и посмотреть, что они из себя представляют.

Server Status

Server Health

[]

В этом разделе можно получить общее представление о статусе терминального сервера. Для лучшего понимания статус подсвечивается, при возникновении проблем будет показано статусное сообщение.

Существует четыре различных уровня статуса:

Running (зеленый) — Все работает без проблем.

Warning (желтый) — Сервер работает, но один или несколько компонентов испытывают сложности. Это позволяет отслеживать состояние сервера и определить временная ли это проблема или необходимо модернизировать сервер. Пробемы включают:

Центральный процессор, память или другие ресурсы достигли критической точки.

Один или несколько компонентов, но не все, сообщают об ошибках во время операций.

Critical (красный) — Проблемы, подобные описанным в Warning, но они касаются всехрезервных и нерезервных компонентов.

Error (красный) — Один или несколько компонентов не работоспособны и сервер больше не дееспособен. Необходимо перезапустить терминальный сервер.

License Info

Во втором разделе секции отображается информация о ваших текущих лицензиях. Статус лицензий обозначается также цветами, значение которых мы вкратце и опишем:

Valid (зеленый) — Лицензия на данный момент действительна.

Grace (желтый) — Лицензия существует, но срок действия ее истечет в скором времени.

Invalid (красный) — Может иметь несколько причин (неверный hardware id , неверный файл лицензии…)

[]

Sessions

[]

В этой секции отображается список всех активных сессий и подключений к терминальному серверу. На данный момент у меня подключений нет, как видите. Каждая сессия может иметь ни одного, одно или больше подключений.

Rights

Пользователи

[]

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

Здесь же можно установить права для конкретного пользователя.

[]

Группы

[]

Список групп подобен списку пользователей. Он также синхронизируется с системным списком групп каждые несколько секунд. Также можно изменить права для конкретной группы, кликнув на Rights.

Settings

Эта секция позволяет настроить различные аспекты поведения LX Server: от интервала портов до различной оптимизации ЦП и пропускной способности. Существует два вида настроек:

Global Settings

Действуют глобально на весь сервер. Включают в себя в том числе и номер порта, который будет слушать сервер RDP.

Profile Settings

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

Количество настроек, которые будут отображаться, зависит от уровня просмотра, котрых существует три:

Level 0 (Standard) — Содержит только часто используемые настройки.
Level 1 (Advanced) — Содержит настройки, присутствующие в Level 0 и дополнительные настройки, контролирующие поведение сервера.
Level 2 (Expert) — Содержит все настройки.

[]

Global Settings

Это настройки, необходимые серверы во время запуска.

Profiles

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

Settings

[]

Используя Мастер Настроек наиболее общие установки легким способом.

Advanced Settings

В этой секции вы можете как изменить настройки профиля, так и управлять этими профилями.

[]

Поскольку я не вижу смысла в данном документе описывать все подробности всех вариантов настроек, тем более что они могут сильно зависить от конкретных требований, то ограничиваюсь кратким описанием. На сайте Thinstuff выложена достаточно подробная и понятная документация. Она, правда, на английском языке, но особых сложностей в тексте нет, потому вполне понятна. Ссылки на документацию смотрите в конце этого руководства.
Подключение

Теперь, когда практически все готово, можно попробовать подключиться к серверу. В Linux-клиенте будем использовать для этого Gnome-RDP, в Windows — встроенный клиент RDP. В целом, могу сказать, что в подключении сложности нет никакой, при условии, что все предыдущие шаги проделаны верно. И есть еще один момент, на машине, на которую устанавливали RDP-сервер, не забудьте открыть порты 3389 tcp и 3389 udp.

Итак:

[]

Для начала подключимся к тестовому серверу на этой же машине.

[]

[]

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

[]

В открывшемся окне вводим имя пользователя и пароль и…

[]

Получаем Рабочий стол на Рабочем столе.

[]

А тут Opera запущенная на «удаленном Рабочем Столе».

Стоит заменить, что можно входить и под пользователем, вход которого уже выполнен. Работа проходит фактически параллельно. Правда, если попытаться запустить Firefox, который уже был запущен при основном входе, то получится вот что:

[]
Заключение

Честно говоря, опыт использования LX Server у меня не большой. Да и, по большому счету, этот опыт сводится к тестовому использованию его в пределах локальной сети на работе. Поскольку я ставил RDP-сервер на арендованный сервер в дата-центре, то была возможность попробовать поработать через сеть Интернет. С достаточно нормальным подключением, а на работе канал 2 мегабита, работать можно нормально. Если местами и подтормаживает, то не сильно и не критично. Но при выходе в Интернет через телефон с подключением к оператору «Скайлинк» в зоне 1х (если кто не в курсе, скорость до 153 килобит), работа с удаленным сервером не комфортна совершенно. Отображение раочего стола тормозит очень заметно. Правда, я не искал и не пытался настроить сам сервер, возможно и есть варианты, но подсказать на данный момент не могу ничего конкретного.

Мой вердикт будет таковым: достаточно хороший вариант для локальной сети, допустим для сервера 1С. Тем более, что сейчас 1С можно использовать установленным на Linux и в версии терминального сервера от Thinstuff для ОС Linux нет ограничения работоспособности по времени, только по клиентам. В Windows-версии, напомню, ограничение в 14 дней. Хотя и в том, и в другом варианте лицензионным соглашением запрещено использование тестовой версии на производстве.

Использование же подключения к действительно удаленному серверу возможно исключительно при достаточно адекватной скорости подключения к сети Интернет, в любом другом случае возможны проблемы.

Общие команды XenServer

Этот пост скорее для меня самого, но вдруг кому понадобится…

По работе установил в качестве гипервизора Citrix Xenserver, потому что он умеет беспроблемно пробрасывать PCI карты (и PCIe если они работают через PCI/PCIe bridge) в гостевые машины.

У этой системы многие вещи делаются через линукс-консоль. Напишу некоторые тут, чтоб не забыть.

Общие команды линукс

lspci
— выдает список всех PCI устройств, тождественна той же команде в «нормальном» линуксе

lsusb
— выдает список всех USB устройств

nano …
— nano — мелкий встроенный текстовый редактор вместо кривого и непонятного vi
выход Ctrl-X

Общие команды Xen

xe vm-list
— выдает список сконфигурированных виртуалок и их UUID

xe pool-list
— выдает список и UUID пула

xe vm-param-set uuid=… other-config:pci=0/0000:02.00.1,0/0000:02.00.2,…
— проброс устройств в виртуалку

xe vm-param-set uuid=… other-config:pci
— с пустым параметром other-config:pci сбрасывает все пробросы к данной виртуалке

Отключение PCI устройств от хоста

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

1. Редактируем конфиг
nano /boot/extlinux.conf

Добавляем в файле в строке в блоке «label xe», начинающейся на «append» в конце перед «— /boot/initrd-…» данные в следующем виде:
pciback.hide=(04:00.0)(04:00.1)
перечисляем все устройства, которые пробрасываются в виртуалки (полностью со всеми подфункциями!)

2. Выполняем команду (пока не знаю зачем…)
extlinux -i /boot

3. Перезагружаем хост
reboot -n

Размер памяти виртуалки

xe vm-param-set uuid=… memory-static-min=1024MiB
— по умолчанию виртуалка с Win7 не может имень меньше 2GB памяти, эта команда корректирует нижний предел

Автостарт

Автостарт для виртуалок при старте сервера:

1. Нужно установить флаг у пула
xe pool-param-set uuid=… other-config:auto_poweron=true

2. Нужно установить флаг у всех виртуалок
xe vm-param-set uuid=… other-config:auto_poweron=true

Спасибо.

Автозапуск виртуальных машин Xenserver 6.5

Многие пользователи платформы Citrix XenServer были несколько удивлены, когда в шестой версии этого продукта заметили, что возможности Auto Start для виртуальных машин были убраны из графического интерфейса консоли управления XenCenter, хотя присутствовали в более ранних версиях.
Сделано это было потому, что механизм автоматического старта виртуальных машин в XenServer конфликтуют с функциями высокой доступности (HA). Однако тем пользователям, которые применяют бесплатное издание XenServer 6 Free Edition, эти возможности, все-таки, нужны.
Настроить автозапуск гостевых машин можно из консоли
1. Определеяем UUID пула, для которого мы хотим включить Auto Start. Для этого выполняем консольную команду на сервере XenServer:
# xe pool-list
uuid ( RO) : 8a3b99c9-c4e9-802c-1298-794d939fb999
2. Разрешаем автостарт виртуальных машин на уровне пула с найденным UUID командой:
# xe pool-param-set uuid=8a3b99c9-c4e9-802c-1298-794d939fb999 other-config:auto_poweron=true
Теперь включаем автостарт на уровне виртуальных машин, для чего:
3. Выполняем команду для получения UUID виртуальной машины:
# xe vm-list
uuid ( RO) : 021fe476-dc06-23a7-b60e-092a3c286f70
name-label ( RW): VM
power-state ( RO): running
4. И для каждой виртуальной машины с найденным UUID включаем автостарт:
# xe vm-param-set uuid=021fe476-dc06-23a7-b60e-092a3c286f70 other-config:auto_poweron=true

Спасибо все работает.

linux материнская плата + cat /proc/cpuinfo

 dmidecode -t baseboard
# dmidecode 2.12
SMBIOS 2.6 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: MICRO-STAR INTERNATIONAL CO.,LTD
        Product Name: G31TM-P21 (MS-7529)
        Version: 1.0
        Serial Number: To be filled by O.E.M.
        Asset Tag: To Be Filled By O.E.M.
        Features:
                Board is a hosting board
                Board is replaceable
        Location In Chassis: To Be Filled By O.E.M.
        Chassis Handle: 0x0003
        Type: Motherboard
        Contained Object Handles: 0

Handle 0x0038, DMI type 41, 11 bytes
Onboard Device
        Reference Designation: To Be Filled By O.E.M.
        Type: Video
        Status: Enabled
        Type Instance: 0


dmidecode -t 
Invalid type keyword: cpu
Valid type keywords are:
  bios
  system
  baseboard
  chassis
  processor
  memory
  cache
  connector
  slot

 

cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Pentium(R) Dual  CPU  E2180  @ 2.00GHz
stepping        : 13
microcode       : 0xa4
cpu MHz         : 1203.000
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dtherm
bogomips        : 4000.23
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Pentium(R) Dual  CPU  E2180  @ 2.00GHz
stepping        : 13
microcode       : 0xa4
cpu MHz         : 1203.000
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dtherm
bogomips        : 4000.23
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

 

usbreset + smsd_monitoring huawei 1550 + smstools

script usbreset

usbreset -- send a USB port reset to a USB device
 *
 * Compile using: gcc -o usbreset usbreset.c
 *
 *
 * */
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>

#include <linux/usbdevice_fs.h>


int main(int argc, char **argv)
{
	const char *filename;
	int fd;
	int rc;

	if (argc != 2) {
		fprintf(stderr, "Usage: usbreset device-filename\n");
		return 1;
	}
	filename = argv[1];

	fd = open(filename, O_WRONLY);
	if (fd < 0) {
		perror("Error opening output file");
		return 1;
	}

	printf("Resetting USB device %s\n", filename);
	rc = ioctl(fd, USBDEVFS_RESET, 0);
	if (rc < 0) {
		perror("Error in ioctl");
		return 1;
	}
	printf("Reset successful\n");

	close(fd);
	return 0;
}

 

Компилируем файл с помощью любого компилятора C (cc/gcc) командой вида gcc usbreset.c -o usbreset (установить компилятор можно командой apt-get install gcc) , получаем исполняемый файл usbreset.
Даём ему права на выполнение chmod +x usbreset.
Программа usbreset оперирует не с сетевыми интерфейсами, а с устройствами, поэтому с помощью lsusb узнаём необходимые параметры нашего модема.
Выдача lsusb содержит строки вида:
Код: [Выделить]
Bus 004 Device 002: ID 04e8:60a6 Huawey e1550
Конкретно для этого девайса запуск usbreset будет таким:
Код: [Выделить]
./usbreset /dev/bus/usb/004/002
Если есть трудности с определением устройства можно выполнить lsusb -v, которая даёт более развёрнутый ответ и посмотреть там.

И, наконец, добавим в /etc/crontab мониторинг подключения и reset модема при обрыве связи:
Спойлер: моя запись в /etc/crontab (кликните для показа/скрытия)
* * * * * root ping -c 1 8.8.8.8 || ping -c 1 213.87.1.1 || ping -c 1 212. || ./home/leo/bin/usbreset /dev/bus/usb/001/002
т.е. если не проходит пинг ни до одного из указанных ip-адресов — сбросить устройство при помощи программы usbreset.
Внимание! В /etc/network/interfaces для интерфейса модема обязательно должно быть прописано allow-hotplug eth1 (у меня он называется eth1), иначе он не будет автоматически подниматься после сброса.

если случается так что самопроизвольно меняется путь модема (например был /dev/bus/usb/001/002, а стал /dev/bus/usb/001/004), то можно сделать следующее: создать bash-скрипт, с предложенным ниже содержанием и вместо предложенной выше строчки в crontab поместить его.
Код: [Выделить]
#!/bin/bash
d1=`lsusb | grep «1076:8002» | awk ‘{print $2}’`
d2=`lsusb | grep «1076:8002» | awk ‘{print $4}’ | sed ‘s/:/\ /g’`
/bin/ping -c 1 8.8.8.8 || /bin/ping -c 1 8.8.4.4 || /var/script/usbreset /dev/bus/usb/$d1/$d2
Здесь «1076:8002» — ven dev модема, для вашего модема значение будет другим.
Естественно всё что используется в скрипте должно быть установлено. 🙂

usbreset.tar.gz

script smsd_monitoring

cat /etc/smsd_monitoring
#!/bin/bash
rm /root/buffer_sms_file
date=`date`
tail -n5 /var/log/smstools/smsd.log > /root/buffer_sms_file
cat /root/buffer_sms_file | grep "Error: Modem is not registered to the network"
if [ $? -eq 0 ]; then
        /root/usbreset /dev/bus/usb/004/$(lsusb | grep Huawei | cut -d ' ' -f 4 | tr ':' ' '| sed -e '/^$/d' | head -c 3)
#       /root/reboot_modem_soft
        /etc/init.d/smstools restart
#        tar cvfz /var/log/smstools/smsd.log /var/log/smstools/sms_erlog_$date.log
#        shutdown -rf now
        fi

cat /root/buffer_sms_file | grep "Error: registration is denied"
if [ $? -eq 0 ]; then
        /root/usbreset /dev/bus/usb/004/$(lsusb | grep Huawei | cut -d ' ' -f 4 | tr ':' ' '| sed -e '/^$/d' | head -c 3)
#       /root/reboot_modem_soft
        /etc/init.d/smstools restart
#        tar cvfz /var/log/smstools/smsd.log /var/log/smstools/sms_erlog_$date.log
#        shutdown -rf now
        fi

cat /root/buffer_sms_file | grep "Modem handler 0 terminated abnormally"
if [ $? -eq 0 ]; then
        /root/usbreset /dev/bus/usb/004/$(lsusb | grep Huawei | cut -d ' ' -f 4 | tr ':' ' '| sed -e '/^$/d' | head -c 3)
#       /root/reboot_modem_soft
        /etc/init.d/smstools restart
#        tar cvfz /var/log/smstools/smsd.log /var/log/smstools/sms_erlog_$date.log
#        shutdown -rf now
        fi

cat /root/buffer_sms_file | grep "write_to_modem: error 5: Input/output error"
if [ $? -eq 0 ]; then
        /root/usbreset /dev/bus/usb/004/$(lsusb | grep Huawei | cut -d ' ' -f 4 | tr ':' ' '| sed -e '/^$/d' | head -c 3)
#       /root/reboot_modem_soft
        /etc/init.d/smstools restart
#        tar cvfz /var/log/smstools/smsd.log /var/log/smstools/sms_erlog_$date.log
#        shutdown -rf now
        fi

cat /root/buffer_sms_file | grep "Couldn't open serial port"
if [ $? -eq 0 ]; then
        /root/usbreset /dev/bus/usb/004/$(lsusb | grep Huawei | cut -d ' ' -f 4 | tr ':' ' '| sed -e '/^$/d' | head -c 3)
#       /root/reboot_modem_soft
        /etc/init.d/smstools restart
#        tar cvfz /var/log/smstools/smsd.log /var/log/smstools/sms_erlog_$date.log
#        shutdown -rf now
        fi

 

Спасибо 1
Спасибо2