Shtsh 07.03.2011 14:30
Скрипты — Делаем бэкап при вставке флешки
Есть такая замечательная аркадная игра — In The Groove. И эта самая игра сохраняет результаты на флешку. И очень захотелось делать бэкап папок с информацией. Под катом как я это реализовал.Что делает скрипт?
При вставке флешки с определённой меткой (тут shtsh_itg) архивируем папки "In The Groove 2" и "In The Groove 3", помещаем в определённую папку (/home/shtsh/backup/itg) и копируем по ssh на сервер.
Примечание. Для корректной работы требуется монтирование флешки через udev (или как угодно, но флешка должна монтироваться в /media/label). Вот как монтируются флешки (файл /etc/udev/rules.d/10-usb-storage.rules)
Тут у нас монтируются диски автоматом в /mnt/sdXY, где sdXY — имя диска, создаётся симлинк на неё в /media/label, где label — метка диска. Когда флешку вынимают, папки удаляются.
Далее, создадим правило для бэкапа при вставке флешки с меткой shtsh_itg (файл /etc/udev/rules.d/80-backup.rules)
1 |
|
Для удобства при вставке нужной флешки просто запускается скрипт /usr/local/bin/itg-backup.sh
Вот этот самый файл.
1 |
#!/bin/sh
|
Вот файл /home/shtsh/backup/itg/filelist
In The Groove 2
In The Groove 3
In The Groove 3
Возможные вопросы:
Почему выбран tgz? — Быстро. На нетбуке с атомом он отрабатывает в разы быстрее, чем bzip2
Почему подключаемся под root? — UDEV работает из-под root, поэтому владельцем файла ключа должен быть root (владельцем файла должен быть root:root, права 600)
Теперь делаем
1 |
|
И радуемся!
udevadm control restart
это уже не нужно, в последних версиях udev (уже достаточно давно) новые правила сразу же вступают в действие.
В кедах бех hal флешки монтируются в каталог типа /media/6636-6465
Не очень понятно что это за цифры, но они уникальны для флешки (при подключении к разным портам и концентраторам сохраняются).
В принципе, реально отслеживать появление таких папок в медиа и запускать скриптик?
Не очень понятно что это за цифры, но они уникальны для флешки (при подключении к разным портам и концентраторам сохраняются).
В принципе, реально отслеживать появление таких папок в медиа и запускать скриптик?
Во-первых, здесь используется udev.
Во-вторых, да, возможно с помощью (i|d)notify (в реализации в виде скрипта подойдёт inotify-tools)
Во-вторых, да, возможно с помощью (i|d)notify (в реализации в виде скрипта подойдёт inotify-tools)
@Во-первых, здесь используется udev.@
Я знаю, но не создавать же тему для простого вопроса. Да и юдев там тоже используется, только по верх него накручены фреймворки всякие, не?
Сабжевый метод игнорирует функции DE по авто и ручному монтированию, т е не всегда удобен.
Я знаю, но не создавать же тему для простого вопроса. Да и юдев там тоже используется, только по верх него накручены фреймворки всякие, не?
Сабжевый метод игнорирует функции DE по авто и ручному монтированию, т е не всегда удобен.
Не ожидал. Могу и удалить.