Как стать автором
Обновить

Управление компьютером посредством DropBox

Время на прочтение 4 мин
Количество просмотров 26K
Здравствуйте, уважаемые Хабравчане. Хочу рассказать Вам как замечательный сервис DropBox помогает мне в доступе к домашнему компьютеру с рабочего. Ситуация сложилась так, что дома я подключен к локальной сети одного из местных провайдеров. Имею статический внутренний адрес и подключаюсь к интернету через VPN. Нахожусь за NAT'ом и белого адреса не имею. Организовать доступ к такому компьютеру извне, как мне кажется, не просто… TeamViewer и т.п софт на работе запрещён. Да и мне не нужен полный «оконный» доступ к домашней машине. Всё что мне было нужно это делать запросы на поиск такого-то файла, копирование его в DropBox, просмотр использования дискового пространства, нагрузки процессора, и т.п. Т.е. в идеале нужен просто shell. И я организовал нечто подобное связкой DropBox и программки logmon. У меня это работает на Windows XP SP2 и Windows 7.

Могу сказать что есть некоторые подобные альтернативы. Это и программка Akira (тоже использует Dropbox), и jabber-боты (Jabber-Shell). Но все они не заработали как надо. Akira имеет ограниченный набор команд доступных пользователю и невыносимо грузит систему, а Jabber-Shell похоже давно забыт разработчиком.

Организована у меня эта система так

Дома при запуске ОС запускается батник, который в свою очередь запускает консольную версию программы logmon с определённым файлом настроек, который заранее был сконфигурирован в программе logmon. А настроен он на то, чтобы непрерывно следить за определённым файлом в каталоге DropBox и при его изменении запускать его (в скрытом режиме). А следит программа за файлом сценариев Windows с расширением .bat. Вот, собственно и вся идея. Я на работе изменяю батник, сохраняю, как только он обновляется дома, моментально выполняется, результат его выполнения записывается в файл и через несколько секунд я вижу результат на работе.

Батник для запуска мониторинга:

cmdow @ /HID
"c:\Program Files\Log Monitor\logmcon.exe" "D:\logmon_auto_copy.mon"

cmdow — програмулька для прятанья окон файлов сценариев.
Используемая версия logmon:
Files and directories monitoring tool
=====================================
Version: 1.4.2
Home page: www.bitrix.ru/logmon/eng
Author: Vadim Dumbravanu, vad@bitrix.ru

Log Monitor is a files and directories monitoring tool. The program
periodically checks selected file's modification time and executes
external program if file's time was changed or not changed. For
directories it handles such events as files change, addition or
removal.

Works under Windows 95/98/Me/NT/2000/XP.

Содержание logmon_auto_copy.mon
; Log Monitor 1.4.2 Config File
; You can edit this file, but be accurate.

;;;
Paused=0
IsDirectory=1
FileName=D:\Dropbox
Comment=
Interval=10
RunOnce=0
ToPaused=0
WorkHours=0
Days=1111111
MonthDays=
ExcludedDates=
IncludedDates=
CacheID=4EB04739
RealTime=1
RealTimeInterval=0
CacheData=0
CheckExistingOnly=0
CacheDirectory=C:\Program Files\Log Monitor\cache
Mask=copy.bat
ExcludeMask=
DirMask=*
ExclDirMask=
FullPathMask=0
DirMonitoring=0
Subdir=0
CountHidden=0
Inverse=0
Conditions=1100
StorePrevInfo=0
ConditionType=0
OlderInterval=3600
IgnoreAdded=1
IgnoreOpened=0
Break=0
;
Action=1
Enabled=1
DelayBefore=0
ActComment=
Command=D:\Dropbox\copy.bat
Params=
Dir=D:\Dropbox
Show=3
Wait=0
MultiArgs=1
MaxFiles=0
TerminateTime=0
EOF



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

Вот пример некоторых задач:
rem Скинуть листинг директории в файл.
rem DIR "d:\2_KINO" /S > "d:\Dropbox\1.txt"
rem Скопировать что-то
rem copy "C:\1.bat" "D:\Dropbox\1.bat"
rem Выполнить поиск на домашнем компьютере и результат скинуть в файл.
rem "d:\PROGS\else\Everything-1.2.1.371\CommandLine\es.exe" *.m4b > "d:\Dropbox\1.txt"
rem Запустить программу
rem "c:\Program Files\Download Master\dmaster.exe" -autorun
rem ===================== WGET Download WAIT 10 secconds =====================
rem ping 1.1.1.1 -n 1 -w 10000 > nul 
rem wget -o d:\Dropbox\log-%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%_%random%.txt -P d:\Dropbox -i d:\Dropbox\download.txt
rem Вызвать окно с сообщением
rem ===================== Message WAIT 10 secconds =====================
rem ping 1.1.1.1 -n 1 -w 10000 > nul
rem msg.vbs
rem ===================== Youtube Download Message WAIT 10 secconds =====================
rem  ping 1.1.1.1 -n 1 -w 10000 > nul
rem perl perl.pl http://www.youtube.com/watch?v=xxxxxxxxxx
rem ping xxx.xxx.xxx.xxx > "d:\Dropbox\1.txt"
rem tasklist  > "d:\Dropbox\1.txt"
rem shutdown -s -f -t 1



Содержание msg.vbs:
x=msgbox("Разогревай! Через полчаса буду!", 4096+0+64, "Сообщение для жены )")



Теперь о плюсах и минусах такого решения.

Плюсы:
  1. Низкая ресурсоёмкость.
  2. Простота.
  3. Доступны все команды командного процессора windows.
  4. Работает на Windows 7.


Минусы:
  1. Не безопасное решение (человек, получивший доступ к Вашему аккаунту DropBox может получить полный контроль над вашим компьютером)
  2. Не высокая скорость исполнения.
  3. Большая вероятность ошибиться в сценарии.
  4. Отсутствие интерактивности (запускаемые строки в батнике лучше заранее проверять на компьютере, что они точно работают)
  5. Поскольку программа LOGMON уже давно не обновляется, могут возникнуть проблемы запуска её на новых ОС windows.
  6. Отсутствие кроссплатформенности.


Вывод


Могу сказать так. Я долго искал альтернативы данному решению, но ни одна из них не покрывала мои и так скромные потребности в полном объёме. Поэтому я пожертвовал в данном случае безопасностью в обмен на простоту и удобство.

Буду рад предложениям по искоренению минусов данной системы либо разумным альтернативам, а также если описанная мною лазейка кому-нибудь пригодится. Спасибо.
Теги:
Хабы:
+43
Комментарии 30
Комментарии Комментарии 30

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн