2

У меня есть два основных компьютера, один Mac Pro и один MacBook Pro, когда я в пути. У меня также есть сервер Linux, который также действует как NAS.

В настоящее время я копирую все компьютеры на внешний диск с помощью Time Machine, которая довольно бесполезна и ничего не синхронизирует. Что я действительно хочу сделать, так это синхронизировать важные файлы между обоими компьютерами и моим NAS (на котором работает RAID 5), таким образом я не создаю резервные копии легко заменяемых системных файлов, и все важные файлы хранятся в трех местах. где два из них используют raid, так что по крайней мере 5 дисков должны были аварийно завершить работу одновременно, прежде чем произойдет фактическая потеря данных.

Папки, которые я хочу синхронизировать, - это, в основном, папки с фотографиями, документами, разработками, папками mamp и work, а затем я хочу сохранить резервную копию папки пользовательской библиотеки, но не синхронизировать ее. Я думаю, что мне придется использовать Rsync, но не знаю как.

Прежде чем предлагать Dropbox и подобные предложения, я не хочу их использовать по нескольким причинам, некоторые из которых являются безопасными (Dropbox явно доказал это), Скорость (иногда я синхронизирую гигабайты данных, и это будет значительно быстрее локально и, возможно, даже через VPN, так как у меня есть гигабитный канал), пространство (пространство на моем NAS дешевое и практически ограничено моими потребностями), надежность (даже если мой интернет отключится, мне все равно нужно иметь возможность сохранять синхронизированные файлы, пока я мне нужно было бы куда-то лететь), цена (у меня уже есть все оборудование, а также гигабайты и пропускная способность, я сомневаюсь, что есть какой-то бесплатный или дешевый сервис). Это моя главная причина, по которой я хочу сохранить это локально.

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

4 ответа4

1

Ниже приведен скрипт, который я использую для резервного копирования с помощью rsync. Разница в том, что он создает копию предыдущей резервной копии с жесткими ссылками (что экономит место) и rsync для этого.

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

#! /bin/bash

# number of days to keep backups:
maxage=120

lockfile=/tmp/sync-files
# Ensure that only one copy is running.
lockfile -r0 $lockfile || exit 1
trap 'rm -f $lockfile' EXIT

# Versioned rsync
vrsync()
{
[ -d $2 ] || mkdir $2

# remove expired directories
for dir in `find $2 -maxdepth 1 -type d -mtime +$maxage`; do
    #echo "NOTE: removing expired directory: $dir"
    rm -fr $dir
done

mostrecent=`(cd $2; /bin/ls -r) | grep '^[0-9]' | head -1`
today=`date +%Y.%m.%d-%H:%M:%S`

if [ -z "$mostrecent" ]; then
    echo No older mirror to rotate.  Starting fresh.
else
    #echo most recent is $mostrecent.  Making links.
    cp -al $2/$mostrecent $2/$today
fi

rsync -qa --delete --delete-before $1 $2/$today

# Note: rsync will set the modification time of the destination
# directory to the modification time of the source directory so we touch
# it here so that it reflects the time of the backup.
touch $2/$today

# make a `latest' link
rm -f $2/latest
ln -s $today $2/latest
}

# trailing slash on first directory is important
vrsync /home/Documents/ /mirror/backup/Documents
1

rsync может сделать это

Мой совет, что вы потратите некоторое время, чтобы научиться использовать его, это очень компетентный инструмент.

На sourceforge arRsync есть проект, который дает вам графический интерфейс, который может помочь вам начать работу.

0

Я использую rsync в любое время, когда будет работать односторонняя синхронизация. Когда требуется двусторонняя синхронизация, я использую Unison. У меня были отличные результаты синхронизации синхронизации данных, большого количества исходных файлов и т.д. С этим инструментом.

Чего я не пробовал, так это использовать Unison для синхронизации всего домашнего каталога. Я не уверен, что OS X потерпит крах, если весь домашний каталог будет совместно использоваться двумя компьютерами. Если это поддерживается в OS X, я уверен, что Unison справится с нагрузкой.

Просто подсказка при использовании Unison. Используйте синхронизацию по ssh вместо монтирования диска с smb или nas. У меня были проблемы с неправильным распространением прав доступа к файлам между Mac и сервером Linux, когда сервер Linux был удаленно смонтирован на Mac с smb. Никаких проблем, если такая же синхронизация выполняется через логин ssh.

Кроме того, когда используется синхронизация по ssh, Unison фактически работает как на Mac, так и на сервере Linux. Это означает, что большинство вычислений, чтобы выяснить, что изменилось, делается полностью изолированно для каждой машины (то есть очень-очень быстро).

0

Для резервных копий командной строки, локально или по сети:

  • rsync: односторонний, перезаписывает место назначения, так что ошибка (например, неправильное направление) может уничтожить данные.
  • rdiff-backup: односторонний, но сохраняет diff для старых версий, чтобы их можно было восстановить. Похоже на TimeMachine.

Чтобы синхронизировать несколько машин:

  • Унисон: двусторонняя синхронизация. Файл конфигурации выбирает, какие папки должны быть синхронизированы. Я не синхронизирую домашнюю папку напрямую, а папки с документами. Не практично для более чем двух компьютеров.
  • Bittorrent sync: многопоточная синхронизация. Позволяет частную синхронизацию с использованием протокола bittorrent. Я использую это для синхронизации некоторых папок между моими компьютерами и коллегами. Я предпочитаю это Dropbox из-за нехватки места последнего.

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