2

У меня есть один Mac, который всегда включен и является моим основным компьютером. У меня также есть MacBook, и я пытаюсь синхронизировать свою библиотеку iPhoto. Так что я могу успешно использовать rsync для синхронизации файлов. Я использую cron, чтобы он запускался один раз в день.

На самом деле MacBook не всегда включен, поэтому я ищу способ запуска rsync, когда два компьютера подключены к одной сети Wi-Fi. Таким образом, я предполагаю, что лучшее место - это запустить Rsync, когда аэропорт подключен. Как лучше?

1 ответ1

2

Так как rsync меняет только то, что нужно изменить, не мешало бы запускать задание cron раз в час. Если копировать мало или ничего, это займет очень мало времени. Но вы не хотели бы, чтобы работа зависала при попытке, поэтому вы можете создать небольшой сценарий оболочки, чтобы проверить, работает ли ваш MacBook, и, если он есть, запустите команду rsync. На случай, если возникнет проблема, и задание rsync зависнет или займет более часа, вы должны убедиться, что не запускаете новый экземпляр, когда предыдущий еще работает. Вот пример сценария (который я назову MyRsyncJob и который вам придется пересмотреть):

[ -s /var/run/MyRsyncJob ] && {
  PID=$(cat /var/run/MyRsyncJob)
  echo "MyRsyncJob is still running (PID $PID)" >&2
  exit 1
}
ping  -c 1 -o MacBook >&- || exit 1 # Exit if MacBook isn't reachable
trap 'rm /var/run/MyRsyncJob' 0 15 # Remove run file upon exit or TERM signal
echo $$ >> /var/run/MyRsyncJob     # Put PID into run file
rsync -zave ssh /path/to/my/iphoto/library/ MacBook:/path/to/destination/directory

Надеюсь, это поможет.

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