01.12.2019 в 00:23
LegGnom
OS X синхронизация с сервером fswatch + rsync
Для начала нужно закинуть ключ на удаленный сервер:
ssh-keygen -t rsa
Далее, ставим ssh-copy-id (в Mac OS: bew install ssh-copy-id ) и с его помощью заливаем наш сгенерированный ключ:
ssh-copy-id -i ~/.ssh/id_rsa user@remote.ru
Теперь ставим fswatch и rsync:
brew install fswatch
brew install rsync
Создаем файл sync.sh
#!/bin/bash
watch() {
fswatch -0 $1 | while read -d "" event
do
rsync -avzutr --timeout=10 $1 $2
done
}
watch "local/path/" "login@server:path/"
exit 0
Первым параметром передаем, что будем отслеживать и откуда брать изменения, вторым– куда их отправлять.
Нужно только иметь в виду, что такой подход дает возможность односторонней синхронизации. Для двусторонней, в частности, предлагается в sync.sh добавить еще одну строчку с обратным урлом:
#!/bin/bash
watch() {
fswatch -0 $1 | while read -d "" event
do
rsync -avzutr --timeout=10 $1 $2
rsync -avzutr --timeout=10 $2 $1
done
}
watch "local/path/" "login@server:path/"
exit 0