Запуск процесса (скрипта) по монтированию тома NTFS

Обсуждение программ nnCron и nnCron LITE

Запуск процесса (скрипта) по монтированию тома NTFS

Postby kengaru » Fri, 31 Aug 2012, 08:08

Hi, All!

Можно ли штатными или сторонними средствами организовать запуск процесса (скрипта) под Windows (XP, 7) при монтировании тома NTFS? Хочу автоматом бэкапить содержимое тома NTFS флешки (или тома NTFS мобильного HDD или другого сменного носителя) и содержимое truecrypt NTFS тома, живущего на этом сменном носителе.

То есть стоят задачи:
а) запустить процесс при монтировании файловой системы
б) опознать volume, как подлежащий бэкапу
в) слить бэкап оттуда при помощи nnbackup

Чем это можно сделать?

autorun.inf не подходит, ибо автозапуск отключен.

Смотрел шедулер (запуск задачи по событию в Event Log), не нашел в Event Log события, соответствующего монтированию тома, ну и остается вопрос передачи в запускаемый процесс данных смонтированного тома, чтобы можно было определить, подлежит том бэкапу или нет.
kengaru
 
Posts: 6
Joined: Fri, 31 Aug 2012, 07:53

Re: Запуск процесса (скрипта) по монтированию тома NTFS

Postby Morituruz » Fri, 31 Aug 2012, 12:58

http://www.nncron.ru/help/RU/commands/w ... riveInsert
На флешку положить файлик "backup_me"
В теле задачи проверять наличие файлика на подключенном диске:
DRIVE-LETTER S" :\backup_me" S+ EXIST?
и запускать, что надо.
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51


Re: Запуск процесса (скрипта) по монтированию тома NTFS

Postby kengaru » Mon, 03 Sep 2012, 09:13

Не то. Решение какое то кривоватое и колхозное. В общем случае, флешка или другой removable накопитель может быть смонтирован на какую угодно букву диска и от буквы диска зависеть бы не хотелось. Мониторить все буквы дисков тоже бы не хотелось.

Есть ли в винде всё таки штатный механизм, который бы позволял именно по событию монтирования тома NTFS выполнять какие либо действия?
kengaru
 
Posts: 6
Joined: Fri, 31 Aug 2012, 07:53

Re: Запуск процесса (скрипта) по монтированию тома NTFS

Postby VoidVolker » Mon, 03 Sep 2012, 21:36

kengaru wrote:Не то. Решение какое то кривоватое и колхозное.

В чем его кривоватость и колхозность?
kengaru wrote: В общем случае, флешка или другой removable накопитель может быть смонтирован на какую угодно букву диска и от буквы диска зависеть бы не хотелось. Мониторить все буквы дисков тоже бы не хотелось.

Code: Select all
...
WatchDrive: "*"
...

Сработает при подключении любого съемного носителя.
kengaru wrote:Есть ли в винде всё таки штатный механизм, который бы позволял именно по событию монтирования тома NTFS выполнять какие либо действия?

Да, есть: файл autorun.inf на съемном носителе.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Запуск процесса (скрипта) по монтированию тома NTFS

Postby elos » Thu, 06 Sep 2012, 16:41

http://www.uwe-sieber.de/usbdlm_e.html

У него целый скриптовый язык для ini-файла. Скачай и прочитай help. Может реагировать на целую кучу факторов типа Device ID или Device Type, Existence of a File or a Folder, Drive Size... Работает с TrueCrypt.

In analogy to the AutoRun function, USBDLM can execute a commandline on system events.

USBDLM can show a balloon tip with information about the assigned mountpoints of newly attached drives.

Similar to autorun events you can define actions on left, right and middle click on the balloon.
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: Запуск процесса (скрипта) по монтированию тома NTFS

Postby kengaru » Mon, 17 Sep 2012, 08:55

VoidVolker wrote:
kengaru wrote:Не то. Решение какое то кривоватое и колхозное.

В чем его кривоватость и колхозность?


Может быть я резковато высказался, но всё же:

1. В том что в таком событии отсутствует информация для принятия решения. Такой информацией является в общем случае Volume ID, дополнительно - Volume Label, при срабатывании WatchDrive в переменных есть только буква диска. Это выносит логику обработки в скрипт, который механизмами CMD.EXE реализуется через известное место. Если бы было отдельное событие, либо устанавливались соответствующие переменные событием WatchDrive (Volume ID и Volume Label), тогда всё стало бы ОК.

2. Том NTFS может монтироваться не на букву диска, а на директорию. В этом случае неотслеживаемо вовсе.

kengaru wrote: В общем случае, флешка или другой removable накопитель может быть смонтирован на какую угодно букву диска и от буквы диска зависеть бы не хотелось. Мониторить все буквы дисков тоже бы не хотелось.

Code: Select all
...
WatchDrive: "*"
...

Сработает при подключении любого съемного носителя.
kengaru wrote:Есть ли в винде всё таки штатный механизм, который бы позволял именно по событию монтирования тома NTFS выполнять какие либо действия?

Да, есть: файл autorun.inf на съемном носителе.[/quote]

