Я использую rsync в скрипте bash для синхронизации файлов между несколькими серверами и NAS. Одна проблема, с которой я столкнулся, - это попытка сгенерировать список файлов, которые изменились по сравнению с rsync.
Идея состоит в том, что когда я запускаю rsync, я могу вывести файлы, которые изменились, в текстовый файл - больше надеясь на массив в памяти - тогда перед тем, как сценарий будет существовать, я могу запустить chown только для измененных файлов.
Кто-нибудь нашел способ выполнить такую задачу?
# specify the source directory
source_directory=/Users/jason/Desktop/source
# specify the destination directory
# DO NOT ADD THE SAME DIRECTORY NAME AS RSYNC WILL CREATE IT FOR YOU
destination_directory=/Users/jason/Desktop/destination
# run the rsync command
rsync -avz $source_directory $destination_directory
# grab the changed items and save to an array or temp file?
# loop through and chown each changed file
for changed_item in "${changed_items[@]}"
do
# chown the file owner and notify the user
chown -R user:usergroup; echo '!! changed the user and group for:' $changed_item
done
-i
для подробностей, но с еще несколькими поворотами ...