Перенос профиля Thunderbird на другой диск
Сегодня, разгребая свои текущие задачи, наткнулся на следующую: перенести профиль почтового клиента Thunderbird на диск с Raid1, настроить бэкап для профиля. Ну, что же поехали..
Начнем с вопроса, который должен задавать себе каждый перед тем, как начать что-то делать: зачем это вообще нужно? В моем случае, система, как и папки пользователей, т.е. /home/* по-умолчанию находятся на системном SSD диске. Причина этому историческая, в момент перехода на Linux, другие диски были в рейде от Windows, что требовало дополнительной работы с ними по переносу данных и создания рейда в Linux. В общем, было решено, перенести профиль (а соответсвенно и все данные) почтового клиента с SSD диска на зеркальный. Во-первых, это хоть немного, но разгрузит системный диск, во-вторых зеркало, сохранит данные в случае вылета дисков. Следующий важный момент, снова каcается сохранности данных - это бэкап. Исходя из своего опыта, считаю, что бэкап должен быть всегда всего. Еще лучше, если у вас будет даже бэкап, бэкапов. Пусть лучше он никогда не пригодится, но будет.
Теперь, когда ясно, что и зачем я захотел сделать, давайте разбираться, как это сделать. Начнем с переноса профиля:
- Останавливаем Thunderbird (выходим из программы)
- Создаем папку КУДА будем переносить профиль, в моем случае это:
/store/Software/Thunderbird/ - Далее, открываем папку с данными Thunderbird, по-умолчанию папка находится в папке профиля пользователя (обратите внимание, что настройками файлового менеджера, она может быть скрыта).
Путь такой: /home/username/.thunderbird/ - В этой папке ищем папку которая называется:
/home/username/.thunderbird/something123.default/
перемещаем её в новое расположение, т.е. сюда:
/store/Software/Thunderbird/something123.default/ - Открываем в редакторе файл: /home/username/.thunderbird/profiles.ini , там будет примерно следующее:
1234567[Profile0]Name=defaultIsRelative=1Path=something123.defaultDefault=1
меняем на:
1234567[Profile0]Name=defaultIsRelative=0Path=/store/Software/Thunderbird/something123.defaultDefault=1
Тут мы изменили, параметры isRelative и Path
- Вот и все, профиль перенесен, запускаем Thunderbird, всё должно работать
Следующим шагом, надо настроить бэкап. В данном случае, бэкап - это просто копирование папки профиля, в другое место. Вроде бы все просто, но есть много подводных камней, пойдем по порядку:
- Копирование, согласно "Профили в Thunderbird. Резервное копирование профиля", нужно делать при остановленном Thunderbird. И тут кроется довольно большая проблема: у меня он запущен всегда, т.е. я его стартую после загрузки системы. А система практически не перезагружается, т.к. я использую гибернацию. Т.е. надо что-то такое, что может спросить меня, можно ли остановить thunderbird для бэкапа, сделать бэкап и запустить его сново.
- Следующее, что нам надо, это запускать как-то бэкап скрипт по-расписанию. Сложность в том, что нам не надо делать его часто (например, не каждый день, а по сб), но при этом, если был пропущен день бэкапа, например СБ, нам надо его сделать в ПН
- Нужно следить за кол-вом бэкапов, например, хранить только последние 3и копии, остальное удалять.
Т.к. я немножко программер, я не стал тратить время на поиск готовых решений, решил все написать быстренько сам.
Для написания, нашей чудо-бэкап системы, используем обычный bash скрипт.
Начнем разбираться с конца:
- Следить за кол-вом бэкапов будем следующим образом: сортируем все архивы по метке времени, и удаляем более старые
- Запускать скрипт, будет каждые 4 часа, при этом в случае наличия архива за нужную дату (например, в промежутке от прошлой СБ до сегодня), будем завершать скрипт.
- Самое сложное - запрос на остановку thunderbird. План следующий, устанавливаем zenity (который у меня уже стоял по-умолчанию), в случае запущенного thunderbird просим закрыть его, чтобы сделать бэкап. Если разрешают, делаем бэкап, если нет, завершаем скрипт.
- На последок, показываем Notify messages в случае удач/неудач. Делать это будем с помощью: notify-send, который так же много где уже установлен "из коробки" (например, у меня в Linux Mint)
Теперь магия: пшпшпшпшшшшш. Всё готов, вот он скрипт: открыть последнюю версию на Github
Если вы поменяли уже пути в скрипте на ваши, то осталось добавить данный скрипт в cron, для этого открываем его
1 2 3 |
# crontab -e |
И добавляем следующее, для запуска каждые 4 часа:
1 2 3 |
0 */4 * * * bash /path/to/script/ThunderbirdBackup.sh > /dev/null 2>&1 |
Напомню что бэкап будет делаться по субботам, или сразу как будет запущен, в случае если в субботу не был сделан архив. Всего скорее вам захочется сразу потестить работу скрипта, для этого его можно вызвать так:
1 2 3 |
# bash ThunderbirdBackup.sh force |
Это позволяет проверить работу, кроме того такой запуск (с параметром force) отключает проверку существования архивов в периоде между СБ и СЕЙЧАС. Кроме того, можно задать в кроне запуск каждую минуту (* * * * * command), почистить папку с бэками (удалить все файлы из неё) и через минуту, если все ок, бэкап должен появиться.
В общем, задача выполнена, будут вопросы, пишите в комментариях.
Author: | Tags: /
| Rating:
Leave a Reply