[10] Linux系统日常运维

Linux一:VMware的使用和常见问题总结 VMware安装linux系统步骤详解(以国产操作系统麒麟10为例,附截图),以及常见的问题小结,如无法联网、修改静态ip等内容 阅读详情

[10] Linux系统日常运维

10.1 使用w查看系统负载

[root@Temence ~]# w
 19:28:05 up 45 days,  9:20,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    117.136.66.76    19:27    0.00s  0.00s  0.00s w

load average系统负载值

第一个数值表示1分钟内系统的平均负载值
第二个数值表示 5 分钟内系统的平均负载值
第三个数值表示15分钟系统的平均负载值
这个值的意义是,单位时间段内CPU活动进程数。当然,这个值越大就说明服务器压力越大,一般情况下这个值只要不超过服务器的 cpu 数量就没有关系
  • 查看CPU数
[root@localhost ~]# cat /proc/cpuinfo 
逻辑CPU数值,查看 processor值

物理cpu查看关键字physical id

uptime 命令同样也可以查看系统负载,实际上 uptime 得出的结果和 w 的第一行是一致的

10.2 vmstat详解

w 查看的是系统整体上的负载,但是具体是
哪里(CPU, 内存,磁盘等)有压力就无法判断了。通过 vmstat 就可以知道具体是哪里有压力。vmstat 命
令打印的结果共分为 6 部分:procs, memory, swap, io, system, cpu。请重点关注一下 r b si so bi bo
几列。

  • 一秒钟输出一次,总计输出4次
[root@localhost ~]# vmstat 1 4
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 1451332   1112 228832    0    0     8     1   19   29  0  0 100  0  0
 0  0      0 1451332   1112 228832    0    0     0     0   39   47  0  0 100  0  0
 0  0      0 1451332   1112 228832    0    0     0     0   28   41  0  0 100  0  0
 0  0      0 1451332   1112 228832    0    0     0     0   28   35  0  0 100  0  0
  • procs 显示进程相关信息
r:run表示运行和等待cpu时间片的进程数。如果长期大于服务器 cpu 的个数,则说明 cpu 不够用了。 

b:表示等待资源的进程数。比如,等待I/O、内存等,这列的值如果长时间大于 1,则需要关注一下
了
  • memory 内存相关信息
