网络管理/网络连通性/配置网络/文件归档和备份/系统间复制文档 学习笔记
Rsync同步数据镜像时,通过“quick check”算法,仅同步大小或最后修改时间发生变化的文件或目录,当然也可以根据权限,属主等属性变化的同步,所以可以实现快速同步。Rsync具有本地与远程两台主机之间的数据快速复制同步镜像、远程备份等功能,该功能类似scp,但是优于scp功能,还具有本地不同分区目录之间全量及增量复制数据。scp,全名secure copy,也就是安全复制,是基于ssh协议
网络管理
查看网络配置
网卡信息
网卡名称:
旧名称,eth0 eth1 (Ethernet)
新名称,根据网卡的拓扑类型命名。例如ens32,eno4。
linux网络接口传统的名称为eth0 eth1 eth2 …ethN。然而这种机制会引起一些问题,例如网络接口的增加和删除。
在rhel7或者更高版本中,接口命名规则如下:
前2个字符:Ethernet 接口以en开头,WLAN接口以wl开头,WWAN接口以ww开头。
下一个字符:o(onboard)代表板载设备,s(slot)代表PCI热插拔,p代表pci接口网卡。
最后N表示index ID或者port。
例如
eno1,代表Ethernet 类型、板载设备、端口号是1的网卡。
wlp4s0,代表位于PCI总线4上插槽0中的WLAN卡。如果该卡是一个多功能设备(具有多个端口或者具有一些其他功能)。示例,enp0s1f0代表位于PCI总线0上插槽1中的以太网卡的功能0。
如果无法分配固定接口名,将使用传统方式ethN命名。
查看 link
关注mac地址。
# 查看网络设备清单
[root@localhost ~ 01:47:04]# ip -br link
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
ens33 UP 00:0c:29:d7:bf:ee <BROADCAST,MULTICAST,UP,LOWER_UP>
# 查看单个网络设备信息
[root@localhost ~ 01:47:33]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:d7:bf:ee brd ff:ff:ff:ff:ff:ff
查看 IP
关注IP地址和掩码位数:10.1.8.10/24。
[root@localhost ~ 01:48:50]# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
ens33 UP 10.1.8.10/24 fe80::53c8:38d1:b8b6:eab7/64
[root@localhost ~ 01:49:45]# ip addr show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:d7:bf:ee brd ff:ff:ff:ff:ff:ff
inet 10.1.8.10/24 brd 10.1.8.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::53c8:38d1:b8b6:eab7/64 scope link noprefixroute
valid_lft forever preferred_lft forever
查看 route
default代表主机的网关,也就是10.1.8.2。
[root@localhost ~ 01:50:26]# ip route
default via 10.1.8.2 dev ens33 proto static metric 100
10.1.8.0/24 dev ens33 proto kernel scope link src 10.1.8.10 metric 100
还可以使用以下命令
[root@server ~ 11:46:03]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.8.2 0.0.0.0 UG 100 0 0 ens33
10.1.8.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
# 或者
[root@server ~ 11:47:11]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.1.8.2 0.0.0.0 UG 0 0 0 ens33
10.1.8.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
说明:
直连网络10.1.8.0/24和192.168.122.0/24,可以 直接通信。
其他网络中主机,通过默认路由发送到目标,这里是default对应的条目,也就是10.1.8.2。
查看 dns
/etc/resolv.conf 文件中nameserver指明服务想哪个DNS服务器查询域名对应IP
[root@localhost ~ 01:56:41]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 223.5.5.5
nameserver 223.6.6.6
测试网络连通性
ping 测试
# ping 测试,选项-c控制ping次数,选项-w控制ping超时时间
[root@localhost ~ 02:01:32]# ping baidu.com -c 4 -w 2
PING baidu.com (111.63.65.103) 56(84) bytes of data.
64 bytes from 111.63.65.103 (111.63.65.103): icmp_seq=1 ttl=128 time=35.9 ms
64 bytes from 111.63.65.103 (111.63.65.103): icmp_seq=2 ttl=128 time=36.5 ms
--- baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1017ms
rtt min/avg/max/mdev = 35.931/36.241/36.551/0.310 ms
# 说明:
# 1- 能够解析出ip 说明DNS配置正确
# 2- 能ping 通说明我们的网关配置正确
mtr 路由跟踪
# ping 主机不通,此时跟踪路由,查看数据最远到达的位置
[root@localhost ~ 02:04:34]# yum install -y mtr
[root@localhost ~ 02:07:25]# mtr -n 1.1.1.1

