首页 > Linux操作系统 > Linux操作系统 > rsync 两例脚本备用
rsync 同步保证源数据
cat root/rsync.sh
#!/bin/bash
log_dir="/root/rsync_log"
src_dir="/root/face"
dst_dir="/root/archive"
if [ ! -d ${log_dir} ];then
mkdir -p ${log_dir}
fi
for subdirname in 202009 202010 202011
do
rsync -avI --progress ${src_dir}/${subdirname}/ ${dst_dir}/${subdirname}/ > ${log_dir}/doc_${subdirname}.log 2>&1
这里 -avI 会保留src目录所有权限,并输出明细,--progress 会有进度100%显示,所以生成的/root/rsync_log会比较大,
一般2T左右(100w个大小子目录)的拷贝约100-300M. -I 参数这里是覆盖,没有就不覆盖(保证src目录的目录文件都有)
mv ${src_dir}/${subdirname} ${src_dir}/${subdirname}_delete $subdirname会留有空目录,最好用rmdir删除
done
rsync 删除大量子目录小文件
cat root/del_09_10_11.sh
#!/bin/bash
log_dir="/root/rsync_log"
src_dir="/doc/archive"
if [ ! -d ${log_dir} ];then
mkdir -p ${log_dir}
fi
for subdirname in 202009_delete 202010_delete 202011_delete
do
rsync --delete-before -a --stats /root/test/ ${src_dir}/${subdirname}/ > ${log_dir}/doc_${subdirname}.log 2>&1
done
附:rsync --stats 参数会生成的日志如下,如果不想像上一个脚本的日志太大,可以用这个参数
Number of files: 1 (dir: 1)
Number of created files: 0
Number of deleted files: 24,019 (reg: 18,805, dir: 5,214)
Number of regular files transferred: 0
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 43
Total bytes received: 915,118
sent 43 bytes received 915,118 bytes 2,430.71 bytes/sec
total size is 0 speedup is 0.00
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70039334/viewspace-3020531/ ,如需转载,请注明出处,否则将追究法律责任。