Как использовать rsync для резервного копирования моего Mac на NAS?

11791
swilliams

Мне нужно сделать резервную копию нескольких каталогов на моем NAS (он в основном отображается как сетевой ресурс в Finder). Я не хочу делать его загрузочным, просто нужно сделать резервную копию нескольких каталогов. Я также хотел бы, чтобы это бежало ночью. Я пытался просмотреть документацию по rsync, но пока не смог выяснить.

Я также взглянул на rsyncx, но не могу его установить. Также не заботитесь о поддержке Time Machine, просто нужно сделать резервную копию.

5

4 ответа на вопрос

4
John Fouhy

На вашем NAS настроена служба rsync? Некоторые поддерживают это (например, ReadyNAS). Если это так, вы можете сделать что-то вроде этого:

#!/bin/sh  DEST=xx.xx.xx.xx::backup/swilliams/ RSYNC_OPTS='-vaC --exclude ".DS_Store"'  /usr/bin/rsync $RSYNC_OPTS --exclude "build/" --exclude "dist/" --exclude "*.pyc" ~/code $DEST /usr/bin/rsync $RSYNC_OPTS ~/Music $DEST /usr/bin/rsync $RSYNC_OPTS ~/Pictures $DEST /usr/bin/rsync $RSYNC_OPTS --exclude "Virtual Machines*" ~/Documents $DEST 

Вам нужно будет изменить DEST на IP-адрес вашего NAS, а также изменить пути и прочее в соответствии с вашими потребностями.

Если вы сохраните это как, скажем, ~/bin/backup.sh(и обязательно сделаете chmod a+x ~/bin/backup.sh), тогда вы можете запустить его почти, используя cron. Запустите crontab -eи добавьте эту строку:

0 0 * * * $HOME/bin/backup.sh > $HOME/logs/backup.log 2>&1 

( 0 0 * * *означает: запускать в полночь каждый день, каждый месяц. Первый столбец - минуты, то есть 3 часа утра 0 3 * * *. Это будет записывать журналы, ~/logsпоэтому убедитесь, что каталог существует, или поместите их в другое место)

Если ваш NAS не поддерживает rsync как сервис, я думаю, он должен работать, если вы измените начало на следующее:

#!/bin/sh  mount_smbfs //user:password@xx.xx.xx.xx/backup /Volumes/backup DEST=/Volumes/backup 

и в конце:

umount /Volumes/backup 

(если ваша доля открыта, вы можете оставить имя пользователя и пароль)

Если вы хотите создавать резервные копии с отметкой времени, вы можете поэкспериментировать с командой date. например

DATE=`date +%Y%m%d` 

затем получите доступ к $ DATE в вашем скрипте.

Если что-то здесь вам не понятно, просто спросите.

Хорошо, я запустил это, но это заняло навсегда. Около 10 часов для синхронизации 300 ГБ данных. Последующие пробеги будут быстрее после первого? Если нет, мне нужно посмотреть на другое решение. swilliams 14 лет назад 0
При первом запуске это будет просто копирование всех ваших данных. Весь смысл rsync состоит в том, что последующие запуски будут выполняться быстрее, потому что ему нужно только передать изменения. Попробуйте запустить его снова сейчас - ничего не должно было измениться, поэтому оно должно быть очень быстрым. Если это не так, у вас могут быть проблемы с сетью. John Fouhy 14 лет назад 2
Да, я просто волновался, потому что я уже скопировал все данные раньше (когда это было на моей предыдущей рабочей станции ПК). Я просто запустил его снова, и все закончилось быстро. Спасибо. swilliams 14 лет назад 0
2
Grumbel

При использовании rsync для резервного копирования большинство параметров импорта, на которые вы обращаете внимание, - --backupи --backup-dirбез них вы делаете копию, а не резервное копирование. Как и в случае резервного копирования, вы хотите отслеживать изменения, а не просто перезаписывать их. Что я использую это:

#!/bin/sh  RSYNCOPTS="-e ssh --delete --one-file-system --relative --archive -P --verbose --compress --recursive" BACKUPDIR="/backup/" BACKUPINCR="$/incr/$(date -I)" BACKUPROOT="$/root/" EXCLUDES="--exclude-from /home/juser/.backup-excludes"  # Make sure we use a new incr backup directory on each run NUM=0 while [ -e "$-$" ]; do NUM=$(($NUM + 1)) done BACKUPINCR="$-$"  for i in /home/ /etc/; do rsync $RSYNCOPTS $EXCLUDES--backup --backup-dir="$BACKUPINCR" "$i" "$BACKUPROOT" done 

Это дает вам копию /backup/root/и резервную копию всех измененных или удаленных файлов в /backup/incr/$DATE-$NUM.

Этот скрипт использует --one-file-system, поэтому он не пересекает границы файловой системы и использует --relativeдля сохранения абсолютных имен путей.

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

Еще один общий совет, всегда используйте, --dry-runкогда вы играете с новой опцией, когда вы не уверены, что они делают, особенно когда речь идет о --deleteдрузьях, так как вы не захотите стереть свою уже существующую резервную копию случайно.

0
Ronald Pottol

rsync -av path_to_files path_to_place_on_NAS

запустите его с помощью cron, crontab -e. Хотя для этого вам нужно знать vi и посмотреть синтаксис crontab.

Это работает, если файлы принадлежат вам. Я думаю, что вы можете захотеть, чтобы опция E (-avE) захватила ветвь ресурса, которая на самом деле не используется в OS X, насколько я понимаю, а только ваши классические вещи, которые больше не работают).

Вот несколько ссылок, вам не нужно связываться с ssh.

просто: http://www.egg-tech.com/mac_backup/

комплекс: www.bombich.com/mactips/rsync.html

Некоторые приложения по-прежнему используют Resource Forks. Например, резервные копии Quicken для Mac и файлы основных данных становятся совершенно бесполезными без использования ресурсов. Chealion 14 лет назад 0
0
Michael

Ознакомьтесь с моими инструкциями по адресу http://www.luxgruppe.de/tech/?p=10 и последующими статьями по синхронизации музыки и плейлиста iTunes с Synology с помощью rsync. Синхронизация списка воспроизведения iTunes: http://www.luxgruppe.de/tech/?p=200

Повеселись!

Привет, Майкл, добро пожаловать в SuperUser. Вообще говоря, лучше всего добавить хотя бы краткое резюме контента, на который вы ссылаетесь, на тот случай, если ссылки когда-нибудь исчезнут. Не могли бы вы отредактировать свой ответ, включив в него немного информации, на которую вы ссылаетесь? Jonathan Garber 11 лет назад 0

Похожие вопросы