zoukankan      html  css  js  c++  java
  • Linux文件比对,批量复制

    --背景

     工作中突然有一天文件服务器空间满了,导致文件存不进去,立马换了另外一台服务器作为文件服务器,将服务器挂载上去,原来的服务器修复之后需要重新换回来,但是需要将临时使用的服务器内的文件迁移至原文件服务器。

    --解决办法

    第一种方法:

    第一步,记录一个文件夹的树结构
    find /home/jp/UploadFile/vehicle/2019/03/16 -maxdepth 1 -printf "%P " | sort > /home/jp/temp
    第二步,将比对文件夹的树结构和记录的树结构做比对
    find /home/jp/UploadFile/vehicle/2019/03/16/16 -maxdepth 1 -printf "%P " | sort | diff /home/jp/temp - > /home/jp/diff.txt
    第三步,将比对结果按格式输出
    awk '/>/{printf("%s%s%s ","cp /home/jp/UploadFile/vehicle/2019/03/16/16/",$2," /home/jp/UploadFile/vehicle/2019/03/16")}' /home/jp/diff.txt > /home/jp/cp.txt

    在linux上执行生成的文件内的命令即可

    第二种方法:

    直接使用scp 命令   scp 源端目录  目标端用户@目标端IP:目标端目录 如 scp /home/test/test.jpg  root@192.168.1.18:/home/test/ 

    需要注意的是文件可以直接用上面的命令,但是直接跨服务器复制文件夹的话 需要在 scp 后面加上 -r 如: scp -r /home/test/  root@192.168.1.18:/home/test/ 

    ----------将文件复制过去后需要注意源端文件和文件夹权限问题,如果用户没有权限将访问不了对应资源-----------

  • 相关阅读:
    linux之vi编辑器的基础命令
    redis的安装部署启动停止<17.3.21已更新>
    关于Ubuntu的ssh免密登录
    Git(管理修改)
    Git(时光机-版本回退)
    Git(查看修改记录)
    Git(创建版本库)
    集中式VS分布式
    Git(介绍和安装)
    Javascript基础知识
  • 原文地址:https://www.cnblogs.com/liwei1994/p/10574044.html
Copyright © 2011-2022 走看看