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

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

Я также смотрел на rsyncx, но не могу заставить это устанавливать. Не заботьтесь о Машине времени, поддерживают также, просто нуждаются в простом резервном копировании.

5
задан 29.08.2009, 20:00

3 ответа

Вашему 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) затем можно выполнить его ночью использование крона. Выполненный crontab -e и добавьте эту строку:

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

(0 0 * * * средства: выполненный в полночь каждый день, каждый месяц. Первый столбец является минутами, таким образом, 3:00 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 +%Y%m%d`

затем $DATE доступа в Вашем сценарии.

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

4
ответ дан 07.12.2019, 17:41
  • 1
    Право, я был просто взволнован, потому что я уже скопировал все данные прежде (когда это было на моей предшествующей рабочей станции ПК). Я просто выполнил его снова, и это завершилось быстро.Спасибо. – swilliams 18.08.2009, 08:05

rsync-av path_to_files path_to_place_on_NAS

выполните его через крон, crontab-e, Хотя необходимо знать vi для этого, и искать crontab синтаксис.

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

Вот некоторые ссылки, Вы не должны смешивать с материалом ssh.

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

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

0
ответ дан 07.12.2019, 17:41

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

#!/bin/sh

RSYNCOPTS="-e ssh --delete --one-file-system --relative --archive -P --verbose --compress --recursive"
BACKUPDIR="/backup/"
BACKUPINCR="${BACKUPDIR}/incr/$(date -I)"
BACKUPROOT="${BACKUPDIR}/root/"
EXCLUDES="--exclude-from /home/juser/.backup-excludes"

# Make sure we use a new incr backup directory on each run
NUM=0
while [ -e "${BACKUPINCR}-${NUM}" ]; do
  NUM=$(($NUM  + 1))
done
BACKUPINCR="${BACKUPINCR}-${NUM}"

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 и друзья, поскольку Вы не делаете, не будут для вытирания уже существующего резервного копирования случайно.

2
ответ дан 07.12.2019, 17:41

Теги

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