【Linux系统】常用命令:进程与网络

现如今各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,对于一个开发人员来说,Linux的学习是必不可少的,对于简单操作Linux系统更是必备的技能,对于Linux系统的重要性在这里不多赘述。于是我在学习过程中,整理了一系列Linux常用命令,文章内容收集整理于网络,相关代码都是经过自己实现验证的,众所周知,Linux系统的相关命令是数不胜数的,学完以至于完全记住是很难的,在这里只是整理一部分常用、实用、后端开发人员必备的命令,当然,个人感觉这些命令不需要刻意去记忆,而是在反复的使用过程中达到孰能生巧的,所以本系列文章目的主要用于方便自己后期的查阅与复习,希望可以帮助到你!

前面主要学习了Linux系统的文本操作的进阶命令、重定向、管道、流、文件打包解压缩等相关命令。详情查阅:【Linux系统】常用命令:文本操作、重定向、管道、流、文件打包解压缩 - 编程那点事儿 (imyjs.cn)

下面学习Linux系统中进程相关与网络相关命令的相关知识。

 

1.进程相关

一般来说程序分为两类,一种是系统程序,一种是应用程序。一个运行中的程序,就可以说是一个进程,进程是占用内存空间的,而当你杀掉进程时,资源也会随之释放。

有关操作系统进程的相关内容看这里:操作系统 (imyjs.cn)

进程类型

  • 用户进程:用户自己的程序,用户可以控制他的开启和关闭。
  • 交互进程: 与用户进行交互操作的进程。
  • 批处理进程:是一个进程集合,按顺序启动其他进程。
  • 守护进程:一直运行的进程.crond。

进程状态

主要是切换进程的状态。我们先了解下 Linux 下进程的五种状态:

  1. 状态码 R :表示正在运行的状态;
  2. 状态码 S :表示中断(休眠中,受阻,当某个条件形成后或接受到信号时,则脱离该状态);
  3. 状态码 D :表示不可中断(进程不响应系统异步信号,即使用kill命令也不能使其中断);
  4. 状态码 Z :表示僵死(进程已终止,但进程描述符依然存在,直到父进程调用 wait4() 系统函数后将进程释放);
  5. 状态码 T :表示停止(进程收到 SIGSTOPSIGSTPSIGTINSIGTOU 等停止信号后停止运行)。

进程属性

  • 进程ID : (pid) 唯一的数字标示,区分不同的进程。
  • 进程有父进程和子进程。
  • 启动进程的用户ID(uid)和用户的属组。
  • 进程状态。
  • 进程的优先级: 取值范围(-20,19) ,数值越小优先级越大,默认为0。
  • 进程链接的终端。
  • 进程占用资源情况。

父子进程的关系

父进程终止时子进程一定终止,而子进程终止时父进程不一定终止。

进程管理工具

ps:   查看进程。
top:  可以查看进程的动态信息。
kill:  杀进程。
pstree:  查看进程树。
pgrep:  搜进程。
lsof:  查看进程打开的文件。

 

ps

静态的显示当前进程的信息 。

命令: ps

语法: ps 参数

常用参数:

  • -a 显示所有用户的进程
  • -r 显示运行中的进程
  • -l 长格式输出
  • -u 按用户名和启动时间的顺序来显示进程,列出此用户运行的进程
  • -f 用树形格式来显示进程
  • -x 显示没有控制终端的进程
  • -ef 列出所有进程,标准格式显示进程unix风格
  • -efH 以乔木状列举出所有进程
  • -aux 通过 CPU 和内存使用来过滤进程 ps -aux | less
  • -aux --sort -pcpuCPU 使用降序排列, -aux --sort -pmem 表示按内存使用降序排列
  • -axjf 以树形结构显示进程, ps -axjf 它和 pstree 效果类似。

 

使用示例

