Dreams 07.05.2009 23:25
Есть вопрос! — Удаление файлов по определённым типам при монтировании USB-Flash
Есть задача, попробовать сделать так, чтоб при монтировании USB-Flash автоматически удалялись или копировались в отдельный каталог для исследования файлы по определённому типу.
Например: *.exe,*.inf,*.vbs,*.js и прочие :)
Хотелось бы знать занимался ли кто нибудь таким вопросом и как его реализовать :)
P.S. можно например ещё сделать ограничение по размеру файла :)
На http://habrahabr.ru/ была статья Инкрементный Backup при подключении USB HDD в Ubuntu там запускался скрипт при подключение usb-hdd. :)
тогда закономерный вопрос:
можно ли не указывать SYSFS{idVendor}=="xxxx", SYSFS{idProduct}=="yyyy" ???
ACTION=="add", SUBSYSTEM=="usb_device", SYSFS{idVendor}=="xxxx", SYSFS{idProduct}=="yyyy", RUN+="/path/to/script"
xxxx и yyyy получаем из lsusb
xxxx и yyyy получаем из lsusb
можно ли не указывать SYSFS{idVendor}=="xxxx", SYSFS{idProduct}=="yyyy" ???
Можно их заменить критериями по-лучше (серийник, например).
Но лучше добавить к этим параметрам еще и серийник железки, uuid раздела и т.д.
Но лучше добавить к этим параметрам еще и серийник железки, uuid раздела и т.д.
не, я про другое, убрать их вообще, чтоб не указывать тип флешки и производителя, просто чтоб реагировало на любую подключённую флешку...
Можно =) только по другому строка выглядеть будет
/usr/share/doc/udev
;)
/usr/share/doc/udev
;)
вот здесь есть про это: http://takeworld.blogspot.com/2008/11/viruskiller.html
текст по ссылке не совсем по теме, но там есть внятная инфа по работе с dbus и libnotify. Вот уж до чего руки не добирались, а любопытство подгладывает. Спс. плюсик
Filechanged+fam (gamin). В этой статье есть пример использования, правда для других нужд, но ни что не мешает в скрипт вписать, например
find <mountdir> -name "*.exe" -exec rm {} \;
ИМХО это самый простой вариант, хотя использование find тут не совсем уместно, потому как делается двойная работа, сначало filechanged сканирует ноститель, потом find. Тут ни чего не могу подсказать, ибо не силен в скриптописании.
find <mountdir> -name "*.exe" -exec rm {} \;
ИМХО это самый простой вариант, хотя использование find тут не совсем уместно, потому как делается двойная работа, сначало filechanged сканирует ноститель, потом find. Тут ни чего не могу подсказать, ибо не силен в скриптописании.
нет не боюсь :) ибо по сути не нужны юзерам другие файлы, они работают с текстовыми файлами, таблицами, ну иногда ещё картинки, всё остальное нафик, можно даже дать им бумагу расписаться, где будет сказано, что все файлы таких типов будут удаляться... и всё...
Ну man find же. Он умеет искать по шаблонам, по типу файлов, по времени создания и т.д. И он же умеет совершать различные действия после поиска. Например, удалять.
find /media/* -name *.inf -delete
Это простейший вариант. Скрипт с этой командой ожно запихать в udev, чтобы при монтировании флешки отрабатывал.
find /media/* -name *.inf -delete
Это простейший вариант. Скрипт с этой командой ожно запихать в udev, чтобы при монтировании флешки отрабатывал.
Сложнее прикрутить его к автовыполнению при монтировании. /me, например, не знает даже как pcmanfm монтирует, не то что, как в этот процесс внедрить собственное действие %-)