4

Моя медиатека небольшая, но не маленькая (~ 50 ГБ). Каждый месяц или около того я просто вручную копирую ~/Music , ~/Pictures и ~/Videos в мой EHD и удаляю старую резервную копию. Но это далеко от идеала. Во-первых, он довольно медленный (всего около 50 ГБ). Он также не имеет версий, поэтому, если я захочу вернуться к нескольким версиям, мне не повезет.

Есть ли простой, стабильный, инкрементальный способ сделать это? Я открыт для использования традиционных систем контроля версий, таких как Git, хотя раньше я их не использовал ни для чего, кроме кода. Командная строка в порядке (особенно если это сценарий). Мне нужно только сделать резервную копию этих 3 папок - все, что не является носителем, хранится в моем Dropbox. Есть идеи?

Изменить: Вот сценарий, который я в конечном итоге использовал (спасибо Мистиры):

#!/bin/sh

rsync --delete --size-only -ravv /home/matthew/Music "/media/My Passport/backup/Music"
rsync --delete --size-only -ravv /home/matthew/Pictures "/media/My Passport/backup/Pictures"
rsync --delete --size-only -ravv /home/matthew/Videos "/media/My Passport/backup/Videos"

Я обнаружил - --progress не был особенно полезен, так как моя музыка организована по альбомам, и каждый альбом составляет всего около 100 МБ. Если можно показать прогресс для всей операции rsync , это было бы гораздо полезнее.

Я использовал --delete чтобы, если я очищаю свою библиотеку локально, она также очищала резервную копию.

vv просто переводит его в подробный режим, потому что я новичок в rsync , и я хочу знать, если что-то пойдет не так.

1 ответ1

6

Используйте программу rsync , которая работает как инкрементное резервное копирование и не создает резервные копии файлов, которые не были изменены.

Вот несколько разных опций (очевидно, измените целевой каталог. Я использую /mnt /usb в моих примерах):

rsync -ra ~/Music /mnt/usb

Это будет г ecursively rchive синхронизации файлов, то есть он будет копировать все , включая каталоги , и сохранит права собственности, временные метки и т.д.

rsync -r --size-only ~/Music /mnt/usb

Это будет г ecursively синхронизировать файлы, используя только размеры файлов для сравнения файлов (требуется меньше мощности процессора, так быстрее).

rsync -raz --progress --size-only ~/Music /mnt/usb

Это будет г ecursively rchive с ompress синхронизации ваших файлов (г означает компресс), используя только размеры файлов для сравнения файлов и сжимать их до синхронизации. Это требует больше процессора, поэтому медленнее.

(Примечание: -ra - это то же самое, что и -a . Здесь -r включен только для ясности.)

Поскольку это то, что вы делаете регулярно, вы можете добавить что-то вроде этого в ваш crontab (запустите crontab -e чтобы изменить ваш crontab):

* 21 1 * * /usr/bin/rsync -r --size-only ~/Music /mnt/usb
* 22 1 * * /usr/bin/rsync -r --size-only ~/Pictures /mnt/usb
* 23 1 * * /usr/bin/rsync -r --size-only ~/Videos /mnt/usb

В приведенном выше примере в 9:00 вечера 1-го числа каждого месяца ваш каталог ~/Music будет синхронизироваться с /mnt/usb . В 22:00 ~/Pictures и в 23:00 ~/Videos .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .