Linux 文件同步复制

# 1.在远程服务器上用脚本生成每个子文件夹第二新文件的完整路径列表
# 1.1 进入数据根目录
cd /home/bjgrst/TuechHisData/
# 1.2 生成相对路径列表
find -type d | while read dir; do
    ls -1t "$dir"/*.csv 2>/dev/null | head -n 2 | tail -n 1
done > /tmp/second_newest_csv_files.txt

# 2.把 second_newest_csv_files.txt 下载到本地
scp -P 25102 bjgrst@101.200.232.95:/tmp/second_newest_csv_files.txt /mnt/docker/docker_data/TuechHisData/TuechHisData101/

# 3.1用 rsync 的 --files-from 参数批量同步
rsync -avz --relative --progress --files-from=/mnt/docker/docker_data/TuechHisData/TuechHisData101/second_newest_csv_files.txt -e "ssh -p 25102" bjgrst@101.200.232.95:/home/bjgrst/TuechHisData/ /mnt/docker/docker_data/TuechHisData/TuechHisData101/

# 3.2用如下脚本循环下载每个文件
while read filepath; do
    scp -P 25102 bjgrst@101.200.232.95:"$filepath" /root/TuechHisData101/
done < /mnt/docker/docker_data/TuechHisData/TuechHisData101/second_newest_csv_files.txt

发表回复 0

Your email address will not be published. Required fields are marked *