У многих пользователей работающих за ноутбуком есть скрипт, который позволяет создать копию всех данных на определённый сервер в домашней сети (или локальной сети на работе). Одна из проблем с таким скриптом заключается в том что его надо запускать вручную. Можно конечно запускать его по cron'у, но нет гарантии что в момент запуска пользователь будет дома/в офисе, а не в командировке или во сне:)
Задачу можно решить организовав автоматический запуск скрипта при подключении к домашней WiFi-сети. Если в качестве менеджера сети используется wicd то проблем не возникнет, так как в нём есть простая возможность настроить выполнение скриптов при подключении. В случае с NetworkManager'ом всё несколько сложнее, но тоже решаемо. Именно этот случай мы и рассмотрим дальше.
Уточним начальные условия:
- ноутбук под управлением kubuntu 12.10;
- за ноутбуком работает единственный пользователь с логином "moose";
- скрипт создания резервной копии "/home/moose/scripts/backups_note.sh";
- домашней является WiFi-сеть с SSID "home of moose", сохранённая в NetworkManager как соединение с именем "home-of-moose";
Немного теории: NetworkManager конечно не позволяет запускать скрипты при подключении так удобно как это делает wicd, он всё-таки запускает скрипты из директорий "/etc/network/if-up.d" и "/etc/network/if-post-down.d", совместимым с ifup и ifdown способом.
Таким образом задачу можно решить написанием дополнительного скрипта "/etc/network/if-up.d/99_backup_user_data.sh". Сразу приведём его листинг с комментариями:
#!/bin/sh # Скрипт работает только для NetworkManager if [ "${METHOD}" != "NetworkManager" ]; then exit fi # Имя соединения должно быть написано именно так, как задано в настройках! # Если имя не совпадает значит ничего делать не надо if [ "${CONNECTION_ID}" != "home-of-moose" ]; then exit fi # Если выполнены все необходимые условия то делаем бэкап # ВАЖНО! Поскольку этот скрипт запускается с правами суперпользователя, # Обязательно нужно выполнять пользовательский скрипт с ограниченными правами. # Таким образом ошибка в скрипте не порушит всю систему. su -c '/home/moose/scripts/backups_note.sh' moose
Теперь при подключении к домашней сети автоматически будет запускаться скрипт создания резервной копии. Рекомендуется на всякий случать дополнить скрипт логированием и периодически просматривать логи.
На этом всё. Приятной работы!
Ladm 2012-12-23 23:42:04 (#)