[zhangsan@localhost ~]$ ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.6 128032  6644 ?        Ss   10:54   0:01 /usr/lib
root          2  0.0  0.0      0     0 ?        S    10:54   0:00 [kthread
root          4  0.0  0.0      0     0 ?        S<   10:54   0:00 [kworker
root          6  0.0  0.0      0     0 ?        S    10:54   0:00 [ksoftir
root          7  0.0  0.0      0     0 ?        S    10:54   0:00 [migrati
# .........

 

属性解释

  • USER: 进程的属主
  • PID:进程号,每个进程都有唯一的进程号
  • %CPU: 进程占cpu百分比
  • %MEM: 进程占内存的百分比
  • VSZ: 进程占用虚拟内存大小
  • RSS: 固定内存使用数量
  • TTY:进程运行所在的终端
  • TIME:进程运行时间、进程消耗CPU的时间
  • CMD:产生这个进程的程序名,如果在进程列表中看到有好几行都是同样的程序名,那么就是同样的程序产生了不止一个进程
  • START 启动进程的时间
  • STAT: 进程状态
    • R 正在运行可中在队列中可过行的;
    • S 处于休眠状态;
    • Z 僵尸进程;
    • T 停止或被追踪;
    • N 优先级较低的进程;
    • L 有些页被锁进内存;
    • s 进程的领导者(在它之下有子进程)

总结:用于显示当前系统中的进程, ps 命令显示的进程列表不会随时间而更新,是静态的,是运行 ps 命令那个时刻的状态或者说是一个进程快照。

常用形式

ps -aux  # BSD格式来显示进程
ps -ef  # 标准格式显示进程unix风格
ps -aux --sort %cpu  # 按照cpu从小到大排序
ps -aux --sort -%cpu  # 按照cpu从大到小排序

 

top

与ps相反的是top命令可以查看进程的动态信息。

 

使用示例

top - 13:19:58 up  2:25,  3 users,  load average: 0.00, 0.01, 0.05
Tasks: 113 total,   1 running, 112 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995704 total,   512352 free,   207968 used,   275384 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   637600 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                 
     1 root      20   0  128032   6644   4156 S   0.0  0.7   0:01.40 systemd                                 
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd                                
     4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                            
     6 root      20   0       0      0      0 S   0.0  0.0   0:00.02 ksoftirqd/0                             
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.02 migration/0   
     # .........

 

Ctrl + C 结束查看。

属性解释

前五行是数据的整理统计信息。

第一行:

  • 20:24:16 当前时间
  • up 9:40 系统运行时间,格式为时:分
  • 3 user 当前登陆用户数量
  • load average: 0.01, 0.03, 0.05 系统负载,任务队列平均长度 1分钟,5分钟,15分钟前到现在的平均值。

第二三行:

  • 98 total 进程总数量
  • 1 running 正在运行的进程数量
  • 97 sleeping 睡眠的进程数量
  • 0 stopped 停止的进程数量
  • 0 zombie 僵尸进程数量
  • %Cpu(s):
    • 0.2 us 系统用户进程使用cpu百分比
    • 0.0 sy 内核进程占用cpu百分比
    • 0.0 ni 用户进程空间内改变过优先级的进程占用cpu百分比
    • 99.8 id 空闲cpu百分比
    • 0.0 wa 等待输入输出的cpu时间百分比
    • 0.0 hi 硬件cpu中断占用百分比
    • 0.0 si 软中断占用百分比
    • 0.0 st 虚拟机占用百分比

第四五行:

Mem : (单位K)

  • 995704 total 物理内存总量
  • 530408 free 空闲内存总量
  • 221260 used 使用的物理内存总量
  • 244036 buff/cache 内核缓存的内存量

Swap: (单位K)

  • 2097148 total 交换区总量
  • 2097148 free 空闲交换区总量
  • 0 used 使用的交换区总量
  • 623812 avail Mem 可利用的内存量

标题行:

  • PID: 进程id
  • USER: 进程所有者用户名
  • PR: 优先级
  • NI: 进程优先级,nice值,负值 -> 高优先级,正值 -> 低优先级
  • VIRT: 虚拟内存总量 virt=swap + res
  • RES: 实际使用内存大小
  • SHR: 共享内存大小
  • S: 进程状态
d: 不可中断的睡眠状态
r: 运行
s: 睡眠
t: 跟踪
z: 僵尸进程
  • %CPU: 上次更新到现在cpu时间占用百分比
  • %MEM: 进程使用物理内存百分比
  • TIME+: 进程使用cpu的时间总计,单位 1/100秒
  • COMMAND: 命令行

kill

结束一个进程, kill + PID

常用参数:

  • -l 列出所有信号名称
  • -s 指定发送信号(默认)
  • -u 指定用户
kill 956 # 结束进程号为956的进程
kill 956 957 # 结束多个进程
kill -9 7291 # 强制结束进程
kill -u lisi # 杀死指定用户的所有进程

 

前台进程 & 后台进程

默认情况下,用户创建的进程都是前台进程,前台进程从键盘读取数据,并把处理结果输出到显示器。例如运行 top 命令,这就是一个一直运行的前台进程。

后台进程的优点是不必等待程序运行结束,就可以输入其它命令。

在需要执行的命令后面添加 & 符号,就表示启动一个后台进程。

&

启动后台进程,它的缺点是后台进程与终端相关联,一旦关闭终端,进程就自动结束了

cp name.csv name-copy.csv &

 

nohup

使进程不受挂断(关闭终端等动作)的影响。

nohup cp name.csv name-copy.csv

 

nohup 命令也可以和 & 结合使用。

nohup cp name.csv name-copy.csv &

 

bg

使一个“后台暂停运行”的进程,状态改为“后台运行”。

bg %1 # 不加任何参数的情况下,bg命令会默认作用于最近的一个后台进程,如果添加参数则会作用于指定标号的进程

 

实际案例1:

1. 执行 grep -r "log" / > grep_log 2>&1 命令启动一个前台进程,并且忘记添加 & 符号
2. ctrl + z 使进程状态转为后台暂停
3. 执行 bg 将命令转为后台运行

 

实际案例2:

前端开发时我们经常会执行 yarn start 启动项目
此时我们执行 ctrl + z 先使其暂停
然后执行 bg 使其转为后台运行
这样当前终端就空闲出来可以干其它事情了,如果想要唤醒它就使用 fg 命令即可(后面会讲)

 

jobs

显示当前终端后台进程状态。

[root@lion ~]# jobs
[1]+  Stopped                 top
[2]-  Running                 grep --color=auto -r "log" / > grep_log 2>&1 &

 

fg

fg 使进程转为前台运行,用法和 bg 命令类似。

我们可以使程序在后台运行,成为后台进程,这样在当前终端中我们就可以做其他事情了,而不必等待此进程运行结束。

守护进程

一个运行起来的程序被称为进程。在 Linux 中有些进程是特殊的,它不与任何进程关联,不论用户的身份如何,都在后台运行,这些进程的父进程是 PID 为1的进程, PID 为1的进程只在系统关闭时才会被销毁。它们会在后台一直运行等待分配工作。我们将这类进程称之为守护进程 daemon

守护进程的名字通常会在最后有一个 d ,表示 daemon 守护的意思,例如 systemdhttpd

 

2.网络相关

ip

Linux ip 命令与ifconfig命令类似,但比 ifconfig 命令更加强大,主要功能是用于显示或设置网络设备。

ip 命令是 Linux 加强版的的网络配置工具,用于代替 ifconfig 命令。

语法

ip [ OPTIONS ] OBJECT { COMMAND | help }

OBJECT 为常用对象,值可以是以下几种:

OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm | token }

常用对象的取值含义如下:

  • link:网络设备
  • address:设备上的协议(IP或IPv6)地址
  • addrlabel:协议地址选择的标签配置
  • route:路由表条目
  • rule:路由策略数据库中的规则

OPTIONS 为常用选项,值可以是以下几种:

OPTIONS={ -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size] }

常用选项的取值含义如下:

  • -V:显示命令的版本信息;
  • -s:输出更详细的信息;
  • -f:强制使用指定的协议族;
  • -4:指定使用的网络层协议是IPv4协议;
  • -6:指定使用的网络层协议是IPv6协议;
  • -0:输出信息每条记录输出一行,即使内容较多也不换行显示;
  • -r:显示主机时,不使用IP地址,而使用主机的域名。
  • help 为该命令的帮助信息。

操作

ip link show                     # 显示网络接口信息
ip link set eth0 up             # 开启网卡
ip link set eth0 down            # 关闭网卡
ip link set eth0 promisc on      # 开启网卡的混合模式
ip link set eth0 promisc offi    # 关闭网卡的混个模式
ip link set eth0 txqueuelen 1200 # 设置网卡队列长度
ip link set eth0 mtu 1400        # 设置网卡最大传输单元
ip addr show     # 显示网卡IP信息
ip addr add 192.168.0.1/24 dev eth0 # 设置eth0网卡IP地址192.168.0.1
ip addr del 192.168.0.1/24 dev eth0 # 删除eth0网卡IP地址

ip route show # 显示系统路由
ip route add default via 192.168.1.254   # 设置系统默认路由
ip route list                 # 查看路由信息
ip route add 192.168.4.0/24  via  192.168.0.254 dev eth0 # 设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口
ip route add default via  192.168.0.254  dev eth0        # 设置默认网关为192.168.0.254
ip route del 192.168.4.0/24   # 删除192.168.4.0网段的网关
ip route del default          # 删除默认路由
ip route delete 192.168.1.0/24 dev eth0 # 删除路由

 

ifconfig

查看 ip 网络相关信息,用于显示或设置网络设备。可设置网络设备的状态,或是显示目前的设置。

如果命令不存在的话, 执行命令 yum install net-tools 安装。

如果提示报错“Could not resolve host: mirrorlist.centos.org; Unknown error”

看这里:“Could not resolve host: mirrorlist.centos.org; Unknown error”解决方法 - 编程那点事儿 (imyjs.cn)

参数说明:

  • add<地址> 设置网络设备IPv6的IP地址。
  • del<地址> 删除网络设备IPv6的IP地址。
  • down 关闭指定的网络设备。
  • <hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
  • io_addr<I/O地址> 设置网络设备的I/O地址。
  • irq<IRQ地址> 设置网络设备的IRQ。
  • media<网络媒介类型> 设置网络设备的媒介类型。
  • mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
  • metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
  • mtu<字节> 设置网络设备的MTU。
  • netmask<子网掩码> 设置网络设备的子网掩码。
  • tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
  • up 启动指定的网络设备。
  • -broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
  • -pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
  • -promisc 关闭或启动指定网络设备的promiscuous模式。
  • [IP地址] 指定网络设备的IP地址。
  • [网络设备] 指定网络设备的名称。

使用示例

[zhangsan@localhost ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.149.129  netmask 255.255.255.0  broadcast 192.168.149.255
        inet6 fe80::5e2:18ef:9603:c4f8  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:39:e7:e1  txqueuelen 1000  (Ethernet)
        RX packets 2624  bytes 205379 (200.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1625  bytes 160830 (157.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[zhangsan@localhost ~]$ 

 

参数解析

  • ens33网卡名称
    • flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
      • UP:表示“接口已启用”。
      • BROADCAST :表示“主机支持广播”。
      • RUNNING:表示“接口在工作中”。
      • MULTICAST:表示“主机支持多播”。
      • MTU:1500(最大传输单元):1500字节
    • inet 192.168.149.129 netmask 255.255.255.0 broadcast 192.168.149.255
      • inet :网卡的IP地址。
      • netmask :网络掩码。
      • broadcast :广播地址。
    • inet6 fe80::5e2:18ef:9603:c4f8 prefixlen 64 scopeid 0x20<link>
      • 网卡的IPv6地址
    • ether 00:0c:29:39:e7:e1 txqueuelen 1000 (Ethernet)
      • 连接类型:Ethernet (以太网) HWaddr (硬件mac地址)
      • txqueuelen (网卡设置的传送队列长度)
    • RX packets 2624 bytes 205379 (200.5 KiB)
      RX errors 0 dropped 0 overruns 0 frame 0

      • RX packets 接收时,正确的数据包数。
      • RX bytes 接收的数据量。
      • RX errors 接收时,产生错误的数据包数。
      • RX dropped 接收时,丢弃的数据包数。
      • RX overruns 接收时,由于速度过快而丢失的数据包数。
      • RX frame 接收时,发生frame错误而丢失的数据包数。
    • TX packets 1625 bytes 160830 (157.0 KiB)
      TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

      • TX packets 发送时,正确的数据包数。
      • TX bytes 发送的数据量。
      • TX errors 发送时,产生错误的数据包数。
      • TX dropped 发送时,丢弃的数据包数。
      • TX overruns 发送时,由于速度过快而丢失的数据包数。
      • TX carrier 发送时,发生carrier错误而丢失的数据包数。
      • collisions 冲突信息包的数目。
  • lo 表示本地回环( Local Loopback 的缩写,对应一个虚拟网卡)可以看到它的 ip 地址是 127.0.0.1 。每台电脑都应该有这个接口,因为它对应着“连向自己的链接”。这也是被称之为“本地回环”的原因。所有经由这个接口发送的东西都会回到你自己的电脑。看起来好像并没有什么用,但有时为了某些缘故,我们需要连接自己。例如用来测试一个网络程序,但又不想让局域网或外网的用户查看,只能在此台主机上运行和查看所有的网络接口。例如在我们启动一个前端工程时,在浏览器输入 127.0.0.1:3000 启动项目就能查看到自己的 web 网站,并且它只有你能看到。
  • wlan0 表示无线局域网(上面案例并未展示)。

host

ip 地址和主机名的互相转换。

[zhangsan@localhost ~]$ host
-bash: host: 未找到命令
[zhangsan@localhost ~]$ 

 

软件安装

yum install bind-utils需要root权限!

基础用法

[zhangsan@localhost ~]$ host www.imyjs.cn
www.imyjs.cn has address 36.248.208.245
Host www.imyjs.cn not found: 3(NXDOMAIN)
Host www.imyjs.cn not found: 3(NXDOMAIN)
[zhangsan@localhost ~]$ host 13.229.188.59
59.188.229.13.in-addr.arpa domain name pointer ec2-13-229-188-59.ap-southeast-1.compute.amazonaws.com.

 

ssh 连接远程服务器

通过非对称加密以及对称加密的方式(同 HTTPS 安全连接原理相似)连接到远端服务器。

ssh 用户@ip:port

1、ssh root@172.20.10.1:22 # 端口号可以省略不写,默认是22端口
2、输入连接密码后就可以操作远端服务器了

配置 ssh

config 文件可以配置 ssh ,方便批量管理多个 ssh 连接。

配置文件分为以下几种:

  • 全局 ssh 服务端的配置: /etc/ssh/sshd_config
  • 全局 ssh 客户端的配置: /etc/ssh/ssh_config(很少修改);
  • 当前用户 ssh 客户端的配置: ~/.ssh/config

【服务端 config 文件的常用配置参数】

服务端 config 参数 作用
Port sshd 服务端口号(默认是22)
PermitRootLogin 是否允许以 root 用户身份登录(默认是可以)
PasswordAuthentication 是否允许密码验证登录(默认是可以)
PubkeyAuthentication 是否允许公钥验证登录(默认是可以)
PermitEmptyPasswords 是否允许空密码登录(不安全,默认不可以)

[注意] 修改完服务端配置文件需要重启服务 systemctl restart sshd

【客户端 config 文件的常用配置参数】

客户端 config 参数 作用
Host 别名
HostName 远程主机名(或 IP 地址)
Port 连接到远程主机的端口
User 用户名

配置当前用户的 config

# 创建config
vim ~/.ssh/config

# 填写一下内容
Host lion # 别名 
        HostName 172.x.x.x # ip 地址 
  Port 22 # 端口  
  User root # 用户

这样配置完成后,下次登录时,可以这样登录 ssh lion 会自动识别为 root 用户。

[注意] 这段配置不是在服务器上,而是你自己的机器上,它仅仅是设置了一个别名。

免密登录

ssh 登录分两种,一种是基于口令(账号密码),另外一种是基于密钥的方式。

基于口令,就是每次登录输入账号和密码,显然这样做是比较麻烦的,今天主要学习如何基于密钥实现免密登录。

基于密钥验证原理

客户机生成密钥对(公钥和私钥),把公钥上传到服务器,每次登录会与服务器的公钥进行比较,这种验证登录的方法更加安全,也被称为“公钥验证登录”。

具体实现步骤

1、在客户机中生成密钥对(公钥和私钥) ssh-keygen(默认使用 RSA 非对称加密算法)

运行完 ssh-keygen 会在 ~/.ssh/ 目录下,生成两个文件:

  • id_rsa.pub :公钥
  • id_rsa :私钥

2、把客户机的公钥传送到服务

执行 ssh-copy-id root@172.x.x.xssh-copy-id 它会把客户机的公钥追加到服务器 ~/.ssh/authorized_keys 的文件中)。

执行完成后,运行 ssh root@172.x.x.x 就可以实现免密登录服务器了。

配合上面设置好的别名,直接执行 ssh lion 就可以登录,是不是非常方便。

wget

可以使我们直接从终端控制台下载文件,只需要给出文件的HTTP或FTP地址。

wget [参数][URL地址]

wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip

wget 非常稳定,如果是由于网络原因下载失败, wget 会不断尝试,直到整个文件下载完毕。

常用参数

  • -c 继续中断的下载。

备份

scp

它是 Secure Copy 的缩写,表示安全拷贝。 scp 可以使我们通过网络,把文件从一台电脑拷贝到另一台电脑。

scp 是基于 ssh 的原理来运作的, ssh 会在两台通过网络连接的电脑之间创建一条安全通信的管道, scp 就利用这条管道安全地拷贝文件。

scp source_file destination_file # source_file 表示源文件,destination_file 表示目标文件

其中 source_filedestination_file 都可以这样表示: user@ip:file_nameuser 是登录名, ip 是域名或 ip 地址。 file_name 是文件路径。

scp file.txt root@192.168.1.5:/root # 表示把我的电脑中当前文件夹下的 file.txt 文件拷贝到远程电脑
scp root@192.168.1.5:/root/file.txt file.txt # 表示把远程电脑上的 file.txt 文件拷贝到本机

rsync

rsync 命令主要用于远程同步文件。它可以同步两个目录,不管它们是否处于同一台电脑。它应该是最常用于“增量备份”的命令了。它就是智能版的 scp 命令。

软件安装
yum install rsync
基础用法
rsync -arv Images/ backups/ # 将Images 目录下的所有文件备份到 backups 目录下
rsync -arv Images/ root@192.x.x.x:backups/ # 同步到服务器的backups目录下
常用参数
  • -a 保留文件的所有信息,包括权限,修改日期等;
  • -r 递归调用,表示子目录的所有文件也都包括;
  • -v 冗余模式,输出详细操作信息。

默认地, rsync 在同步时并不会删除目标目录的文件,例如你在源目录中删除一个文件,但是用 rsync 同步时,它并不会删除同步目录中的相同文件。如果向删除也可以这么做: rsync -arv --delete Images/ backups/

 

微信关注

编程那点事儿

本站为非盈利性站点,所有资源、文章等仅供学习参考,并不贩卖软件且不存在任何商业目的及用途,如果您访问和下载某文件,表示您同意只将此文件用于参考、学习而非其他用途。
本站所发布的一切软件资源、文章内容、页面内容可能整理来自于互联网,在此郑重声明本站仅限用于学习和研究目的;并告知用户不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
如果本站相关内容有侵犯到您的合法权益,请仔细阅读本站公布的投诉指引页相关内容联系我,依法依规进行处理!
作者:理想
链接:https://www.imyjs.cn/archives/834
THE END
二维码
【Linux系统】常用命令:进程与网络
现如今各种场合都有使用各种 Linux 发行版,从嵌入……
<<上一篇
下一篇>>
文章目录
关闭
目 录