swpd:表示切换到交换分区中的内存数量 
free:当前空闲的内存数量 
buff:缓冲大小,(即将写入磁盘的) 
cache:缓存大小,(从磁盘中读取的
  • swap 内存交换情况
si:由交换区写入到内存的数据量 
so:由内存写入到交换区的数据量 
  • io 磁盘使用情况
bi:从块设备读取数据的量(读磁盘) 
bo:从块设备写入数据的量(写磁盘)
  • system 显示采集间隔内发生的中断次数
in:表示在某一时间间隔中观测到的每秒设备中断数 
cs:表示每秒产生的上下文切换次数 
  • CPU 显示cpu的使用状态
us:显示了用户下所花费 cpu 时间的百分比 
sy:显示系统花费 cpu 时间百分比 
id:表示 cpu 处于空闲状态的时间百分比 
wa:表示 I/O 等待所占用 cpu 时间百分比 
st:表示被偷走的 cpu 所占百分比(一般都为 0,不用关注) 

10.3 top 动态查看负载

动态监控进程所占系统资源,每隔 3 秒变一次,需要关注以下几项:%CPU、 %MEM、COMMAND
top -bn1 它表示非动态打印系统资源使用情况,可以用在 shell 脚本中

10.4 sar命令

监控系统所有资源状态。比如,平均负载、网卡流量、磁盘状态、内存使用等。可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态信息。如果你的系统没有安装这个命令,请使用yum install -y syssta命令安装。初次使用 sar 命令会报错,那是因为 sar 工具还没有生成相应的数据库文件

  • 查看网卡流量 sar -n DEV
[root@localhost ~]# sar -n DEV
Linux 3.10.0-514.el7.x86_64 (localhost.localdomain)     2017年07月11日     _x86_64_       (2 CPU)

07时30分01秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
07时40分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
07时40分01秒     ens33      0.23      0.21      0.02      0.03      0.00      0.00      0.00
07时50分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
07时50分01秒     ens33      0.09      0.09      0.01      0.01      0.00      0.00      0.00
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     ens33      0.16      0.15      0.01      0.02      0.00      0.00      0.00


IFACE 表示设备名称  
rxpck/s 表示每秒进入收取的包的数量  
txpck/s 表示每秒发送出去的包的数量   
rxKB/s 表示每秒收取的数据量(单位 KByte)   
txKB/s 表示每秒发送的数据量
查看某一天的网卡流量历史,使用-f 选项,后面跟文件名
在/var/log/sa/目录下: 
[root@localhost ~]# sar -n DEV -f /var/log/sa/sa20
  • 查看历史负载 sar -q

查看服务器在过去的某个时间的负载状况。

[root@localhost ~]# sar  -q
Linux 3.10.0-514.el7.x86_64 (localhost.localdomain)     2017年07月11日     _x86_64_       (2 CPU)

07时30分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
07时40分01秒         0       203      0.00      0.01      0.05         0
07时50分01秒         2       202      0.04      0.03      0.05         1
平均时间:         1       202      0.02      0.02      0.05         0

10.5 nload命令

监控网卡流量,需要安装 :
yum install -y epel-release 扩展源
yum install -y nload

mark

可以使用左右方向键切换网卡,按q退出

10.6 监控IO性能

  • iostat 命令
[root@Temence ~]# yum install -y sysstat

iostat 1    一秒打印一次io状态
iostat -x       需要关注%util这个值,io等待百分比


  • iotop 命令

动态显示IO排行榜

[root@Temence ~]# yum install -y iotop

10.7 free命令

当前系统的总内存大小以及使用内存的情况

[root@Temence ~]# free 
              total        used        free      shared  buff/cache   available
Mem:         262144        6220       97584        2632      158340      160792
Swap:        131072        1812      129260

total=used+free+buff/cache
avaliable = free+buff/cache
-m          单位kb显示
-h          选择合适单位

关于buff/cache

磁盘数据 --> 内存(cache)--> cpu   
cpu --> 内存(buff)--> 磁盘数据

10.8 ps命令

检测系统进程

[root@Temence ~]# ps aux |grep httpd
root      5082  0.0  0.3   8988   812 pts/0    S+   13:20   0:00 grep --color=auto http

[root@Temence ~]# ps -efl  与 ps aux类似
  • 参数详解
PID :进程的 id,杀掉进程kill  -9  pid
STAT :表示进程的状态,主要有以下几个状态:
D 不能中断的进程(通常为 IO) 
R 正在运行中的进程 
S 已经中断的进程,通常情况下,系统中大部分进程都是这个状态 
T 已经停止或者暂停的进程,如果我们正在运行一个命令,比如说 sleep 10 如果我们按一下 ctrl -z 让
他暂停,那么我们用 ps 查看就会显示 T 这个状态 
W 这个好像是说,从内核 2.6xx 以后,表示为没有足够的内存页分配 
X 已经死掉的进程(这个好像从来不会出现) 
Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。 
< 高优先级进程 
N 低优先级进程 
L 在内存中被锁了内存分页 
s 主进程 
l 多线程进程 
+ 代表在前台运行的进程 

10.9 查看网络状态

打印网络连接状况、系统所开放端口、路由表等信息。

netstat -lnp            打印当前系统启动哪些端口,包括socket套接字文件
netstat  -an            打印所有的网络连接状况
  • Tips
    打印所有网络连接不同状态的数量
[root@Temence ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'

ss -an与netstat类似

10.10 Linux下抓包

tcpdump 和 tshark 工具

  • tcpdump 命令
[root@Temence ~]# tcpdump -nn -i ens33

第一个n         将ip已数字形式显示出来,不加显示为主机名

[root@Temence ~]# tcpdump -nn -i ens33 host 192.168.1.33 and port 80 -c 100 -w 1.cap
host 指定 ip
port 指定端口
not port 过滤掉端口
可以使用and连接条件
-c 指定包数量
-w 写入指定文件里,使用tcp -r 1.cap查看包内容
  • tshark 命令
tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e 
  • 扩展

扩展tcp三次握手四次挥手

tshark几个用法

10.11 Linux网络相关

  • ifconfig查看网卡ip

centos7 默认没有该条命令
需要安装 yum install net-tools
否则只能使用ip addr查看ip信息

-a      查看所有一致网络信息,包括down状态的网卡


  • 关闭开启网卡

针对单独网卡进行操作

ifdown      ens33
ifup        ens33
  • 设置虚拟的网卡ens33:1
拷贝网卡配置文件,并修改配置文件名ens33\:1
修改配置文件内容主要修改NAME、DEVICE字段值
然后重启网络    ifdown ens33 && ifup ens33
  • 查看网卡是否连接
[root@Temence ~]# mii-tool ens33
SIOCGMIIPHY on 'venet0' failed: Operation not supported


如果出现以上使用下面命令
[root@Temence ~]# ethtool ens33


  • 更改主机名

主机名配置文件 /etc/hostname

[root@Temence ~]# hostnamectl set-hostname Duke


  • DNS配置文件

该文件每次重启后会被网卡配置文件里DNS覆盖

[root@Temence ~]# cat /etc/resolv.conf 
nameserver 8.8.8.8
nameserver 74.82.42.42
nameserver 4.2.2.1
nameserver 8.8.4.4


  • hosts文件

本地域名解析,可以指定任意IP 域名对应关系,支持一个ip 多个域名

[root@Temence ~]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost localhost4.localdomain4 localhost4
# Auto-generated hostname. Please do not remove this comment.
23.106.155.35 Temence
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.12 firewalld和netfilter

Centos7中默认将原来的防火墙iptables升级为了firewalld,firewalld跟iptables比起来至少有两大好处:
1、firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效;
2、firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。

mark

  • 关闭selinux
编辑配置文件:/etc/selinux/config
临时关闭:          setenforce 0
获取selinux状态:   getenfore
  • firewalld

firewalld自身并不具备防火墙的功能 和iptables一样需要通过内核的netfilter来实现
firewalld和 iptables一样,作用都是用于维护规则,真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了

  • 关闭centos7中firewalld,开启iptables工具
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# yum install -y iptables-services
[root@localhost ~]# systemctl start iptables.service

10.13 iptables 5表5链

iptables内置了4个表,即filter表、nat表、mangle表、raw表、security表(centos6版本无该表),分别用于实现包过滤,网络地址转换、包重构(修改)、数据跟踪处理、安全管理

  • 表和链的关系
    mark

    链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一 条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据 该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定 义的默认策略来处理数据包。

  • 规则表

1.filter表——三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包  内核模块:iptables_filter.
2.Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT
作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
3.Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle(别看这个表这么麻烦,咱们设置策略时几乎都不会用到它)
4.Raw表——两个链:OUTPUT、PREROUTING
作用:决定数据包是否被状态跟踪机制处理  内核模块:iptable_raw
  • 规则链
1.INPUT——进来的数据包应用此规则链中的策略
2.OUTPUT——外出的数据包应用此规则链中的策略
3.FORWARD——转发数据包时应用此规则链中的策略
4.PREROUTING——对数据包作路由选择前应用此链中的规则 (记住!所有的数据包进来的时侯都先由这个链处理)
5.POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

mark

10.14 iptables语法

规则配置文件路径为:/etc/sysconfig/iptables
- 常用参数

iptables -nvL                   查看规则
iptables -F                     暂时清除规则,重启后失效
service iptables save           保存当前规则
iptables -Z                     清除iptables过滤计数器]
  • iptables的基本语法格式
    mark
iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作]
  • 增加、删除一条规则
