Скрипт для просмотра папки на предмет изменений и, если она изменена, копирует все элементы внутри другой папки - PullRequest
0 голосов
/ 11 мая 2018

Есть ли способ создать скрипт bash, который следит за папкой на предмет изменений, и, если она когда-либо изменяется, скопируйте ее содержимое в другую папку?

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Если вы не хотите использовать какой-либо инструмент, вы можете написать свой собственный скрипт и запускать в фоновом режиме для мониторинга.Следующим способом попробуйте вычислить md5hash, если какой-либо контент изменяется в каком-либо файле.Вы контролируете с помощью увеличения интервала ожидания

monitor.sh

while true
do
    mdhash1=`find /path/to/folder -type f -exec md5sum {} \; | sort -k 2 | md5sum`
    sleep $1 
    mdhash2=`find /path/to/folder -type f -exec md5sum {} \; | sort -k 2 | md5sum`

    if [ "$mdhash1" = "$mdhash2" ]; then
       echo "Identical"
    else
       echo "Different"
       cp -vr /path/to/folder /path/to/destination/
    fi
done

Примечание. Это приведет к снижению производительности

Исполнение

./monitor.sh 2 & 
0 голосов
/ 11 мая 2018

Я думаю, что нет действительно "чистого" способа сделать это;из того, что я знаю, либо вы должны заставить наблюдателя работать в фоновом режиме постоянно, либо сделать наблюдателя на основе интервалов (я не знаю, есть ли OOP-подобный наблюдатель в сценариях).

Так что если вы хотитечтобы попробовать первое предложение, вам нужно создать скрипт, который будет работать постоянно с бесконечным циклом, который проверяет время последнего редактирования вашей папки и сохраняет его.Если к нему применяются какие-либо изменения, то ваш скрипт заметит разницу между последним сохраненным временем и новым.

Если вы хотите сделать то же самое, но без бесконечного цикла, вы можете использовать Crontabназначить интервальную проверку.Код будет таким же, как и предыдущий, но вам, безусловно, придется хранить время в текстовом файле.

Тогда вам нужно всего лишь добавить еще немного кода, чтобы скопировать содержимое просматриваемой папки вдругой каталог на ваш выбор.

Надеюсь, это может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...