【ubuntu基础】rsync命令的理解与使用

前言

传输大数据时使用scp时容易出错,此时可以尝试使用rsync进行数据传输。

使用指南

保留各个子目录结构,json文件所在目录复制到本地
rsync -av \
  -e "ssh -p 2222" \
  --include="*/" \
  --include="*/L3_result/result_TFL_TSR/*.json" \
  --exclude="*" \
  root@10.9.100.48:/mnt/J3_parsed_data/TFL_TSR_Batch_1/ \
  ./TFL_TSR_json/
  
  scp -rP 2222 root@10.9.100.48:/mnt/J3_parsed_data/TFL_TSR_Batch_1/dataset_analysis ./
  scp -P 2222 root@10.9.100.48:/mnt/J3_parsed_data/TFL_TSR_Batch_1/TFL_TSR.md ./

集群中传输大文件(最推荐方案:Pod 挂载 PVC,然后从 Pod 主动 rsync;)

# 确认是否挂载PVC
kubectl get pods -n sima --kubeconfig=local.yaml
# 进入POD
zzz:~/workspace/project/j6m/rancher_train_yolov8_dtld$ kubectl exec -it gpu-training-pod-ubuntu-yolov8-dtld -n sima --kubeconfig=local.yaml -- /bin/bash
# 检查可用空间是否足够
(base) ubuntu@gpu-training-pod-ubuntu-yolov8-dtld:~$ ls /data/
(base) ubuntu@gpu-training-pod-ubuntu-yolov8-dtld:~$ df -h /data
mount | grep /data/
# 在 Kubeflow Pod 内部测试是否可以访问源服务器
ssh -p 2222 root@10.9.100.48
(base) ubuntu@gpu-training-pod-ubuntu-yolov8-dtld:/data/train_data$ rsync -avP -e "ssh -p 2222" root@10.9.100.48:/mnt/J3_parsed_data/YOLO_ADAS_Dataset/YOLO_Stage1_Dataset /data/train_data/
# rsync两端的服务器都需要安装rsync
(base) ubuntu@gpu-training-pod-ubuntu-yolov8-dtld:/data/train_data$ sudo apt update
sudo apt install -y rsync openssh-client
rsync --version
ssh -V
# Pod 中直接执行rsync
(base) ubuntu@gpu-training-pod-ubuntu-yolov8-dtld:/data/train_data$rsync -avP --append-verify -e "ssh -p 2222" root@10.9.100.48:/mnt/J3_parsed_data/YOLO_ADAS_Dataset/YOLO_Stage1_Dataset /data/train_data/
#打开一个 Kubeflow 终端实时查看传输数据的大小
watch -n 1 'du -s /data/train_data/YOLO_Stage1_Dataset/'
watch -n 1 'du -sh /data/train_data/YOLO_Stage1_Dataset/'

 -e用于指定远程连接服务器时使用的命令。

rsync -avP --append-verify xxx@10.0.169.56:/home/xxx/workspace/project/J6M/horizon_j6_open_explorer_v3.7.0-py310_20251215/ultralytics_origin/ultralytics_yolov8s_p2_3cls_condattr_tsr37 /data/ultralytics_origin/
# -e 用于指定 rsync 连接远程服务器时使用的命令,通常是 ssh。
rsync -avP 用户名@服务器:/源目录 /目标目录/
rsync -avP -e "ssh -p 2222" 用户名@服务器:/源目录 /目标目录/
rsync -avP -e "ssh" 用户名@服务器:/源目录 /目标目录/

 

 

参考

1. 

 

posted on 2026-08-26 15:15  鹅要长大  阅读(3)  评论(0)    收藏  举报

导航