Отключен и включен не будет. О чем собственно уже писал.
kengaru
 
Posts: 6
Joined: Fri, 31 Aug 2012, 07:53

Re: Запуск процесса (скрипта) по монтированию тома NTFS

Postby kengaru » Mon, 17 Sep 2012, 10:57

elos wrote:http://www.uwe-sieber.de/usbdlm_e.html

У него целый скриптовый язык для ini-файла. Скачай и прочитай help. Может реагировать на целую кучу факторов типа Device ID или Device Type, Existence of a File or a Folder, Drive Size... Работает с TrueCrypt.



Спасибо, посмотрю. Но всё же, хотелось бы механизм в nncron, как в уже установленном инструменте :)
kengaru
 
Posts: 6
Joined: Fri, 31 Aug 2012, 07:53

Re: Запуск процесса (скрипта) по монтированию тома NTFS

Postby AlikasS » Tue, 18 Sep 2012, 04:34

когда Том NTFS монтируется не на букву диска, а на директорию,
необходимо опрашивать директорию
см. HELP
Code: Select all
FILE-EXIST: "file_pattern"



когда Том NTFS монтируется на букву диска
можно привязаться
1. к какому-нибудь конкретному файлу-флагу на нем, например backup_me
через
Code: Select all
WatchDrive: "*"
Action:
DRIVE-LETTER S" :\backup_me" S+ EXIST?
IF \ диск этот работаем
ELSE
\ выходим
THEN

2. к номеру id диска,
в случае id диска (2), надо его узнать, подключив диск
и набрав в консоли крона
Code: Select all
CHAR C GetVolID .

где вместо С , буква на которую подключился диск (должен быть подключен плагин system.spf)
далее можно добавить в крон-таб следующий код
Code: Select all
<%
-696545252 CONSTANT S-FLASH \ номер id флешки нужно вставить свой вместо -696545252
CREATE S-FLASH-NAME 2 ALLOT S" " S-FLASH-NAME PLACE
%>
#( CLASSIC-TASK-#-watchdrivein
WatchDrive: "*"
Action:
 DRIVE-LETTER DROP C@  GetVolID S-FLASH =
IF
DRIVE-LETTER S-FLASH-NAME PLACE
\ тестовое сообщение
\ TMSG: "флеха опознана, буква диска %S-FLASH-NAME COUNT%" 5
ELSE
\ тестовое сообщение
\ TMSG: "неопознаная  флеха на букве %DRIVE-LETTER%" 5
\ флеха чужая, выходим
EXIT
THEN

\ далее используешь S-FLASH-NAME COUNT или DRIVE-LETTER
\ для извлечения буквы диска для работы
\ например


\ 1
FILESONLY
FOR-FILES: "%S-FLASH-NAME COUNT%:\форт\overload\*.tab" \ обновляем табы
   FILE-WTIME: "%FOUND-FULLPATH%" FILE-WTIME: "%ModuleDirName%\%FOUND-RELPATH%" FTIME- 0 >
   IF
   FOUND-FULLPATH S" %ModuleDirName%\%FOUND-RELPATH%" EVAL-SUBST FCOPY
GetLastError
IF
BALLOON: "_" "файл %FOUND-RELPATH% error %GetLastError%"
ELSE
BALLOON: "_" "обновлен файл %FOUND-RELPATH%"
THEN
   THEN
;FOR-FILES


\ или 2
Title: "обновление" ShowMinimized
START-APPW: "C:\Program Files\nnbackup\nnbackup.exe" sync -i "%S-FLASH-NAME COUNT%:\файлы для обновления\" -o "C:\обновления с флешки\" -c -ci -ad -da -s -e -v -t2

)#

P.S. еще есть вариант опознавания флехи когда комп включается уже с ней воткнутой
или выходит из спящего режима.
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Запуск процесса (скрипта) по монтированию тома NTFS

Postby dimapplk » Tue, 18 Sep 2012, 16:10

У меня так бэкапит флэшки:
Code: Select all
#( CLASSIC-TASK-#-fleshka_backup
WatchDrive: "*"
CREATE VolName 20 ALLOT
Action:
DRIVE-LETTER DROP C@ GET-VOL-NAME  VolName PLACE

VolName COUNT S" FLASH"  COMPARE 0=
VolName COUNT S" DIMAFLASH"  COMPARE 0= OR
VolName COUNT S" MY_FLASH"  COMPARE 0= OR

IF
      SWHide StartIn: "C:\Users\Dima\Program\nnCron\nnBackup"
      START-APPW: %comspec% /c nnBackup.exe sync -i "%DRIVE-LETTER%:\" -o "C:\USERS\HDD_BackUp\Back_UP\%VolName COUNT%" -c -dx DISTR -ad -da -s -v -x *.avi,*.mp3,*.ogg,*.flac,*.mpg,*.wma,*.wmv
THEN
)#

бэкапит каждую флышку с вою папку. в качестве имени папки использует метку тома флэшки
dimapplk
 
Posts: 29
Joined: Tue, 24 Jul 2007, 17:52


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 4 guests