Як перезавантажити yota модем, реальні замітки ubuntu - windows

Завдання: потрібно перезавантажувати Yota модем виступає для організації клієнтського Wifi інтернету.

Справа в тому, що буквально через деякий час, яку організує за допомогою Yota-пристрої (Інтернет-центр 990-730-0016R (Gemtek), Ідентифікаційний номер моделі: WLTFGR-102, Версія пристрою: V01) почав відвалюватися і тільки досвідченим шляхом (оновлення прошивки не виправляє ситуацію) було встановлено що тільки банальний фізичний або програмний викл / вкл допомагає лише на час, але як системний адміністратор я хочу хоч трохи розвантажити себе від рутини, тому вирішив піти іншим шляхом, за допомогою консолі моєї робочої системи Ubuntu 12.04 .5 Desktop amd64 народився крипт який просто в певні координати відкритого вікна налаштувань клацає щоб пройтися по кроках перезавантаження через Web - інтерфейс пристрою. У підсумку я отримав робочий скрипт. Навички розробки якого стануть в нагоді мені в майбутньому.

На замітку: слід відключити відновлення сесії Firefox в разі швидкого закриття основного вікна, т. Е. Відновлення після краху:

Як перезавантажити yota модем, реальні замітки ubuntu - windows

В ході вивчення питання як реалізувати задум даної проблеми народився наступний скрипт:

xdotool mousemove 1308 198

xdotool click 1

xdotool mousemove 708 453

xdotool click 1

Скрипт працює, але мінус мені потрібно було дослідним шляхом виокремити координати.

Дізнатися координати поточного вікна з курсором:

x: 833 y: 553 screen: 0 window: 69206198

$ Eval $ (xdotool getmouselocation --shell)

Нижче скрипт який обходить можливість використання координат:

wmctrl -r "Інтерфейс конфігурації пристрою" -e 0,1,1,950,600

xdotool mousemove 898 195

xdotool click 1

xdotool mousemove 707 453

xdotool click 1

Через команду в окремій вкладці консолі досвідченим шляхом обчислював координати необхідних мені елементів на сторінці: (після запуску цієї команди у мене є 5 секунд щоб навести на потрібну точку координати якої я хочу отримати.

$ Xdotool sleep 5 getmouselocation

x: 898 y: 195 screen: 0 window: 50897270

$ Apt-cache search wmctrl

wmctrl - control an EWMH / NetWM compatible X Window Manager

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

Нижче новий скрипт і теж працює:

# Роблю активним відкритої вікно

wmctrl -a "Інтерфейс конфігурації пристрою - Mozilla Firefox"

# Повертаю активне вікно з повноекранного режиму

xdotool mousemove 54 51

xdotool click 1

# Знову роблю активним відкрите вікно

wmctrl -a "Інтерфейс конфігурації пристрою - Mozilla Firefox"

# Активне вікно прилаштовують в лівий верхній кут як точка звіту

wmctrl -r "Інтерфейс конфігурації пристрою - Mozilla Firefox" -e 0,1,1,950,600

# Натискаю на елемент меню "перезавантаження"

xdotool mousemove 898 195;

xdotool click 1;

# Підтверджую, що має намір перезавантажувати пристрій

xdotool mousemove 707 453;

xdotool click 1;

# Очікую 60 секунд поки пристрій перезавантажується

# Закриваю Web-інтерфейс управління Yota-пристроєм.

wmctrl -c "Інтерфейс конфігурації пристрою - Mozilla Firefox"

Як буває з написаними скриптами вони зазнає безліч наступних удосконалень і усуненням недоробок першого релізу, нижче як раз йде розбір (як я собі на той момент це бачив) проблем і шляхи їх вирішення.

Піднімаємо VNC сервер на системі і до встановлюю в систему утиліти за допомогою яких я буду емулювати дії миші при роботі з Web-сторінки:

$ Sudo apt-get install vnc4server -y

You will require a password to access your desktops.

Password too long - only the first 8 characters will be used

New 'system: 1 (aollo)' desktop is system: 1

Creating default startup script /home/aollo/.vnc/xstartup

Starting applications specified in /home/aollo/.vnc/xstartup

Log file is /home/aollo/.vnc/system:1.log

[-r $ HOME / .Xresources] xrdb $ HOME / .Xresources

# Нижче шлях до скрипта дії якого значаться як ініціалізація перезавантаження

Зберігаємо внесені зміни.

Тепер створюємо скрипт перезавантаження:

$ Sudo touch / etc / yota

$ Sudo chown aollo / etc / yota

$ Sudo chmod + x / etc / yota

# Тимчасові проміжки sleep виставляються дослідним шляхом.

# Роблю активним відкритої вікно

wmctrl -a "Інтерфейс конфігурації пристрою - Mozilla Firefox";

# Переходимо на Додатково

xdotool mousemove -800 130

# Натискаю на елемент меню "перезавантаження"

xdotool mousemove 900 130;

# Підтверджую, що має намір перезавантажувати пристрій

xdotool mousemove 700 390;

xdotool click 1;

# Очікую 60 секунд поки пристрій перезавантажується

# Закриваю Web-інтерфейс управління Yota-пристроєм.

wmctrl -c "Інтерфейс конфігурації пристрою - Mozilla Firefox";

Зберігаю внесені зміни.

Тепер створюю обробник для даного скрипта щоб він запускав скрипт по колу хвилин так так 30 наприклад:

# Роблю активним відкритої вікно

wmctrl -a "Інтерфейс конфігурації пристрою - Mozilla Firefox";

# Переходимо на Додатково

xdotool mousemove -800 130

# Натискаю на елемент меню "перезавантаження"

xdotool mousemove 900 130;

# Підтверджую, що має намір перезавантажувати пристрій

xdotool mousemove 700 390;

xdotool click 1;

# Очікую 60 секунд поки пристрій перезавантажується

# Чекаємо 30 хвилин, закриваємо поточне вікно і після скрипт запускається заново

# Закриваю Web-інтерфейс управління Yota-пристроєм.

wmctrl -c "Інтерфейс конфігурації пристрою - Mozilla Firefox";

після чого запускаю клієнт remmina і налаштовую підключення по VNC на цей порт, цим я добиваюся що бачу піднятий сеанс в якому почав працювати скрипт / etc / yota. щоб виявити точні координати місця розташування елемента «ПЕРЕЗАВАНТАЖЕННЯ»

поруч відкриваю в ще один Terminal натисканням клавіш Ctrl + Alt + T і виробляю дії по активації посилаються команд у другій термінал на якому у мене запущений vnc сервер: (робиться це так)

а далі використовуючи команду визначаю досвідченим шляхом координати де знаходить ajax функція по ініціалізації перезавантаження

$ Xdotool mousemove 900 130;

далі натискаю на обчислену координату

$ Xdotool click 1

після мені точно таким же чином потрібно з'ясувати координату підтвердження, що я дійсно хочу перезавантажити Yota пристрій.

Як перезавантажити yota модем, реальні замітки ubuntu - windows

У моєму випадком це координати:

$ Xdotool mousemove 700 390;

$ Xdotool click 1

Після натискання програмованим способом на підтвердження від перезавантаження пристрій буде перезавантажений:

Як перезавантажити yota модем, реальні замітки ubuntu - windows

На відміну від діями і як їх адаптувати під свої завдання я показав.

Якщо припустимо Вам по якимось чином не знадобиться більше використовувати vncserver. то вбити сесію 2 можна так:

$ Vncserver -kill: 2

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

Навігація по публікаціям