一万年来谁著史,三千里外欲封侯。这篇文章主要讲述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、权重值不能为零
推荐阅读
- shell脚本之if条件测试语句
- 通过挂载镜像来重置windows server 2016的系统管理员密码
- 如何在EasyDSS内调用的iframe地址设置自动播放()
- PostgreSQL一键安装入门教程
- EasyNVR通过在线状态搜索条件搜索通道出现数据不正确的问题解决
- 第一个鸿蒙工程-Java版(含模拟器创建)
- H265流媒体播放器EasyPlayer如何设置视频关闭播放()
- Kubernetes中部署PrometheusAlert并使用mysql作后端存储
- #聊一聊悟空编辑器#体验一下新版编辑器