Main > Linux > Перенос профиля Thunderbird на другой диск

Перенос профиля Thunderbird на другой диск

05.11.2015 0 comments » Views: 7,685

Thunderbird

Сегодня, разгребая свои текущие задачи, наткнулся на следующую: перенести профиль почтового клиента Thunderbird на диск с Raid1, настроить бэкап для профиля. Ну, что же поехали..

Начнем с вопроса, который должен задавать себе каждый перед тем, как начать что-то делать: зачем это вообще нужно? В моем случае, система, как и папки пользователей, т.е. /home/* по-умолчанию находятся на системном SSD диске. Причина этому историческая, в момент перехода на Linux, другие диски были в рейде от Windows, что требовало дополнительной работы с ними по переносу данных и создания рейда в Linux. В общем, было решено, перенести профиль (а соответсвенно и все данные) почтового клиента с SSD диска на зеркальный. Во-первых, это хоть немного, но разгрузит системный диск, во-вторых зеркало, сохранит данные в случае вылета дисков. Следующий важный момент, снова каcается сохранности данных - это бэкап. Исходя из своего опыта, считаю, что бэкап должен быть всегда всего. Еще лучше, если у вас будет даже бэкап, бэкапов. Пусть лучше он никогда не пригодится, но будет.

Теперь, когда ясно, что и зачем я захотел сделать, давайте разбираться, как это сделать. Начнем с переноса профиля:

  1. Останавливаем Thunderbird (выходим из программы)
  2. Создаем папку КУДА будем переносить профиль, в моем случае это:
    /store/Software/Thunderbird/
  3. Далее, открываем папку с данными Thunderbird, по-умолчанию папка находится в папке профиля пользователя (обратите внимание, что настройками файлового менеджера, она может быть скрыта).
    Путь такой: /home/username/.thunderbird/
  4. В этой папке ищем папку которая называется:
    /home/username/.thunderbird/something123.default/
    перемещаем её в новое расположение, т.е. сюда:
    /store/Software/Thunderbird/something123.default/
  5. Открываем в редакторе файл: /home/username/.thunderbird/profiles.ini , там будет примерно следующее:

    меняем на:

    Тут мы изменили, параметры isRelative и Path
  6. Вот и все, профиль перенесен, запускаем Thunderbird, всё должно работать

 

Следующим шагом, надо настроить бэкап. В данном случае, бэкап - это просто копирование папки профиля, в другое место. Вроде бы все просто, но есть много подводных камней, пойдем по порядку:

  1. Копирование, согласно "Профили в Thunderbird. Резервное копирование профиля", нужно делать при остановленном Thunderbird. И тут кроется довольно большая проблема: у меня он запущен всегда, т.е. я его стартую после загрузки системы. А система практически не перезагружается, т.к. я использую гибернацию. Т.е. надо что-то такое, что может спросить меня, можно ли остановить thunderbird для бэкапа, сделать бэкап и запустить его сново.
  2. Следующее, что нам надо, это запускать как-то бэкап скрипт по-расписанию. Сложность в том, что нам не надо делать его часто (например, не каждый день, а по сб), но при этом, если был пропущен день бэкапа, например СБ, нам надо его сделать в ПН
  3. Нужно следить за кол-вом бэкапов, например, хранить только последние 3и копии, остальное удалять.

Т.к. я немножко программер, я не стал тратить время на поиск готовых решений, решил все написать быстренько сам.

Для написания, нашей чудо-бэкап системы, используем обычный bash скрипт.

Начнем разбираться с конца:

  1. Следить за кол-вом бэкапов будем следующим образом: сортируем все архивы по метке времени, и удаляем более старые
  2. Запускать скрипт, будет каждые 4 часа, при этом в случае наличия архива за нужную дату (например, в промежутке от прошлой СБ до сегодня), будем завершать скрипт.
  3. Самое сложное - запрос на остановку thunderbird. План следующий, устанавливаем zenity (который у меня уже стоял по-умолчанию), в случае запущенного thunderbird просим закрыть его, чтобы сделать бэкап. Если разрешают, делаем бэкап, если нет, завершаем скрипт.
  4. На последок, показываем Notify messages в случае удач/неудач. Делать это будем с помощью: notify-send, который так же много где уже установлен "из коробки" (например, у меня в Linux Mint)

Теперь магия: пшпшпшпшшшшш. Всё готов, вот он скрипт: открыть последнюю версию на Github

Если вы поменяли уже пути в скрипте на ваши, то осталось добавить данный скрипт в cron, для этого открываем его

И добавляем следующее, для запуска каждые 4 часа:

Напомню что бэкап будет делаться по субботам, или сразу как будет запущен, в случае если в субботу не был сделан архив. Всего скорее вам захочется сразу потестить работу скрипта, для этого его можно вызвать так:

Это позволяет проверить работу, кроме того такой запуск (с параметром force) отключает проверку существования архивов в периоде между СБ и СЕЙЧАС. Кроме того, можно задать в кроне запуск каждую минуту (* * * * * command), почистить папку с бэками (удалить все файлы из неё) и через минуту, если все ок, бэкап должен появиться.

В общем, задача выполнена, будут вопросы, пишите в комментариях.

Author: | Rating: 4/5 | Tags: , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>