linux中的远程文件传输
linux中的远程文件传输有两种:
简单的解析scp和rsync,前是复制,后是同步。
rsync和scp在文件夹均不存在时,执行时间相差不大,但是文件夹存在的情况下差异很大。原因是scp是复制:若目的地文件不存在则新建,若存在则覆盖。而rsync是同步,比较两边文件是否相同,相同的话,就什么都不做,若存在差异就直接更新。
1 scp命令
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令, scp的原理是复制,若目的地文件不存在会新建,若存在则覆盖
1.1 scp命令的使用
- 把本地文件或目录复制到远程主机(上传文件)
scp 本地文件 远程主机用户@远程主机ip :远程主机目录的绝对路径
scp -r 目录 远程主机用户@远程主机ip :远程主机目录的绝对路径
- 把远程文件或目录下载到本机(下载)
scp 远程主机用户@远程主机ip :远程主机目录的绝对路径 本地文件
scp -r 远程主机用户@远程主机ip :远程主机目录的绝对路径 本地文件
scp命令常用的参数:
参数 | 功能 |
---|---|
-r | 复制文件夹 |
-q | 传输文件时不显示进度 |
2. rsync的用法
rsync的原理是增量传输,
rsync 文件 远程用户@远程主机ip:远程主机目录
rsync 远程用户@远程主机ip:远程主机目录 文件目录
rsync常用的的参数:
参数 | 功能 |
---|---|
-r | 复制目录 |
-l | 复制链接 |
-p | 复制权限 |
-o | 复制拥有者 |
-t | 复制时间戳 |
-g | 复制拥有组 |
-D | 复制设备文件 |
- rsync和scp的对比
在主机之间里面建立免密登录使远程传输文件可以直接执行
ssh -keygen ##生成密钥
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.43.189
1. 文件的归档
tar
c | 创建 |
f | 指定文件名称 |
x | 解档 |
v | 实现过程 |
t | 查看 |
r | 向归档文件中添加文档 |
–get | 解档指定文件 |
–delete | 删除指定文件 |
-C | 指定解档路径 |
文件的压缩和解压
常见的压缩文件的格式有zip,gz,bz2,xz,文件压缩和解压方法如下:
文件的格式 | 压缩 | 解压 |
---|---|---|
zip | zip -r dir.tar.zip dir.tar | unzip dir.tar.zip |
gz | gzip dir.tar | gunzip dir.tar.gz |
bz2 | bzip2 dir.tar | bunzip2 dir.tar.bz2 |
xz | xz dir.tar | unxz dir.tar.xz |
将归档后的文件 dir.tar 压缩成zip,gz,bz2,xz格式,并进行解压:
文件的归档压缩和解压解档
文件格式 | 归档压缩 | 解压解档 |
---|---|---|
gz | tar zcf name.tar.gz /dir | tar zxf name.tar.gz |
bz2 | tar jcf name.tar.bz2 /dir | tar jxf name.tar.bz2 |
xz | tar jcf name.tar.xz /dir | tar Jxf name.tar.xz |
下图是将/etc下的文件归档压缩为gz,bz2,xz格式的压缩包,并不同格式的压缩包解压解档: