bash 스크립트에서 rsync를 사용하여 파일을 몇 대의 서버와 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
항목별로 분류하지만 약간의 왜곡이 있습니다.