RHCSA教程 第十三章 归档与系统间复制文件
1.归档及压缩
语法:
tar 选项 归档文件名 源文件 源文件2 源文件N
-c 创建
-t 查看
-f 指定文件名
-v 显示详细信息
-x 解包
-C 指定解包路径
例:
man tar
tar -cvf /root/etc.tar /etc/
1.文件及目录打包、解包
将文件打包归档
[root@servera opt]# touch file{1..3}
[root@servera opt]#
etc.tar file1 file2 file3
[root@servera opt]# tar -cvf file.tar file1 file2 file3
file1
file2
file3
[root@servera opt]# tar -tf file.tar
file1
file2
file3
[root@servera opt]# ls
etc.tar file1 file2 file3 file.tar
为文件解包
[root@servera opt]# tar -xvf file.tar -C /tmp/
file1
file2
file3
[root@servera opt]# ls /tmp/
file1 rclocal.log
file2 rht-bastion
file3 rht-default
NIC1 rht-vm-hosts
NIC2 systemd-private-ef2feb022cd2465c9dd920878a1d962b-chronyd.service-kRKFp0
[root@servera opt]#
将目录打包归档
[root@servera opt]# tar -cvf etc.tar /etc
[root@servera opt]# ls
etc.tar file1 file2 file3 file.tar
[root@servera opt]# cp etc.tar /home
[root@servera opt]# cd /home
为目录解包
[root@servera opt]# tar -xvf etc.tar
2.压缩
只压缩文件:
[root@servera opt]# gzip file1
[root@servera opt]# ls
etc.tar file1.gz file2 file3 file.tar
[root@servera opt]# file file1.gz
file1.gz: gzip compressed data, was "file1", last modified: Sun Mar 1 05:54:06 2020, from Unix, original size 0
[root@servera opt]# bzip2 file2
[root@servera opt]# ls
etc.tar file1.gz file2.bz2 file3 file.tar
[root@servera opt]# file file2.bz2
file2.bz2: bzip2 compressed data, block size = 900k
[root@servera opt]# xz file.tar
[root@servera opt]# ls
etc.tar file1.gz file2.bz2 file3 file.tar.xz
3.tar打包并压缩
tar的压缩选项
man tar | grep gzip
-z gzip
-j bzip2
-J xz
打包并压缩
tar -zcvf /root/etc.tar.gz /etc/
47 cd /root/
48 ls
49 file etc.tar.gz
50 tar -jcvf /opt.tar.bz2 /opt/
51 ls /
tar -Jcvf /root/etc.tar.gz /etc/
解包解压缩并指定路径
tar -zxvf etc.tar.g
tar -zxvf etc.tar.gz -C /opt/
tar xf etc.tar.gz -C /opt/
2.远程传输
1.使用scp实现远程文件传输
# scp servra.txt root@bastion:/opt/
# ls
# scp root@bastion:/opt/bastion.txt .
# ls
2.使用sftp实现远程文件传输
ID | app | roles |
---|---|---|
1 | ftp | client |
2 | sftp | ssh SubService |
3 | vsftp | service |
sftp instructor@classroom.example.com
instructor@classroom.example.com's password: Asimov
sftp> cd /tmp
sftp> ls
NIC1 NIC1.old NIC2 NIC2.old
sftp> get testfile.txt
Fetching /tmp/testfile.txt to testfile.txt
sftp> exit
[root@servera opt]#
[root@servera opt]# ls
etc testfile.txt
[root@servera opt]# touch put.txt
[root@servera opt]# sftp instructor@classroom.example.com
instructor@classroom.example.com's password:
Connected to instructor@classroom.example.com.
sftp> cd /tmp/
sftp> put /opt/put.txt
Uploading /opt/put.txt to /tmp/put.txt
/opt/put.txt 100% 0 0.0KB/s 00:00
sftp> ls
NIC1
NIC1.old
NIC2
NIC2.old
put.txt
3.使用rsync实现同步文件内容
-v 显示详细信息
-a 相当于存档模式
本地同步
[root@servera tmp]# rsync -av /var/log/* /tmp
远程同步
[root@servera tmp]# rsync -av /var/log/* serverb:/tmp
[root@servera tmp]# ssh root@serverb ls /tmp
问题:将serverb上的/var/log/同步到,servera当前目录下
[root@servera tmp]# rsync -av serverb:/var/log/ .
THE END