Как часто встает вопрос о какой либо автоматизации на компьютере с ОС windows. По моему опыту - часто, и порой задачи встают куда сложнее, чем располагают на то штатные средства.
Я хочу предложить решение, используемое мной.
Предистория - есть компьютер, подключенный к сложной дорогой железке через особый интерфейс и хитрые драйвера. Естественно, драйвера только под форточки. Задача - получать с этой железки файлик, переименовывать, упаковывать и перекладывать по сетке чертзнаеткуда. При этом безотказно, с логами и оповещениями всех и вся что все сломалось.
В случае с линуксом все делается в десять сточек в командном файлике. Но линукса нет. Зато есть отличная вещь - cygwin. Линукс оболочка на виндовой машине.
Установка на удивление простая - скачиваю setup.exe, запускаю. Отвечаю на глупые вопросы куда хочу устаановить программу и куда складывать временное файло, с каких зеркал качать... и оп - вываливается огромная менюшка "что господин ставить изволит" - в которой есть почти полный репозиторий линуксовых утилит, редакторов и тп. Даже здоровый кусок КДЕ с графическими приложениями.
Мне понадобился обычный набор консольных утилит типа cp и ftp (он идет по умолчанию) и open-ssh демон для удаленки.
В дополнение понадобилась программка nncron - запуск по расписанию. Конечно можно использовать задачи самих форточек, или установить крон вместе с cygwin-ом но расписание малость необычное и разбираться было неохота когда есть готовый привычный инструмент, а нн-крон уже использовался много где в организации.
замечу что nncron - штука плантая. платить просят за красивый графический интерфейс
Все установилось весьма шутстро. После установки, при первом запуске попросило создать пользователей и группы - для этого там же есть утилиты, берущие винформацию о локальных и (по желанию) доменных пользователях.
Для настройки ssh надо сделать чуть больше телодвижений:
ssh-host-config -y
Это создает все необходимые файлики конфигурации.
когда появится запрос "CYGWIN=" надо ввести:
tty ntsec
И наконец запустить сервис:
cygrunsrv -S sshd
Потом пришлось проверить файл настроек - по умолчанию отключена авторизация по публичному ключу, а мне она была нужна. Что это как ни будь в следующий раз.
Все. в папке C:/cygwin/ лежит готовое и работающеефайловое дерево linux, возможно подключение по ssh, пользователи по ~ попадают сразу в свой windows профиль. В папке /cygdrive/ смонтированы диски windows.
А дальше сама автоматизация. Написать bash скрипт который забирает файлики с фтп, ставит в них дату, зипует и проверяет дело привычное. На удивление прямо из bash оболочки работают и команды консоли windows - net use пришлась очень кстати.
Единственное что к скрипту понадобился коротенький bat файлик его запускающий:
@ECHO OFF
SET MAKE_MODE=UNIX
SET PATH=c:\cygwin\bin;%PATH%
bash d:/TARIFICATION/upload.sh
хотя и это можно обойти прописав переменные окружения в системе.
Система работает уже год. Единственные сбои которые в ней были - связаны с проприетарным по обслуживающее внешнюю железяку. Для этого тот же скрипт научили убивать и перезапускать нужный процесс если он не откликается, и все заработало как часы.

0 коммент.:
Отправить комментарий