[root@localhost ~]#  iptables -A INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP 
省略-t 针对filter 表
-A 表示增加一条规则
-I 表示插入一条规则
-D 删除一条规则
-s 源地址
-p 协议(tcp, udp, icmp)
 --sport/--dport 后跟源端口/目标端口
 -d 目的地址
 -i 指定网卡
 -j 动作(DROP 即把包丢掉,REJECT即包拒绝,ACCEPT 即允许包)。
 -i 指定网卡
  • 更改默认规则
iptables -P INPUT DROP
  • 快速删除一条规则
#  iptables -nvL --line-numbers 
#  iptables -D INPUT 1

利用iptables计数器实现基于端口的网络流量统计

10.15 iptables案例

[root@localhost ~]# cat /usr/local/sbin/iptables.sh 
#! /bin/bash 
ipt="/sbin/iptables" 
$ipt -F 
$ipt -P INPUT DROP 
$ipt -P OUTPUT ACCEPT 
$ipt -P FORWARD ACCEPT 
$ipt -A INPUT -s 192.168.137.0/24 -p tcp --dport 22 -j ACCEPT 
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT 
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT 

如果想开机启动时初始化防火墙*规则,则需要在 /etc/rc.d/rc.local 中添加一行 ―/bin/sh /usr/local/sbin/iptables.sh

10.16 iptales nat表应用


  • 场景

A机器两块网卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联
1.需求一:可以让B机器连接外网

A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward
A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE 
2.需求二:C机器只能和A通信,让C机器可以直接连通B机器的22端口
A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward
A上执行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
A上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130
B上设置网关为192.168.100.1

10.17 iptables规则备份与恢复

  • service iptables save
    将规则保存至/etc/sysconfig/iptables中

  • 将规则保存至另外的一份文件中

iptables-save > myipt.rule 
  • 恢复规则
 iptables-restore < myipt.rule 

10.18 firewalld

  • 开启firewalld
[root@localhost ~]# systemctl disable iptables      禁止
[root@localhost ~]# systemctl stop iptables         停用
[root@localhost ~]# systemctl enable firewalld      允许
[root@localhost ~]# systemctl start firewalld       开启
  • firewalld默认有9个zone,默认zone为public
  • 查看所有zone
[root@localhost ~]# firewall-cmd --get-zones 
work drop internal external trusted home dmz public block
  • 查看默认zone
[root@localhost ~]# firewall-cmd --get-default-zone
public
  • firewalld9个zone
drop(丢弃):任何接收的网络数据包都被丢弃,没有任何回复,仅能有发送出去的网络连接。

block(限制):任何接收的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohibited信息所拒绝。

public(公共):在公共区域内使用,不能相信网络内其他计算机不会对您的计算机造成危害,只能接收经过选择的连接。

external(外部):特别是为路由器启用了伪装功能的外部网,您不能信任来自网络的其他计算机,不能想他他们不会对你的计算机造成危害,只能接收经过选择的连接。

dmz(非军事区):用于您的非军事区内的电脑,此区域内可公开访问,可以有限的进入你的内部网络,仅仅接收经过选择的连接。

work(工作):用于工作区,你可以基本相信网络内的其他电脑不会危害你的电脑,仅仅接收经过选择的连接。

home(家庭):用于家庭网络,你可以基本相信网络内的其他计算机不会危害你的计算机,仅仅接收经过选择的连接。

internal(内部):用于内部网络,你可以基本相信网络内的其他计算机不会危害你的计算机,仅仅接收经过选择的连接。

trusted(信任):可接受所有的网络连接。

10.19 firewalld关于zone的操作

设定默认zone                firewall-cmd --set-default-zone=work 
查指定网卡                  firewall-cmd --get-zone-of-interface=ens33 
给指定网卡设置zone          firewall-cmd --zone=public --add-interface=网卡 
针对网卡更改zone            firewall-cmd --zone=dmz --change-interface=网卡 
针对网卡删除zone            firewall-cmd --zone=dmz  --remove-interface=网卡  
查看系统所有网卡所在的zone   firewall-cmd --get-active-zones    

10.20 firewalld关于service的操作

  • 查看左右的services
[root@localhost ~]# firewall-cmd --get-services
  • 查看当前zone下有哪些service
[root@localhost ~]# firewall-cmd --list-services
  • 把http增加到public zone下面
[root@localhost ~]# firewall-cmd --zone=public --add-service=http
  • 把http从public zone删除
[root@localhost ~]# firewall-cmd --zone=public --remove-service=http
  • zone的配置文件模板
[root@localhost ~]# ls /usr/lib/firewalld/zones/ 
block.xml  drop.xml      home.xml      public.xml   work.xml
dmz.xml    external.xml  internal.xml  trusted.xml
  • 将更改的services写入相应的配置文件,永久生效。之后会在/etc/firewalld/zones目录下面生成配置文件
[root@localhost ~]# firewall-cmd --zone=public --add-service=http --permanent 
success
  • ftp服务自定义端口1121,需要在work zone下面放行ftp
  cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services
 vi /etc/firewalld/services/ftp.xml //把21改为1121
 cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
 vi /etc/firewalld/zones/work.xml //增加一行
 <service name="ftp"/>
 firewall-cmd --reload //重新加载
 firewall-cmd --zone=work --list-services

10.21 Linux任务计划cron

  • 查看corn用法
[root@localhost ~]# cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  • crontab命令
-u:指定某个用户,不加-u 选项则为当前用户 
-e:制定计划任务 
-l:列出计划任务 或者查看/var/spool/cron/root
-r:删除计划任务 
[root@localhost ~]# crontab -e

格式:分,时,日,月,周,命令行
01 10 05 06 3 /bin/bash /usr/local/sbin/123.sh >> /root/1.log 2>> /root/2.log
  • 启动crond服务
