对于小文件的策略
- 同步所有文件名包含txt的文件,完成后删除源文件
rsync -azv --remove-source-files --include="*/" --include="*txt*" --exclude="*" /src_folder/* -e "ssh -i /abc/key" user@1.2.3.4:/dst_folder/
- 同步csv格式的文件
rsync -azv --include="*/" --include="*.csv" --exclude="*" /src_folder/* -e "ssh -i /abc/key" user@1.2.3.4:/dst_folder/
- 从源文件夹删除超过10天的旧文件
sshpass -p user@pwd ssh user@4.3.2.1 find /src_folder/ -type f -mtime +10 -delete-print
对于大文件的策略
- 检查和同步最近3天的大文件到目标文件夹,排除所有小文件, 例如 *.txt, *.csv, *txt*
find /src_folder/ -type f -mtime -3 -exec rsync -azR --exclude-from="/abc/file-exclude" /dst_folder/ \;
- 用gz压缩传到目标文件夹的大文件
yes n|gzip -k -r -v /dst_folder/
- 同步大文件到最终目标文件夹
rsync -avz --include="*/" --include="*.gz" --exclude="*" /src_folder/* -e "ssh -i /abc/key" user@1.2.3.4:/dst_folder/
- 删除超过4天的旧文件
find /src_folder/ -type f -mtime +4-delete-print