Linux 学习 16

一万年来谁著史,三千里外欲封侯。这篇文章主要讲述Linux 学习 16相关的知识,希望能为你提供帮助。
1、使用rsync+inotify实现/www目录实时同步
环境:centos8-01  192.168.30.8  inotify+rsync 客户端
    centos8-02  192.168.30.18  rsync 服务器端

centos8-01:
安装相关软件:
yum -y install rsync inotify-tools

创建共享目录:
mkdir /www

centos8-02:
安装rsync-daemon包,启动服务
yum -y install rsync-daemon

systemctl start rsyncd

更改rsync配置文件,设置同步的目标文件夹
mkdir /backup

vim /etc/rsync.conf
uid = root
gid = root
use chroot =no
max connections = 0
ignore errors
exclude = lost+found/
log file= /var/log/rsync.log
pid file = /var/run/rsyncd.pid
lock file= /var/run/rsyncd.lock
reverse lookup = no

[backup]
path = /backup
read only = no
auth users = rsyncuser
secrets file = /etc/rsync.pass

创建同步时使用的用户名和密码文件:
echo \'rsyncuser:123456\' > /etc/rsync.pass
chmod 600 /etc/rsync.pass

centos8-01:
测试:
rsync f1.txt rsyncuser@192.168.30.18::backup

可在客户端指定密码文件,这样可以取消输入密码的步骤,改成了非交互方式
centos8-01:
echo \'123456\' > /etc/rsync.pass
chmod 600 /etc/rsync.pass
测试:
rsync -az--password-file=/etc/rsync.pass f9.txtrsyncuser@192.168.30.18::backup

centos8-01:
设置脚本,将inotify和rsync结合,一旦检测文件有变化,立即同步
#!/bin/bash
inotifywait -mrq --exclude=".*\\.swp|swx" --timefmt \'%Y-%m-%d %H:%M:%S\' --format \'%T %w %f\'\\
-e create,delete,moved_to,close_write,attrib /www/ | while read DATE TIME DIR FILE;
do
psync -az --delete--password-file=/etc/rsync.pass /www/ rsyncuser@192.168.30.18::backup & & \\
echo "${DATE}${TIME} ,file was backuped" > > /var/log/sync.log
done



2、使用iptable实现: 放行telnet, ftp, web服务,放行samba服务,其他端口服务全部拒绝
环境:centos8-02  192.168.30.18    测试客户端
    centos8-01 192.168.30.8      各个服务和防火墙主机
确认测试的服务端口都已开启:



centos8-01: 设置防火墙策略
允许了控制主机:
iptables -A INPUT -s 192.168.30.1 -j ACCEPT

拒绝其它所有访问:
iptables -A INPUT -j REJECT

放行允许的服务端口:
iptables -I INPUT 2 -p tcp -m multiport --dports 23,21,20,80,445,139 -j ACCEPT

测试:



3、NAT原理总结
    可以让公司内部的网络主机通过单个公网出口地址访问公网资源
    分为SNAT和DNAT
    SNAT :让内网主机通过出口公网地址去访问公网资源,内部实际是修改了源IP地址
    DNAT:将内网中的某个服务开放给Internet访问,从外来说是隐藏了目标IP地址


4、iptables实现SNAT和DNAT,并对规则持久保存
环境:centos8-01 192.168.30.8  外网主机地址
          centos8-02  192.168.30.18 防火墙外网地址 , 172.35.30.10 防火墙内网地址
    centos6    172.35.30.20  内网客户端地址
SNAT实现:
iptables -t nat -A POSTROUTING -s 172.35.30.0/24 -j SNAT --to-source 192.168.30.18

测试:
【Linux 学习 16】


DNAT实现:
iptables -t nat -A PREROUTING -d 192.168.30.18 -p tcp --dport 22 -j DNAT --to-destination 172.35.30.20:22

对规则永久保存:
iptables-save .> /data/iptables-rules

还原规则:
iptables-restore < /data/iptables-rules



5、LVS调度算法总结
      分为两大类:静态方法、动态方法
      静态方法:不考虑后端服务器的状态,比如负载等,只通过算法本身进行调度
                四种静态算法:
                      RR: roundrobin,   轮询,如第一个请求来了,就给第一个RS,第二个给第二个RS,依次类推,然后再从头开始
                      WRR: weighted RR ,加权轮询,将性能好的机器的权重设高点,这样请求来的时候侧重调度到性能好的机器上
                      SH:source hashing ,对请求者的IP地址做哈希,得到的值和后端RS数量做取模,然后在转发到对应的RS机器上,可实现session 绑定
                      DH:destination hashing,请求某个资源时,会经过LVS,LVS对报文中的目标地址做哈希,再转发到RS服务器上,后面如果还有请求相同的资源就一直转发此RS服务器  


        动态方法:根据每个RS的负载状态及调度算法进行调度,根据overhead值来调度, overhead值越大负载越高
                        LC : least connections 最少连接算法, 适用于长连接的应用
                                  overhead=activeconns*256 + inactiveconns
                                  activeconns 活动连接,有数据传输                                          
                                  inactiveconns 非活动连接,只建立了连接,但是没有数据传输


                        WLC   weighted LC   默认调度算法
                                  overhead=(activeconns*256 + inactiveconns)/ weight
                        WLC调度算法缺陷:在系统初始的时候,连接和非连接都是0,那么无论怎么除,都是0,导致权重高的机器可能没有被调度
                                         
                        SED: shortest expection delay   ,初始连接高权重优先
                                  overhead=(activeconns+1)*256 / weight


                          NQ: never queue   ,第一轮平均分配,后续SED


                          LBLC:locality-based LC,动态DH算法,根据负载状态实现正向代理
                          LBLCR: LBLC with Replication , 带复制功能的LBLC,解决LBLC负载不均衡,从负载重的复制到负载轻的RS


在centos8上,新增的调度算法: FO 和 OVF
          FO:   weighted fail over ,遍历所有RS的列表,找到未过载且权重最高的RS,进行调度,未过载的设置:未设置IP_VS_DEST_F_OVERLOAD标志


          OVF: overflow-connection   基于RS的活动连接数和权重值实现调度,将新连接调度到权重值最高的RS上,直到连接数量超过权重值,再调度到下一个权重值最高的RS上,一个可用的RS需要同时满足如下条件:
                      1、未过载,未设置IP_VS_DEST_F_OVERLOAD标志
                      2、RS服务器当前活动连接数量小于其权重值
                      3、权重值不能为零























    推荐阅读