[root@localhost ~]# systemctl start crond
[root@localhost ~]# systemctl status crond
  • 备份crontab
    复制/var/spool/cron/root到另外路径即可

  • TIPS
    在脚本中使用命令绝对路径或者将命令声明变量
    每一条任务计划使用追加重定向或者追加错误重定向

10.22 系统服务管理chkconfig

  • chkconfig
[root@localhost ~]# ls /etc/init.d/
functions  netconsole  network  README

--list              查看sysv服务
--level             指定级别
--add               添加启动服务
--del               删除启动服务
  • 指定级别开启或关闭
[root@localhost ~]# chkconfig --level 3 network  off
  • 自定义启动脚本
[root@localhost ~]# mv 123 /etc/init.d/
[root@localhost init.d]# chkconfig --add 123

自定义脚本格式必须要有以下部分:
#! /binbash
# chkconfig: 2345 10 90
# description: 描述内容

10.23 systemd管理服务

centos7 管理服务

  • 查看系统相关服务
[root@localhost ~]# systemctl list-units --all --type=service

去掉--all,只会列出active状态的service
  • 几个常见的服务相关命令

 systemctl enable crond.service     让服务开机启动
 systemctl disable crond            不让开机启动
 systemctl status crond             查看状态
 systemctl stop crond               停止服务
 systemctl start crond              启动服务
 systemctl restart crond            重启服务
 systemctl is-enabled crond          检查服务是否开机启动

10.24 unit介绍

  • 查看系统所有unit
[root@localhost ~]# ls /usr/lib/systemd/system
  • unit分类
service     系统服务 
target      多个unit组成的组
device      硬件设备
mount       文件系统挂载点
automount   自动挂载点
path        文件或路径
scope       不是由systemd启动的外部进程
slice       进程组
snapshot systemd    快照
socket      进程间通信套接字
swap        swap文件
timer       定时器
  • unit相关命令
systemctl list-units                                   列出正在运行的unit
systemctl list-units --all                             列出所有,包括失败的或者inactive的
systemctl list-units --all --state=inactive            列出inactive的unit
systemctl list-units --type=service                    列出状态为active的service
systemct is-active crond.service                       查看某个服务是否为active

10.25 target介绍

系统为了方便管理用target来管理unit,target是unit组合。

  • 列出所有的target
[root@localhost ~]# systemctl list-unit-files --type=target
  • 查看指定target下有哪些unit
[root@localhost ~]# systemctl list-dependencies multi-user.target
  • 查看系统默认target
[root@localhost ~]# systemctl get-default
  • 设置默认target
[root@localhost ~]# systemctl set-default multi-user.target

一个service属于一种类型的unit
多个unit组成了一个target
一个target里面包含了多个service

  • 查看某个服务属于哪个target
[root@localhost ~]# cat /usr/lib/systemd/system/sshd.service 

看[install]部分

10.25 rsync工具介绍

remote synchronize一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。

  • rsync特性
rsync 包括如下的一些特性:

  能更新整个目录和树和文件系统;
  有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
  对于安装来说,无任何特殊权限要求;
  对于多个文件来说,内部流水线减少文件等待的延时;
  能用rsh、ssh 或直接端口做为传输入端口;
  支持匿名rsync 同步文件,是理想的镜像工具;
  增量拷贝;
  • rsync 命令格式
