[10] Linux系统日常运维

10.1 使用w查看系统负载

[root@Temence ~]# w19: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 st0  0      0 1451332   1112 228832    0    0     8     1   19   29  0  0 100  0  00  0      0 1451332   1112 228832    0    0     0     0   39   47  0  0 100  0  00  0      0 1451332   1112 228832    0    0     0     0   28   41  0  0 100  0  00  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.00IFACE 表示设备名称
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

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

10.6 监控IO性能

  • iostat 命令
[root@Temence ~]# yum install -y sysstatiostat 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      129260total=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协议也不理解也可以实现大部分功能。

  • 关闭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版本无该表),分别用于实现包过滤,网络地址转换、包重构(修改)、数据跟踪处理、安全管理

  • 表和链的关系

    链(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——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

10.14 iptables语法

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

iptables -nvL                   查看规则
iptables -F                     暂时清除规则,重启后失效
service iptables save           保存当前规则
iptables -Z                     清除iptables过滤计数器]
  • iptables的基本语法格式
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/servicesvi /etc/firewalld/services/ftp.xml //把21改为1121cp /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]部分
  • 扩展

    1. anacron
    2. xinetd服(默认机器没有安装这个服务,需要yum install xinetd安装)
    3. systemd自定义启动脚本

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.txtsent 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.txt1162548 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/

[10] Linux系统日常运维相关推荐

  1. Linux 系统日常运维九大技能和运维网络知识总结

    一.Linux 系统日常运维九大技能 1.安装部署 方式:U盘,光盘和网络安装 其中网络安装已经成为了目前批量部署的首选方式:主要工具有Cobbler和PXE+kickstart 可以参考如下链接内容 ...

  2. linux服务器运维操作命令,Windows和Linux系统服务器运维基本操作指令

    原标题:Windows和Linux系统服务器运维基本操作指令 服务器总归是机械化设备,在运行过程中难免会出现一些问题,遇到这些问题怎么办?请运维人员代维修?即使请也会造成,运维人员维护不及时和成本太高 ...

  3. linux系统基本运维命令

    linux系统基本运维命令 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 linux系统基本运维命令 查看操作系统版本信息 ...

  4. linux系统可视化运维工具,界面酷炫,功能强大!这款 Linux 性能实时监控工具超好用!老斯机搞它!...

    对于维护.管理Linux系统来说,它的性能监控非常重要,特别是实时监控数据,这个数据有利于我们判断服务器的负载压力,及时调整资源调配,也有助于更好的服务于业务.所以,今天民工哥给大家安利一款 Linu ...

  5. Linux系统运维九大技能及知识总结,90%日常运维

    Linux 系统运维九大技能及知识总结,搞定 90% 日常运维 | 周末送资料 以下内容包括RedHat和CentOS运维工作中常用的几大技能,并总结了系统运维中网络方面的规划.操作及故障处理等知识. ...

  6. 高性能Linux服务器运维实战(系统基础运维)

    第1章 Linux基础命令的使用 1.1 Linux命令行与shell 1.1.1命令是Linux的精髓 X-window运行在命令行下的一个应用程序 1.1.2用户和操作系统内核之间通信的桥梁she ...

  7. linux学习笔记-日常运维

    系统日常运维管理查看系统负载命令: w   重点是 load average后面的三个数字.  1,表示1分钟之内的系统的平均负载.                                   ...

  8. 干货丨Ceph 日常运维常见难点及故障解决

    本文转自twt社区. [导读]Ceph 日常运维中有几类常见问题,社区日前组织Ceph领域专家进行了线上的答疑交流,对社区会员提出的部分典型问题进行了分享解答,以下是分享内容,希望能为大家提供答案和一 ...

  9. 【9.30】日常运维——rsync、系统日志

    [9.30]日常运维--rsync.系统日志 10.28 rsync 工具介绍 10.29/10.30 rsync 常用选项 10.31 rsync 通过ssh同步 10.32/10.33 rsync ...

最新文章

  1. CVPR 2020 Oral 文章汇总,包括论文解读与代码实现
  2. JavaScript基础---语言基础(1)
  3. ospf序列号等问题
  4. UVALive - 3126 Taxi Cab Scheme(最小路径覆盖-二分图最大匹配)
  5. 分组 查出id最大的_MySQL分组top N问题疑点
  6. java linux ping ip,java linux ping命令
  7. Java 内存、HashMap、Hashtable面试题
  8. 【语音处理】基于matlab GUI音频数据处理【含Matlab源码 1734期】
  9. Asp.Net服务器控件添加OnClientClick属性绑定
  10. bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测
  11. QQ农场外挂、QQ牧场外挂专偷QQ号
  12. cu.html 光猫 管理密码,中兴ZXHN F607联通光猫管理员账号密码获取方法
  13. matlab 灰度转伪彩色,matlab将灰度图像伪彩色图像处理(自己编写的color function)...
  14. 嵌入式linux调节lcd背光,背光调节的软件设计 - 基于嵌入式Linux的LCD背光调节及驱动实现...
  15. eMMC的使用寿命分析
  16. 汇编实验——乐曲程序(两只老虎)
  17. ad16自动布线设置规则_AD16快捷方式和常规设置
  18. canvas乱码的处理
  19. 中国大学慕课第六周编程题
  20. 学习Nginx看这篇就够了

热门文章

  1. 接入Google fit指南
  2. 博客新地址http://zhen217.iteye.com/
  3. 向右看齐 (排序问题)
  4. Can't execute code from a freed script
  5. WORD如何设置打印? 三分钟学会WORD打印技巧
  6. 「解决方案」预付费水电集团物业解决方案
  7. 计算机网络笔记Part2 物理层(Physical Layer)
  8. 响铃:迎风而起的布料B2B平台,谁才是决定生死的命脉?
  9. img图片加载失败时的处理
  10. 串口硬盘和并口硬盘的区别