bashスクリプトでrsyncを使用して、いくつかのサーバーとNASの間でファイルの同期を維持しています。私が遭遇した問題の1つは、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
itemizeのため、少数のより多くのねじれ...と