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