Бывает что вам в Linux нужно отслеживать изменения в какой-то папке и в случае если там появился новый файл или изменился какой-то файл, или его удалили – нужно эти же изменения произвести в другой директории. В этой записи рассказано как это сделать.
1. Установить inotify tools
inotify tools – это набор утилит для работы с inotify (inode notify) – программы отслеживающей действия с inode в файловой системе.
sudo apt-get install inotify-tools
Больше информации об этом можно найти тут: https://github.com/rvoicilas/inotify-tools/wiki
2. Установка rsync
Rsync нужен для выполнения синхронизации файлов и директорий.
sudo apt-get install ssh rsync
3. Создадим скрипт на bash и назовем его sync.sh
nano sync.sh
4. Пишем код скрипта.
#!/bin/sh
while inotifywait -r -e modify,create,delete,move /home/mirvir/rsync-test/source_folder; do
rsync -avz /home/mirvir/rsync-test/source_folder /home/mirvir/rsync-test/destination_folder --delete
done
Выделенные участки кода – нужно изменить на те пути которые нужны вам.
5. Делаем скрипт исполняемым.
chown +x sync.sh
6. Запускаем скрипт.
./sync.sh
Ну и конечно вы можете добавить скрипт в автозапуск различными путями доступными в вашем дистрибутиве от добавления в cron до запуска из .bashrc