rsync [OPTION]... SRC(源文件/目录) DEST(目标文件/目录          本地拷贝
rsync [OPTION]... SRC [USER@]HOST:DEST                      本地远程至拷贝
rsync [OPTION]... [USER@]HOST:SRC DEST                      远程拷贝至本地
rsync [OPTION]... [USER@]HOST::SRC DEST 
rsync [OPTION]... SRC [USER@]HOST::DEST 
  • rsync 示例
yum install  -y  rsync

[root@localhost ~]# rsync -av /etc/passwd /tmp/q.txt

[root@localhost ~]# rsync -av /tmp/1.txt 192.168.1.11:/tmp/2.txt 
  • rsync 常用选项
-a 包含-rtplgoD
-r 同步目录时要加上,类似cp时的-r选项
-v 同步时显示一些信息,让我们知道同步的过程
-l 保留软连接
-L 同步软链接时会把软连接源文件同时同步
-p 保持文件的权限属性
-o 保持文件的属主
-g 保持文件的属组
-D 保持设备文件信息
-t 保持文件的时间属性
--delte 删除DEST中SRC没有的文件
--exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步
-P 显示同步过程,比如速率,比-v更加详细
-u 加上该选项后,如果DEST中的文件比SRC新,则不同步
-z 传输时压缩
  • rsync详解
拷贝本地源目录至本地目标目录
[root@localhost 111]# rsync -av /root/111/ /tmp/111_dest

-L参数,覆盖-l参数,将源目录中软连接文件指向的源文件,同步到远程目标目录中
[root@localhost 111]# rsync -avL /root/111/ /tmp/111_dest/
[root@localhost 111]# ll /tmp/111_dest/
总用量 1140
-rw-r--r-- 1 root root 1162548 6月  24 20:09 123.txt
drwxr-xr-x 2 root root       6 6月  24 20:10 456
-rw-r--r-- 1 root root    1933 7月   5 00:32 ggg

删除目标目录中比源目录多余的文件
[root@localhost 111]# ls .
123.txt  456  ggg
[root@localhost 111]# ls /tmp/111_dest/
123.txt  456  ggg  new.txt
[root@localhost 111]# rsync -avL --delete /root/111/ /tmp/111_dest
sending incremental file list
./
deleting new.txt

sent 81 bytes  received 16 bytes  194.00 bytes/sec
total size is 1164481  speedup is 12004.96


过滤指定txt文件
[root@localhost 111]# rm -fr /tmp/111_dest/*
[root@localhost 111]# ls .
123.txt  456  ggg
[root@localhost 111]# rsync -avL --exclude "*.txt" /root/111/ /tmp/111_dest/
sending incremental file list
./
ggg
456/

sent 2044 bytes  received 38 bytes  4164.00 bytes/sec
total size is 1933  speedup is 0.93

显示同步过程
[root@localhost 111]# rsync -avP /root/111/ /tmp/111_dest/
sending incremental file list
./
123.txt
     1162548 100%  119.72MB/s    0:00:00 (xfer#1, to-check=2/4)
ggg -> /root/passwd
456/

sent 1162835 bytes  received 41 bytes  2325752.00 bytes/sec
total size is 1162560  speedup is 1.00
  • rsync 同步数据方式

    从一台机器拷贝文件到另一台机器,需要安装openssh-clients

  • ssh同步数据

[root@localhost 111]# rsync -av 111/ 192.168.1.22:/tmp/111_dest

[root@localhost 111]# rsync -av -e "ssh -p 22" 111/ 192.168.1.22:/tmp/111_dest
  • 通过服务方式同步
 rsync 通过服务的方式同步
 要编辑配置文件/etc/rsyncd.conf
 启动服务rsync --daemon
 格式:rsync -av test1/ 192.168.1.22::module/dir/
linux系统全面维护手册 比较全面的linux系统日常运维基本命令以及图文教程,代码可复制!!! 立即下载

相关推荐

CVPR 2026放榜:中稿论文开源代码整理与高效复现指南

在计算机视觉领域,学术论文的发表与代码开源已成为衡量研究工作影响力的双重指标。GitHub作为全球最大的代码托管平台,承载着大量论文的官方实现与社区复现资源,掌握从论文到代码的检索与复现方法,是研究者提升效率的关键。随着CVPR等顶会投稿量激增,录取率持续走低,中稿论文的代码质量与可用性愈发重要。通过系统筛选相关仓库、规范复现流程、善用issues与commit记录,研究者不仅能快速理解前沿方法,还能从中提炼训练技巧与选题方向。本文结合CVPR 2026放榜数据,整理了中稿论文的开源现状与GitHub使用心

weixin_28837817的博客 200

物理服务器紧急救援:CentOS系统密码重置全流程实战指南

通过本文的实战演示,我们系统性地解决了物理服务器密码丢失这一典型运维危机。需要特别强调的是,任何密码重置操作都会在系统日志中留下痕迹(/var/log/audit/audit.log),完成后必须按照企业安全规范执行事后审计流程。建议企业运维团队定期开展"断点恢复演练",将本文所述流程纳入标准应急响应预案。

专注Rust编程与技术分享,涵盖C++、Python等开发实战,新手友好,专注实战,助力编程成长。 1万+

在Rviz仿真环境中搭建传送带

<geometry><material>

qq_58268456的博客 939

linux系统管理与维护

linux可以这样学的呦

ppihyt14的博客 1436

Apollo MPC横纵向耦合控制学习笔记

Apollo MPC横纵向控制原理学习笔记

weixin_39199083的博客 1万+

CMOS 半加器和全加器&&数字集成电路&& Cadence Virtuoso

数字集成电路——半加器和全加器

计科小学生的博客 1万+

Linux系统维护

在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。删除/etc/issue和/etc/issue.net这两个文件,或者把这2个文件改名,效果是一样的。为了不让这些默认的信息泄露出来,我们要进行下面的操作,让它只显示一个"login:"提示符。

3s不会的博客 695

YOLOv13改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣ 已更新种不同的改进方案,专栏内的每篇文章皆,均可顺利运行。2️⃣ 订阅专栏即可进群获取以及从的各种答疑内容。3️⃣ 全新的YOLOv13改进专栏,,只为更好的满足论文发表的要求。专栏内容,专栏实时评分,全网最高,质量保证。🎫。。

Limiiiing的博客 9175

Linux学习笔记——系统维护命令

来自process缩写,显示当前的进程状态。包括:进程的号码,发起者,系统资源,使用占比,运行状态等等。语法格式:ps 参数实例:ps aux #显示进程全部瞬间信息包括:用户,进程ID,CPU占用率,内存占用率,虚拟内存,资源占用率,终端,状态,起始时间,路径(程序)ps -ef #与上面相比有上级进程PPID。

weixin_63033110的博客 1266

历年安徽省省赛AHOI初中组考点分类汇总考点分类汇总

持续更新中.....

weixin_42358969的博客 818

Altium Designer 超详细入门教程

本文是一份Altium Designer新手入门教程,详细介绍了从软件基础到PCB制版的全流程。主要内容包括:软件界面介绍与工程创建方法;原理图设计中的元件放置、电气连线、标注添加等操作;PCB设计的布局布线、铺铜和DRC检查;Gerber和钻孔文件的导出方法。教程还提供了分类整理的实用快捷键表和新手避坑指南,强调原理图编译和DRC检查的重要性。通过本教程,新手可以快速掌握AD基本操作,完成简单电路板的设计与制版文件导出。

学习中...... 849

Linux 操作系统维护

2.1 添加用户。

qq_41765267的博客 406

车载网络测试实操源码_使用CAPL脚本进行UDS刷写及其自动化测试

本文主要讲解如何使用CAPL脚本进行UDS刷写及其自动化测试,并结合了几个测试实例进行介绍,希望对大家有所帮助。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1557

10.1 linux系统日常运维

Linux日常系统运维管理 1. 监控系统的状态 1.1 使用w命令查看当前系统的负载 [root@lz-01 ~]# w 08:33:35 up 7 min, 1 user, load average: 0.00, 0.03, 0.05 USER TTY FRO...

chichou0117的博客 462

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

10个Linux运维神器脚本,助你事半功倍,赶紧收藏!

【实用Linux运维脚本合集】本文分享了10个提高运维效率的Shell脚本,涵盖:1.服务器性能监控脚本(CPU/内存/磁盘);2.自动日志清理工具;3.定时备份脚本;4.服务状态批量检查;5.文件批量重命名工具;6.磁盘空间告警系统;7.僵尸进程清理工具;8.批量权限修改脚本;9.网络连接统计工具;10.NTP时间同步脚本。这些脚本均提供完整代码和配置说明,可直接用于日常运维工作,帮助解决性能监控、日志管理、系统维护等常见问题,显著提升工作效率和系统稳定性。

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 1010

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linux运维入门:10条核心命令解决80%日常操作

在Linux系统管理与运维领域,命令行界面(CLI)是工程师与服务器交互的核心工具。其工作原理基于Shell解释器,通过解析文本指令来调用系统功能,实现对文件、进程、网络等资源的精准控制。掌握命令行操作的技术价值在于提升运维效率、实现自动化任务,并深化对操作系统底层机制的理解。无论是服务器状态监控、日志分析,还是日常的脚本自动化,熟练使用基础命令都是必备技能。本文聚焦于Linux运维中最关键的文件导航、系统监控和文本处理场景,详细解析了包括`ls`、`ps`、`grep`在内的10条高频核心命令。例如,`g

weixin_30571465的博客 306

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

linux服务器系统面试,Linux招聘要求及面试题分享,你会做几个?

Linux运维方面的知识浩如烟海,不同的知识储备对应不同的工资水平,比如我们可以看一下下面的10道题,如果你会做这10道题,那么你就有找到工作的资格了。1、如何添加一块新的50G硬盘到Linux服务器系统作为单独的分区,并正在使用?需要哪些操作步骤?答:a、把硬盘放进服务器并连接b、建立硬盘分区(fdisk命令)c、格式化分区d、挂载分区(可写入到/etc/fatab中,重启自动挂载)2、有个金士...

weixin_39717110的博客 536

UOS系统常用的10个命令的用法

grep -i "error" /var/log/syslog # 搜索日志中的"error"(不区分大小写)cp -r ~/Documents /backup # 递归复制Documents目录到/backup。mv file.txt ~/Downloads/ # 移动文件到Downloads目录。ls -lah /home # 查看/home目录的详细信息(含隐藏文件)cat /etc/os-release # 查看UOS系统版本信息。cd /var/log # 进入系统日志目录。

PHP&网页设计 1038

别再手动敲命令了!用Shell脚本5分钟搞定Linux日常运维(附10个实用脚本)

本文介绍了10个实用的Shell脚本,帮助Linux用户实现日常运维任务的自动化,包括文件重命名、日志清理、服务监控、系统备份等高频场景。通过Shell脚本自动化,可以大幅提升运维效率,减少重复性工作,特别适合系统管理员和开发人员使用。

weixin_28730131的博客 166

Linux常用命令超全整理|新手入门必备,运维日常速查手册

禁止随意使用 rm -rf /:会清空系统所有数据,致命操作生产环境慎用 chmod 777:权限过宽存在安全风险操作重要文件前,优先备份,避免误删误改命令不确定时,可加–help 查看帮助文档,如 ls --help以上就是 Linux 日常开发、运维100%高频常用命令,覆盖目录文件操作、权限管理、系统监控、网络排查、压缩解压等全场景。Linux 命令无需死记硬背,多实操、多复盘,熟练后就能大幅提升操作效率。

BluerCat的博客 359

Top 10 ways to monitor Linux in the console

(pictured below... above is btop) is the first utility everyone recommends to monitor Linux (or any form of UNIX, including macOS) resource usage. It's efficient, available almost everywhere... but it's also a bit basic. It shows essential metrics, but loo

allway2的博客 660

Appsmith 自定义 Widget 开发指南:掌握 Widget Development API,构建可注册、可复用的 UI 组件

Widget(组件)是 Appsmith 应用中最基础的 UI 构成单元。这篇技术指南以仓库文档 [AppsmithWidgetDevelopmentGuide.md](https://link.gitcode.com/i/64b2508996d42260ba5f1322ea04b14c) 为核心骨架,系统讲解 Appsmith 的 **Widget Development API**:从"App

gitblog_07501的博客 570

10款鲜为人知却极其强大的Linux命令行工具

在Linux世界里,命令行工具构成了操作系统核心力量的一部分。其中不乏一些虽不广为人知但却具有显著效益的利器。本文将进一步介绍并拓展之前提及的10款强大而鲜见的Linux命令行工具,通过丰富的实例展示它们的实际应用价值。

极客代码 795

项目1 Linux基础系统安装

本文详细介绍了Linux系统的安装与基础文件管理操作。第一部分通过VMware Workstation演示了从新建虚拟机到安装Rocky10系统的完整过程,包括虚拟机配置、磁盘分区和系统初始化。第二部分讲解了Linux文件管理的基本命令:pwd显示当前目录;ls及其参数(-l长格式、-a显示隐藏文件、-h人性化显示、-t按时间排序、-S按大小排序)用于查看目录内容;cd切换目录;mkdir创建目录等。这些内容为Linux初学者提供了系统安装和文件操作的基础指导。

weixin_59399038的博客 295

2024年不可不知的10个Linux高级命令技巧

例如,使用 `Ctrl+R` 搜索历史命令,或使用 `vim $(fzf)` 快速查找并打开文件,能极大提升命令行操作效率。`rsync` 不仅是文件同步工具,其 `--partial` 选项可以保留中断的传输,`--info=progress2` 选项能显示整体传输进度。虽然 `top` 命令广为人知,但 `htop` 提供了更直观的交互式进程监控视图,支持鼠标操作和颜色高亮。`ncdu` 是一个基于ncurses库的磁盘使用情况分析工具,比传统的 `du` 命令更易于交互。

dlpdsq的博客 370
上一篇: [9] 正则表达式
下一篇: [11]LAMP架构
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值