Linux文件比对,批量复制
--背景
工作中突然有一天文件服务器空间满了,导致文件存不进去,立马换了另外一台服务器作为文件服务器,将服务器挂载上去,原来的服务器修复之后需要重新换回来,但是需要将临时使用的服务器内的文件迁移至原文件服务器。
--解决办法
第一种方法:
第一步,记录一个文件夹的树结构
find /home/jp/UploadFile/vehicle/2019/03/16 -maxdepth 1 -printf "%P\n" | sort > /home/jp/temp
第二步,将比对文件夹的树结构和记录的树结构做比对
find /home/jp/UploadFile/vehicle/2019/03/16/16 -maxdepth 1 -printf "%P\n" | sort | diff /home/jp/temp - > /home/jp/diff.txt
第三步,将比对结果按格式输出
awk '/>/{printf("%s%s%s\n","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文件比对,批量复制的更多相关文章
- Linux文件的建立、复制、删除和移动命令
mkdir命令一.mkdir 命令使用权限 所有用户都可以在终端使用 mkdir 命令在拥有权限的文件夹创建文件夹或目录. 二.mkdir 命令使用格式 格式: mkdir [选项] DirName ...
- linux批量复制或删除同命名规则的文件
如图所示,有多个不同后缀的文件,但他们的前缀都是"QC_TZ.impute." 此时想批量复制图中的文件的话,可以考虑用命令行 cp QC_TZ.impute.* /your/de ...
- 【转】巧用DOS tree命令+批处理 实现 指定文件 批量复制!
转自:http://www.cnblogs.com/looky/archive/2010/01/24/1655292.html 今天一朋友叫我帮忙解决指定文件批量复制的问题,于是找了一大堆批处理命令, ...
- Linux命令行bash批量重命名文件
本文介绍下,在linux下使用shell批量重命名文件的例子,有需要的朋友参考下吧. 在linux中,重命名文件名,需要用到mv命令.如果需要批量重命名名一批文件,就需要写bash脚本或命令行了. 例 ...
- linux 下文件重命名/移动/复制命令(转)
linux 下文件重命名/移动/复制命令(转) linux下重命名文件:使用mv命令就可以了, 例:要把名为:abc 重命名为:123 可以这样操作: 重命名:MV命令 1.进入你的文件目录,运行 ...
- Python批量复制和重命名文件
Python批量复制和重命名文件 示例代码 #! /usr/bin/env python # coding=utf-8 import os import shutil import time impo ...
- linux学习(四)复制(cp)移动(mv)删除(rm)查找(find)文件、文件夹操作、软硬链接的区别
目录 复制文件 mv命令 rm命令 touch 命令 file命令 find命令 grep命令 mkdir命令 rmdir命令 @(复制移动删除查找文件.软硬链接的区别) 复制文件 cp命令用于复制文 ...
- linux文件复制与权限赋值
文件file内容赋值到file2中 1. cp file1 file2 2. cat file1 > file2 3. cat < file1 > file2 4. dd if= ...
- Linux命令(二) 复制文件 cp
cp命令用来复制文件或目录,当复制多个文件时,目标文件参数必须为已经存在的目录,否则将出现错误. cp命令默认不能复制目录,复制目录必须使用 -R 选项.cp命令具备了 ln命令的功能. 命令格式: ...
随机推荐
- centos7 出现“FirewallD is not running”
原因:没有开启防火墙 #提示没有开启防火墙服务,–permanent #永久生效,没有此参数重启后失效 [root@uJZ ~]# firewall-cmd --permanent --zone=/t ...
- 作业:IEEE754浮点数
人工转换: 5.75转换成二进制:101.11右移2位,补0:1.0111000000000000000000000000000000000000000000000000.10000000001 16 ...
- 【Gamma阶段】第三次Scrum Meeting
冰多多团队-Gamma阶段第三次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 卓培锦 修改可移动button以及button手感反馈优化 编辑器风格切换(夜间模式) 牛雅哲 添加优化算法 ...
- Inno setup 判断系统32位还是64位
[Files] ; Install MyProg-x64.exe -bit mode (x64; see above), ; Check: Is64BitInstallMode 表示是64位windo ...
- 最全Linux应急响应技巧 【转】
概述 Linux环境下处理应急响应事件往往会更加的棘手,因为相比于Windows,Linux没有像Autorun.procexp这样的应急响应利器,也没有统一的应急响应处理流程.所以,这篇文章将会对L ...
- JPA的查询方法总结
一.使用where条件上一篇我们使用JPA进行了数据源的访问,默认JPA已经实现了好几个接口可以调用.但是,在实际的业务中,查询语句不可避免地需要使用where.order by等语句. 我们用商品数 ...
- zabbix使用自动发现功能批量监控服务器端口的可用性
使用自动发现脚本批量监控服务器端口的可用性 .编写自动发现脚本 # cat /usr/local/zabbix_agents_3.2.0/scripts/web_site_code_status.sh ...
- MySQL慢查询参数
开启mysql慢查询日志 修改/etc/mysql/my.cnf配置文件,添加: [mysqld]slow_query_log = onslow_query_log_file = /var/lib/m ...
- 开发日记:在VS项目中使用SVN版本号作为编译版本号
在实际项目中(特别是作为产品的项目),版本号是必不可少的一部分.版本号的规则也有许多种,在此不讨论具体的编码规范.对于迭代的产品,版本繁多,特别是有多个实施项目所使用产品的版本不同(基于定制需求)时, ...
- Xamarin.Android UnauthorizedAccessException: Access to the path is denied
进行文件读写,勾选了权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" / ...