GlusterFS集群中的某个卷的某个砖备份
检查两个目录所在的磁盘的文件系统类型是否一致
df -Th

如果一致,检查文件系统block size 和inode size是否一致

sudo tune2fs -l /dev/sdc1
sudo tune2fs -l /dev/sde1

备份:/home/ssd0/gfs/ -> /home/songjian/$(date +%Y%m%d%H%M)
nohup sh -c ‘mkdir -p /home/songjian/$(date +%Y%m%d%H%M) && cp -rpP /home/ssd0/gfs/ /home/songjian/$(date +%Y%m%d%H%M) > /home/songjian/$(date +%Y%m%d%H%M)/output.log 2>&1’ &
检查两个目录的文件大小及总数是否一致
#!/bin/bash
# 定义原目录和复制目标目录
source_dir=”/home/ssd0/gfs”
target_dir=”/home/songjian/2024-03-21_11-23/gfs”
# 比较两个目录,找出在第一个目录存在而在第二个目录不存在的文件
missing_files=$(comm -23 <(cd “$source_dir” && find . -type f -printf “%P\n” | sort) <(cd “$target_dir” && find . -type f -printf “%P\n” | sort))
# 将缺失的文件路径输出到指定文件
echo “Files existing in $source_dir but not in $target_dir:” > /home/ssd0/missing_files.txt
echo “$missing_files” >> /home/ssd0/missing_files.txt
# 比较两个目录,找出文件名相同但大小不同的文件
different_files=$(comm -12 <(cd “$source_dir” && find . -type f -printf “%P %s\n” | sort) <(cd “$target_dir” && find . -type f -printf “%P %s\n” | sort) | \
awk -v source_dir=”$source_dir” -v target_dir=”$target_dir” ‘{file=$1; size=$2; getline < (source_dir “/” file); \
if (size != $2) print “Size differs:”, source_dir “/” file, “and”, target_dir “/” file}’)
# 将文件名相同但大小不同的文件路径输出到指定文件
echo “Files with the same name but different sizes:” > /home/ssd0/different_files.txt
echo “$different_files” >> /home/ssd0/different_files.txt
运行脚本
./diff_file.sh
检查两个文件夹总大小
du -shl /home/ssd0/gfs /home/songjian/gfs
同步两个目录信息
rsync -avh –delete /home/ssd0/gfs/ /home/songjian/gfs