Синхронизируй свою музыку

Full Circle Magazine, “BACKUP & SYNC YOUR MUSIC”, public translation into Russian from English More about this translation.

Translate into another language.

Как и у многих из вас, у меня есть цифровая музыкальная коллекция в mp3 файлах. Она появилась, когда я начал оцифровывать CD-диски. Сейчас же, в основном, я покупаю музыку в интернет. С тех пор, как я стал тратить на неё достаточно большие суммы, мне всё больше не хочется её потерять. На сегодня моя коллекция имеет размер примерно 25Гб. В этой статье описывается моя стратегия по сохранению и управлению моей музыкальной коллекцией.

Я храню свою музыку на настольном компьютере с Linux, с запущенной Samba и NFS, что позволяет прослушивать её как на компьютере с Windows, так и с Linux и Unix, которые имеются у меня дома. В основном я работаю за ноутбуком с установленной Ubuntu 8.04. Когда я нахожусь дома, я получаю доступ к музыкальному серверу по NFS и слушаю мою коллекцию через Rhythmbox. Но иногда мне приходится путешествовать, и мне очень важно иметь доступ к моей музыке. Поэтому, я приобрёл недорогой, переносной жёсткий USB диск 160Гб ($99 US), который позволил мне резервировать мою коллекцию, и подарил возможность прослушивать музыку, когда я нахожусь вне дома.

Есть множество способов создания резервных копий файлов. Множество статей уже опубликовано, а многие другие ещё будут опубликованы. Я не обещаю, что мой способ самый лучший. Но как бы то ни было, он отвечает моим требованиям и может быть угодит и вашим.

Как я уже говорил, я часто пополняю свою коллекцию, а иногда и удаляю из неё некоторые композиции. И мне не нужна такая схема резервного копирования, которая просто копирует новые файлы в некоторую резервную папку. Если я удаляю композицию, я хочу чтобы она исчезла и из резервной папки. Мне нужен простой механизм, который будет чётко управлять и поддерживать точную копию моей коллекции (удаляя некоторые композиции и добавляя новые). Мне также не хочется, чтобы это занимало длительное время (помните, у меня 25Гб музыки). Решением, которое выбрал я, стала программа rdiff-backup. Само приложение и документация на него расположены на домашней странице http://www.nongnu.org/rdiff-backup/. Менеджер пакетов Synaptic делает установку rdiff-backup очень простой. Просто сделайте поиск по rdiff-backup и установите его (заметка: также требуется установка Python).

Наилучшее описание программы rdiff-backup даёт сам автор:

«rdiff-backup дублирует одну директорию в другую, возможно даже по сети. Целевая директория является копией директории источника, но также дополнительные обратные изменения сохраняются в специальных поддиректориях, поэтому вы всегда сможете восстановить давно утерянные файлы. Идея заключается в том, чтобы комбинировать все достоинства зеркального и инкрементального резервного копирования. rdiff-backup также сохраняет поддиректории, жёсткие ссылки, dev файлы, права доступа, uid/gid права, время модификации, расширенные аттрибуты, списки доступа и ответвления ресурсов. Также, rdiff-backup, может управлять пропускной способностью канала на манер rsync. Поэтому, вы можете использовать rdiff-backup совместно с ssh, чтобы безопасно создавать резервную копию жёсткого диска на удалённой машине, при этом будут переданы только различия в файлах. И, наконец, rdiff-backup лёгок в использовании и имеет удобные настройки по умолчанию.

»

Чтобы автоматизировать запуск rdiff-backup, я создал скрипт (Рис.1).

Строка №2 определяет выходной файл для хранения истории ежедневного запуска этого скрипта. Без этого, будет трудно разобраться, если возникнут проблемы. Следующие несколько строк просто отмечают временную отметку.

В строках 5-10 скрипт подтверждает, что переносной USB диск присоединен. Если же он не присоединен, то нет причин продолжать выполнение скрипта дальше. В зависимости от специфики вашего жёсткого диска, в строке №6, возможно, необходимы изменения. Чтобы определить какую строку вам использовать для вашего диска, подсоедините диск и запустите окно терминала (Приложения → Системные → Терминал). Введите команду “df” и вы должны увидеть что-то похожее на Рис.2.

