Korzystam z rsync w skrypcie bash, aby synchronizować pliki między kilkoma serwerami i serwerem NAS. Jednym z problemów, na jakie natknąłem się, jest próba wygenerowania listy plików, które zmieniły się w trakcie rsync.
Chodzi o to, że kiedy uruchamiam rsync, mogę wysyłać pliki, które zmieniły się w plik tekstowy - bardziej licząc na tablicę w pamięci - wtedy zanim skrypt będzie istniał, mogę uruchomić chown tylko na zmienionych plikach.
Czy ktoś znalazł sposób na wykonanie takiego zadania?
# 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
dla wyszczególnienia, ale z kilkoma dodatkowymi