Вы можете настроить запуск crontab каждые N минут. Задание будет искать файлы, измененные менее N минут назад, и копировать их в новое место назначения.
Например, если вы хотите запускать файл /home /my_name /bin /custom каждые 10 минут, вы редактируете свой файл crontab с помощью команды
crontab -e
и добавьте следующую строку в конце:
*/10 * * * * /home/my_name/bin/custom
Файл custom, сделан исполняемым
chmod 755 custom
может быть что-то вроде этого:
#!/bin/sh
cd /directory/to/be/monitored
find . -type f -mmin -10 -exec sh -c ' file={}; base=${file##*/}; \
scp {} me@remotemachine:/target/directory/$base ' \;
Эта команда рекурсивно ищет в целевом каталоге файлы, измененные менее чем (-mmin -10) десять минут назад, и s
копирует их в новое место назначения. Он помещает все файлы в один каталог /target /, независимо от их происхождения. Конечно, вы должны настроить логин без пароля, чтобы это работало.
Если вместо этого вы хотите сохранить структуру каталогов (то есть не складывать все в одном каталоге, измените вышеприведенное, как указано ниже:
find . -type f -mmin -10 -exec sh -c ' file={}; base=${file##*/}; \
dirpath=${file%/*}; ssh me@remotemachine mkdir -p /target/directory/$dirpath ; \
scp {} me@remotemachine:/target/directory/{} ' \;
Здесь нет проверки ошибок, измените, как считаете нужным.