Выполнение rsync на сетевом подключении

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

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

2
задан 14.04.2010, 00:00

1 ответ

С тех пор rsync только изменяет то, чему нужно изменение, не повредило бы просто иметь Ваш прогон задания крона однажды в час. Если будет мало или ничто для копирования, то потребуется очень мало времени. Но Вы не хотели бы, чтобы задание подвесило попытку, таким образом, Вы могли создать маленький сценарий оболочки, чтобы проверить, произошел ли Ваш 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

Я надеюсь, что это помогает.

2
ответ дан 11.12.2019, 22:40

Теги

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