Dosyaları birkaç sunucu ile bir NAS arasında senkronize tutmak için bir bash betiğinde rsync kullanıyorum. Karşılaştığım bir sorun, rsync sırasında değişen dosyaların listesini oluşturmaya çalışmak.
Fikir şu ki, rsync'i çalıştırdığımda, bir metin dosyasına değiştirilen dosyaları - bellekteki bir dizi umuduyla - daha sonra komut dosyası mevcut olmadan önce sadece değiştirilmiş dosyalar üzerinde bir chown çalıştırabilirim .
Herhangi biri böyle bir görevi yerine getirmenin bir yolunu buldu mu?
# 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
Maddeyi ayırmak için ayrıca , bir kaç tane daha bükümle ...