ss 工具
/etc/services 文件存储常见端口和服务对应关系
[root@localhost ~ 02:08:08]# vim /etc/services
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
telnet 23/tcp
telnet 23/udp
...
nameserver 42/tcp name # IEN 116
nameserver 42/udp name # IEN 116
nicname 43/tcp whois
nicname 43/udp whois
tacacs 49/tcp # Login Host Protocol (TACACS)
tacacs 49/udp # Login Host Protocol (TACACS)
re-mail-ck 50/tcp # Remote Mail Checking Protocol
re-mail-ck 50/udp # Remote Mail Checking Protocol
...
ss 命令用于查看系统中网络状态信息。
以前使用 netstat 查看网络状态信息,使用方法等效与 ss 命令。
# 默认显示是 ESTAB 状态
[root@localhost ~ 02:14:43]# ss | grep :ssh
tcp ESTAB 0 36 10.1.8.10:ssh 10.1.8.1:59727
# 只看 LISTEN,包含IPv4和IPv6
[root@localhost ~ 02:18:10]# ss -l | grep :ssh
tcp LISTEN 0 128 *:ssh *:*
tcp LISTEN 0 128 [::]:ssh [::]:*
# 查看 ipv4 所有(LISTEN和ESTAB)网络状态
[root@localhost ~ 02:20:20]# ss -a4|grep :ssh
tcp LISTEN 0 128 *:ssh *:*
tcp ESTAB 0 36 10.1.8.10:ssh 10.1.8.1:59727
# -n 将服务的名称显示为数字
[root@localhost ~ 02:20:35]# ss -an4|grep :22
tcp LISTEN 0 128 *:22 *:*
tcp ESTAB 0 36 10.1.8.10:22 10.1.8.1:59727
# -p 显示相应的进程
[root@localhost ~ 02:21:36]# ss -lnp4|grep :22
tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=949,fd=3))
模拟环境
[root@server ~ 02:34:24]# yum install -y nginx
[root@server ~ 02:34:38]# systemctl start nginx.service
[root@server ~ 02:34:45]# echo "Hello World" > /usr/share/nginx/html/index.html
[root@server ~ 02:34:56]# curl http://10.1.8.10
Hello World
[root@server ~ 02:35:06]# yum install -y httpd
[root@server ~ 02:35:25]# systemctl start httpd
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
[root@server ~ 02:35:27]# systemctl status httpd.service|grep use
5月 16 02:35:26 server.liang.cloud httpd[1391]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
5月 16 02:35:26 server.liang.cloud httpd[1391]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
查找端口被哪个程序使用
[root@server ~ 02:36:01]# ss -lnp4|grep :80
tcp LISTEN 0 128 *:80 *:* users:(("nginx",pid=1344,fd=6),("nginx",pid=1343,fd=6),("nginx",pid=1342,fd=6))
解决方法
[root@server ~ 02:39:02]# systemctl stop nginx
[root@server ~ 02:40:51]# systemctl start httpd
配置网络
网络配置是由 NetworkManager 服务管理的,确保该服务开机自启。
环境准备
虚拟机新增加一个NAT网卡。
自动获取的前提条件是直连的网络中有dhcp服务器。
对于 vmware workstations:


nmtui 命令
自动配置
[root@server ~ 15:25:20]# nmtui