Заметка о последней строке. Она касается моего переносного диска. У вас, возможно, будет стоять другие значения после строки “/media/”. Строка №6 ищет в выводе команды “df” значение параметра “PASSPORT”. Если такое значение не найдено, скрипт завершается. Измените эту строку под свои параметры.

Следующая часть скрипта определяет доступность источника с музыкой. Мой музыкальный сервер является Linux системой и называется 'fedora'. Если директория fedora/music не присоединена, скрипт присоединит её запустив другой скрипт mount-music (строка 16). В этом скрипте всего лишь одна строчка:

mount -o ro fedora:

/joe0/music /music

Если

ваша музыкальная коллекция находится на вашей локальной системе Ubuntu, то вы просто можете закоментировать строки 11-22.

Вам потребуется изменить строку 23, строку запускающую rdiff-backup, для определения местонахождения вашей музыкальной коллекции. Параметры, которые я указал (в порядке их появления):

--print-statistics

Это означает, что будет показана различная статистика.

/music

Директория где хранится музыка.

/media/WD\ PASSPORT/music

Эта директория определяет, где будет храниться резервная копия коллекции.

Есть множество других параметров rdiff-backup. Введите:

man rdiff-backup

чтобы узнать какие ещё команды доступны. Так же вы можете посетить сайт с подробной документацией.

Существует две вещи о которых, как мне кажется, я должен упомянуть. Первая - это особенность о которой я ничего не знал, пока не обнаружил её в FAQ. Когда я заглянул на мой диск с резервными копиями, я испытал некоторое беспокойство. Вот приблизительный вид структуры директории который я увидел:

Обратите внимание, что каждый исполнитель и альбом (пятый исполнитель Alison Krauss и его альбом “Now That I've Found You”) имеет забавные символы, вместо буквы в верхнем регистре. В частности, символ “;065” находится на месте буквы “A”. В FAQ это объясняется так:

Когда производится резервное копирование с регистро-зависимой файловой системы на регистро-независимую (такую как Mac's HFS+ или Windows's FAT32 или NTFS), rdiff-backup удаляет символы в верхнем регистре, чтобы избежать случая перезаписи уже имеющихся файлов. Если файловая система является регистро-сохраняющей, но не регистро-независимой - это означает, что файл с именем "Foo" равнозначен именам "Foo", "foo", "foO", "fOo" и т.д. Файловые системы, такие как ext3 в Linux, всё же, воспринимают такие файлы, как разные копии файла.

Мой переносной диск отформатирован под файловую систему FAT32 (я хочу чтобы он также был читаемым под Windows системами). На самом деле эта проблема не существенна. Т.к. все mp3-проигрыватели, например Rhythmbox, используют метаданные mp3 файла, чтобы определить имя исполнителя и альбома; они не используют физические имена файлов ни в каких целях.

Вторая вещь, о которой я должен сказать, возникала всего пару раз за прошедший год или два. Что-то начинает «засоряться», после чего rdiff-backup перестаёт работать. При этом сообщается об ошибке. Опять же, в FAQ описано, каким образом можно обойти эту ошибку и перезагрузить процесс резервного копирования. Тут нет ничего серьёзного; нужная информация — это музыка — с ней всё в порядке, но вот файлы поддержки rdiff-backup, в которых записывается, что и когда было скопировано, вот они то и «засоряются».

Я автоматически запускаю скрипт синхронизации моей музыки в одно и тоже время каждый день. Это делается при помощи cron. Мой Crontab выглядит так:

15 9 * * *

/home/jberry/util/run-rdiff-backup.sh

Это означает: запустить выполнение rdiff-backup.sh каждый день в 9:15 утра. По случаю, я проверил журнал (см. строку # 2 в вышеприведенном скрипте), чтобы убедиться, что все работает правильно. В качестве домашнего задания, вы можете улучшить скрипт для отправки по электронной почте уведомлений об имеющихся проблемах с созданием резервной копии.

Original (English): BACKUP & SYNC YOUR MUSIC

Translation: © ck80, slavic, mifistor, kittenal, Руслан Гроховецкий, Ануфриев Дмитрий, cthat .

License: Creative Commons Attribution-Share Alike 3.0 Unported License

translated.by crowd

Like this translation? Share it or bookmark!