Tôi đang sử dụng rsync trong tập lệnh bash để giữ các tệp đồng bộ giữa một vài máy chủ và NAS. Một vấn đề tôi gặp phải là cố gắng tạo danh sách các tệp đã thay đổi trong thời gian rsync.
Ý tưởng là khi tôi chạy rsync, tôi có thể sản xuất các tập tin đã thay đổi vào một tập tin văn bản - hy vọng hơn cho một mảng trong bộ nhớ - sau đó trước khi kịch bản tồn tại tôi có thể chạy một chown trên chỉ các tập tin đã thay đổi.
Có ai tìm thấy một cách để thực hiện một nhiệm vụ như vậy?
# 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
để chia thành từng mục, nhưng với một vài vòng xoắn nữa ...