设备控制
DEVICE,是设备,也就是网卡。
CONNECTION,是连接,也就是网卡的配置。
一个 DEVICE 可以有多个配置,同一时刻只能激活一个配置。
# 显示设备列表状态信息
[root@server ~ 15:37:10]# nmcli device
DEVICE TYPE STATE CONNECTION
ens33 ethernet 已连接 ens33
ens35 ethernet 已连接 ens35-static
lo loopback 未托管 --
# 断开设备链接
[root@server ~ 15:41:51]# nmcli device disconnect ens35
成功断开设备 "ens35"。
[root@server ~ 15:42:08]# nmcli device
DEVICE TYPE STATE CONNECTION
ens33 ethernet 已连接 ens33
ens35 ethernet 已断开 --
lo loopback 未托管 --
# 连接设备
[root@server ~ 15:43:43]# nmcli device connect ens35
成功用 "ens3541afed9c-64a2-4df4-bbe8-01bb45605726" 激活了设备 ""。
[root@server ~ 15:43:58]# nmcli device
DEVICE TYPE STATE CONNECTION
ens33 ethernet 已连接 ens33
ens35 ethernet 已连接 ens35-static
lo loopback 未托管 --
# 显示特定设备详细信息
[root@server ~ 15:44:04]# nmcli device show ens35
GENERAL.DEVICE: ens35
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:BE:12:A1
GENERAL.MTU: 1500
GENERAL.STATE: 100(已连接)
GENERAL.CONNECTION: ens35-static
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/10
WIRED-PROPERTIES.CARRIER: 开
IP4.ADDRESS[1]: 10.1.8.100/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 10.1.8.0/24, nh = 0.0.0.0, mt = 101
IP6.ADDRESS[1]: fe80::e8a5:817d:8baa:4262/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 101
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
[root@server ~ 15:44:50]# nmcli device show ens35 | grep IP4
IP4.ADDRESS[1]: 10.1.8.100/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 10.1.8.0/24, nh = 0.0.0.0, mt = 101
动态获取
# 查看connection清单
[root@server ~ 15:46:55]# nmcli connection
NAME UUID TYPE DEVICE
ens33 133bffdc-d902-42d8-857d-bcb3edc02adf ethernet ens33
ens35-static 41afed9c-64a2-4df4-bbe8-01bb45605726 ethernet ens35
ens35-auto 23fb2af1-bde6-30fd-a6d6-4c224ccac87a ethernet --
# 删除连接
[root@server ~ 15:48:17]# nmcli connection delete ens35
错误:未知的连接 "ens35"。
错误:无法删除未知连接:'ens35'。
[root@server ~ 15:48:58]# nmcli connection delete ens35-static
成功删除连接 "ens35-static" (41afed9c-64a2-4df4-bbe8-01bb45605726)。
# 添加网卡配置:自动获取IP地址
[root@server ~ 15:49:30]# nmcli connection add type ethernet ifname ens35 con-name ens35-dynamic
连接 "ens35-dynamic" (d6a61206-1164-47a7-afba-91eddcda87da) 已成功添加。
[root@server ~ 15:51:27]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 133bffdc-d902-42d8-857d-bcb3edc02adf ethernet ens33
ens35-auto 23fb2af1-bde6-30fd-a6d6-4c224ccac87a ethernet ens35
ens35-dynamic d6a61206-1164-47a7-afba-91eddcda87da ethernet --
[root@server ~ 15:51:53]# nmcli connection show ens35-dynamic
connection.id: ens35-dynamic
connection.uuid: d6a61206-1164-47a7-afba-91eddcda87da
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens35
connection.autoconnect: 是
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0(default)
connection.auth-retries: -1
connection.timestamp: 0
connection.read-only: 否
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1(default)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.metered: 未知
connection.lldp: default
connection.mdns: -1(default)
connection.llmnr: -1(default)
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: 否
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
# 修改配置指定获取IP方式
[root@server ~ 15:54:19]# nmcli connection modify ens35-dynamic ipv4.method auto
[root@server ~ 15:54:27]# nmcli connection up ens35-dynamic
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/12)
静态配置
# 添加一个静态配置的连接
[root@server ~ 15:55:17]# nmcli connection add type ethernet ifname ens35 con-name ens35-static ipv4.method manual ipv4.addresses 10.1.8.10/24
连接 "ens35-static" (1aa2ebc9-76c7-401b-9a41-cca1f55f0218) 已成功添加。
# 修改 ipv4 相关属性
[root@server ~ 15:56:45]# nmcli connection modify ens35-static ipv4.gateway 10.1.8.2 ipv4.dns 10.1.8.2
# 激活连接
[root@server ~ 15:58:08]# nmcli connection up ens35-dynamic
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/13)
# 查看状态
[root@server ~ 15:58:41]# nmcli connection
NAME UUID TYPE DEVICE
ens33 133bffdc-d902-42d8-857d-bcb3edc02adf ethernet ens33
ens35-dynamic d6a61206-1164-47a7-afba-91eddcda87da ethernet ens35
ens35-auto 23fb2af1-bde6-30fd-a6d6-4c224ccac87a ethernet --
ens35-static 1aa2ebc9-76c7-401b-9a41-cca1f55f0218 ethernet --
其他操作
示例
# 停用连接
[root@server ~]# nmcli connection down ens192-static
成功停用连接 "ens192-static"(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/20)
[root@server ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 5f61d96b-a284-41e9-9bf6-5cf3de6250cd ethernet ens160
ens192-dynamic 27d7dd0a-a5d1-4ed8-81ad-1051f89f89d1 ethernet ens192
ens192-static 652c8436-ac91-4697-b4ad-43d8dac83f8f ethernet --
# 根据需要配置路由
[root@server ~]# nmcli connection modify ens192-static ipv4.routes "192.168.50.0/24 10.1.8.2"
网络配置文件
==提示:==尽量不要通过手动修改配置,来配置网络。
[root@server ~ 15:59:03]# cat /etc/sysconfig/network-scripts/ifcfg-ens35-dynamic
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens35-dynamic
UUID=d6a61206-1164-47a7-afba-91eddcda87da
DEVICE=ens35
ONBOOT=yes
# 静态配置
[root@server ~ 16:01:18]# cat /etc/sysconfig/network-scripts/ifcfg-ens35-static
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=10.1.8.10
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens35-static
UUID=1aa2ebc9-76c7-401b-9a41-cca1f55f0218
DEVICE=ens35
ONBOOT=yes
GATEWAY=10.1.8.2
DNS1=10.1.8.2
文件归档和备份
归档和压缩文件对于创建备份和通过网络传输数据非常有用。
用于创建和使用备份存档的最古老和最常用的命令之一是 tar 命令。
tar 可以将大量文件集合到一个文件(存档)中,还可以使用 gzip,bzip2或xz压缩来压缩存档。
tar 包管理
创建一个 tar 包
# 创建tar包,确保用户有权限访问目标文件
[liang@localhost ~ 16:09:01]$ tar -cf etc.tar /etc
tar: 从成员名中删除开头的“/”
tar: /etc/crypttab:无法 open: 权限不够
tar: /etc/grub.d:无法 open: 权限不够
tar: /etc/pki/CA/private:无法 open: 权限不够
tar: /etc/pki/rsyslog:无法 open: 权限不够
tar: /etc/lvm/archive:无法 open: 权限不够
tar: /etc/lvm/backup:无法 open: 权限不够
tar: /etc/lvm/cache:无法 open: 权限不够
tar: /etc/cron.daily/logrotate:无法 open: 权限不够
tar: /etc/gshadow:无法 open: 权限不够
tar: /etc/shadow-:无法 open: 权限不够
tar: /etc/securetty:无法 open: 权限不够
tar: /etc/shadow:无法 open: 权限不够
tar: /etc/sysconfig/ip6tables-config:无法 open: 权限不够
.....
# 没有权限读取的文件,当然无法打包
# root 用户可以打包所有文件
[root@localhost ~ 16:10:08]# tar -cf etc.tar /etc
tar: 从成员名中删除开头的“/”
# 注意打包的时候,会将文件的第一个字符/剔除掉。解压的时候,默认解压到当前位置。
# 再次打包,如果存在相同的tar包,不会提示是否覆盖
[root@localhost ~ 16:10:25]# tar -cf etc.tar /etc
tar: 从成员名中删除开头的“/”
# 通过添加日期,确保每天打包的文件名不一致
[root@localhost ~ 16:11:54]# ls -l etc*
-rw-r--r-- 1 root root 30085120 5月 16 16:11 etc-20260516.tar
-rw-r--r-- 1 root root 30085120 5月 16 16:10 etc.tar
查看 tar 包中文件
# 查看tar包内容
[root@localhost ~ 16:12:07]# tar -t -f etc-20260516.tar
etc/
etc/fstab
etc/crypttab
etc/mtab
etc/resolv.conf
etc/grub.d/
etc/grub.d/00_header
etc/grub.d/01_users
etc/grub.d/10_linux
etc/grub.d/20_linux_xen
etc/grub.d/20_ppc_terminfo
etc/grub.d/30_os-prober
...
# 配合grep过滤
[root@localhost ~ 16:13:36]# tar -t -f etc-20260516.tar|grep etc/host
etc/host.conf
etc/hosts
etc/hosts.allow
etc/hosts.deny
etc/hostname
提取 tar 包中文件
# 提取所有文件
[root@localhost ~ 16:14:45]# tar -xf etc-20260516.tar
# 查看其中一个子目录
root@localhost ~ 16:16:34]# yum install -y tree
[root@localhost ~ 16:17:49]# tree -L 1 etc/yum
etc/yum
├── fssnap.d
├── pluginconf.d
├── protected.d
├── vars
└── version-groups.conf
4 directories, 1 file
# 提取部分文件
[root@localhost ~ 16:17:59]# tar -t -f etc-20260516.tar|grep etc/host
etc/host.conf
etc/hosts
etc/hosts.allow
etc/hosts.deny
etc/hostname
[root@localhost ~ 16:22:26]# tar -xf etc-20260516.tar $(tar -t -f etc-20260516.tar|grep etc/host)
[root@localhost ~ 16:22:48]# tree etc
etc
├── adjtime
├── aliases
├── aliases.db
├── alternatives
│ ├── ld -> /usr/bin/ld.bfd
│ ├── libnssckbi.so.x86_64 -> /usr/lib64/pkcs11/p11-kit-trust.so
│ ├── mta -> /usr/sbin/sendmail.postfix
│ ├── mta-aliasesman -> /usr/share/man/man5/aliases.postfix.5.gz
│ ├── mta-mailq -> /usr/bin/mailq.postfix
....
611 directories, 1757 files
tar 包中追加文件
[root@localhost ~ 16:27:08]# tar -r -f etc-20260516.tar /usr/share/doc/at-3.1.13/timespec
tar: 从成员名中删除开头的“/”
tar: /usr/share/doc/at-3.1.13/timespec:无法 stat: 没有那个文件或目录
删除 tar 包中文件
[root@localhost ~ 16:29:23]# tar --delete -f etc-20260516.tar usr/share/doc/at-3.1.13/timespec
[root@localhost ~ 16:30:08]# tar -tf etc-20260516.tar |grep timespec
tar 包压缩管理
tar 命令支持多种压缩方法:
gzip:-z, --gzip 文件名通常以.tar.gz结尾。最快,最老,使用最广泛。
bzip2:-j, --bzip2 文件名通常以.tar.bz2结尾。压缩后比gzip小,没gzip使用广泛。
xz:-J, --xz 文件名通常以.tar.xz结尾。比较新,更好的压缩比。
压缩的效果取决于被压缩的对象,例如已经压缩的图片或者rpm包,压缩效果不明显。
# 确保相关压缩工具已经安装了
[root@localhost ~ 16:30:35]# yum install gzip bzip2 xz
# gzip压缩
[root@localhost ~ 16:34:56]# time tar -czf etc.tar.gz /etc
tar: 从成员名中删除开头的“/”
real 0m0.552s
user 0m0.110s
sys 0m0.459s
# bzip2 压缩
[root@localhost ~ 16:35:06]# time tar -cjf etc.tar.bz2 /etc
tar: 从成员名中删除开头的“/”
real 0m1.271s
user 0m1.030s
sys 0m0.264s
# xz 压缩
[root@localhost ~ 16:35:40]# time tar -cJf etc.tar.xz /etc
tar: 从成员名中删除开头的“/”
real 0m5.148s
user 0m2.087s
sys 0m3.100s
[root@localhost ~ 16:36:21]# ls -lh etc.tar.*
-rw-r--r-- 1 root root 8.8M 5月 16 16:35 etc.tar.bz2
-rw-r--r-- 1 root root 10M 5月 16 16:35 etc.tar.gz
-rw-r--r-- 1 root root 7.1M 5月 16 16:36 etc.tar.xz
# 查看压缩的 tar 包不需要指定压缩选项
[root@localhost ~ 16:36:28]# tar -tf etc.tar.gz
etc/
etc/fstab
etc/crypttab
etc/mtab
etc/resolv.conf
etc/grub.d/
etc/grub.d/00_header
etc/grub.d/01_users
etc/grub.d/10_linux
etc/grub.d/20_linux_xen
etc/grub.d/20_ppc_terminfo
etc/grub.d/30_os-prober
etc/grub.d/40_custom
etc/grub.d/41_custom
etc/grub.d/README
etc/grub.d/00_tuned
etc/pki/
....
系统间复制文档
windows 和 Linux 之间传输
xftp 工具
xshell 工具
Linux服务器安装 lrzsz 软件包。该方式传输速度比ftp慢。
[root@localhost ~ 16:39:29]# yum install -y lrzsz
上传:直接将文件拖拽到命令行窗口即可。
拉取:使用 sz 工具,并指定保存位置。
Linux 之间传输
scp 命令
scp,全名secure copy,也就是安全复制,是基于ssh协议,也就是说Linux服务器要开启ssh服务。
为了方便上传和下载,提前配置好秘钥登录服务器。
scp 命令缺点:不管目的位置是否有文件,总是再复制一次,可以理解为全量备份。缺少比对功能。
rsync 命令
Rsync(Remote Synchronize)是一款开源的、快速的、多功能的、远程数据同步备份工具,并且支持多种操作系统平台运行。
Rsync具有本地与远程两台主机之间的数据快速复制同步镜像、远程备份等功能,该功能类似scp,但是优于scp功能,还具有本地不同分区目录之间全量及增量复制数据。
Rsync同步数据镜像时,通过“quick check”算法,仅同步大小或最后修改时间发生变化的文件或目录,当然也可以根据权限,属主等属性变化的同步,所以可以实现快速同步。
前提:客户端和服务端都要提前安装好 rsync 软件包。
# 安装 rsync
[root@localhost ~ 16:49:51]# yum install -y rsync
shell 模式
shell 模式是基于 sshd 服务传送。
语法:
rsync [OPTION]… SRC DEST
rsync [OPTION]… SRC [USER@]HOST:DEST
rsync [OPTION]… [USER@]HOST:SRC DEST
常用选项:
-n 参数执行空运行,与真实执行显示结果一致,但是没有做任何改变。
-v 显示执行过程中详细输出。
-a 代表“archive mode”,同时启用参数:-r -l -p -t -g -o -D
-r 递归同步整个文件夹
-l 同步软连接
-p 保留权限
-t 保留时间戳
-g 保留所属组
-o 保留所有者
-D 同步设备文件
说明:
-A,同步时保留ACLs内容。
-X 同步时保留selinux内容。-a,不同步acl selinux内
# 准备文件
[root@client ~ 16:52:56]# mkdir Pictures
[root@client ~ 16:55:42]# touch Pictures/snap{1..5}.jpg
# 首次同步
[root@client ~ 16:55:49]# rsync -av Pictures root@server
sending incremental file list
created directory root@server
Pictures/
Pictures/snap1.jpg
Pictures/snap2.jpg
Pictures/snap3.jpg
Pictures/snap4.jpg
Pictures/snap5.jpg
sent 345 bytes received 149 bytes 988.00 bytes/sec
total size is 0 speedup is 0.00
# 再次同步
[root@client ~ 16:58:09]# rsync -av Pictures root@server:
root@server's password:
sending incremental file list
Pictures/
Pictures/snap1.jpg
Pictures/snap2.jpg
Pictures/snap3.jpg
Pictures/snap4.jpg
Pictures/snap5.jpg
sent 345 bytes received 115 bytes 102.22 bytes/sec
total size is 0 speedup is 0.00
# 更新部分文件时间戳,再同步
[root@client ~ 16:58:35]# touch Pictures/snap{1,2}*
[root@client ~ 16:59:19]# rsync -av Pictures root@server:
root@server's password:
sending incremental file list
Pictures/snap1.jpg
Pictures/snap2.jpg
sent 235 bytes received 55 bytes 44.62 bytes/sec
total size is 0 speedup is 0.00
# 删除 SRC 中文件,默认不会同步删除DEST中文件
[root@client ~ 16:59:31]# rm -f Pictures/snap5.jpg
[root@client ~ 17:00:14]# rsync -av Pictures root@server:
root@server's password:
sending incremental file list
Pictures/
sent 141 bytes received 20 bytes 35.78 bytes/sec
total size is 0 speedup is 0.00
# 使用选项 --delete 同步删除 DEST 中文件
[root@client ~ 17:00:27]# rsync -av Pictures root@server: --delete
root@server's password:
sending incremental file list
deleting Pictures/snap5.jpg
sent 142 bytes received 35 bytes
将目标文件拉取到本地,操作过程一致。
同步注意事项:
文件访问时间等属性、读写等权限、文件内容等有任何变动,都会被认为修改。
目标目录下如果文件比源目录还新,则不会同步。
源路径的最后是否有斜杠有不同的含义:
有斜杠,只是复制目录中的文件。
没有斜杠的话,不但要复制目录中的文件,还要复制目录本身。
daemon 模式
daemon 模式,不依赖 ssh 服务。
daemon 模式要求:服务端部署 rsynrc 服务。
语法1:源路径或目的路径的主机名后面包含两个冒号。
语法2:rsync://URL格式。
rsync [OPTION]… SRC [USER@]HOST::DEST
rsync [OPTION]… [USER@]HOST::SRC DEST
rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)