Никак не мог найти себе подходящую программу для автоматической синхронизации файлов с сервером при их изменении, пришлось написать свою на bash. Вот ее активная часть:
while true; do
if [[ -n $(git status -s) ]]; then
cd $1
git add .
git commit -m "Git commit `date +'%d.%m.%Y %H:%M:%S'`"
git push origin master
notify-send -i face-smile "Синхронизация выполнена"
fi
done
Т.е программа постоянно смотрит вывод git status и если обнаружит, что файл изменен, она автоматически его коммитит. Работает идеально. Но я беспокоюсь за чистоту программирования и еще за сохранность моего жесткого диска. Она ведь постоянно долбится в этот git status, насколько это правильно? Можно было конечно не делать бесконечным циклом, а запускать по cron, но мне нужна именно моментальная синхронизация. С другой стороны, как устроены другие популярные программы для синхронизации или мониторинга чего-либо, типа Dropbox или Seafile? Я не разбирался, что у них происходит под капотом, может они тоже также долбятся в свое?
Расскажите пожалуйста об этом, если знаете, и может быть дадите какие-нибудь советы, как улучшить этот алгоритм?