设为首页 收藏本站
查看: 1075|回复: 0

[经验分享] LVS的持久连接和awk/sed/grep的学习笔记

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2019-1-6 08:37:39 | 显示全部楼层 |阅读模式
  一、LVS持久连接的模式

  1、PPC(persistent port connection)

  ipvsadm -A|E 192.168.10.1:80 -p 600
  定义VIP为192.168.10.1director的80端口为持久连接,也就是只把web服务加入集群服务,可以通过改变端口实现不同服务的持久连接且把不同服务加入集群服务

  

  2、PCC(persistent client connection)

  ipvsadm -A|E 192.168.10.1:0 -p 600

  定义VIP为192.168.10.1 director的所有端口为持久连接,也就是把该VIP上的所有服务加入集群服务

  

  3、PNMPP
  # iptables -t mangle -A PREROUTING -d $VIP -p tcp --dport $ClusterPORT -i $INCARD -j MARK --set-mark 10
  ipvsadm -A --f 10 -s rr

  通过iptables给不同服务做MARK标记,把不同服务定义为同一组,这样再通过ipvsadm的-f选项来实现对同一组服务的持久连接,且把它们加入集群服务

  

  二、AWK的学习笔记
  

  awk是通过对目标文件进行处理,处理完了之后输出报告。对文件的处理过程是以行为单位的,即逐行处理,然后对每行的字段进行分割,通过模式匹配后进行处理最后形成报告。

  

  1、AWK命令格式

  awk [options] 'script' file1 file2, ...
  awk [options] 'pattern { action }' file1 file2, ...
  

  2、[options]

  -F : 用来指定分隔符,awk默认是以空格为字段分割符的,cut默认是以tab为字段分割符的

  cut -d'' -f1 -d 指定分隔符 -f选择分割后的字段

  -v : 用来自定义变量

  awk -v a="hai lang" 'BEGIN{printf a}

  注:变量引用不需要$

  也可以通过BEGIN{}语句实现自定义变量
  awk 'BEGIN{a="hai lang" ; printf a}'

  注:语句之间需要用";"隔开

  

  3、awk中的内置变量

  FS(filed separator)    它是用来对读取文本,所使用的字段分隔符

  RS(record separator)    它是用来对读取文本,所使用的行分隔符

  OFS(outfile filed separator)   它是用来对,进过处理后的文本,输出字段分隔符
  ORS(outfile row separator)   它是用来对,进行处理后的文本,输出行分隔符

  

  NR(number of record) awk会对多个文件进行处理,而NR显示目前处理的行号(统计所有文
  件的行号,该行号即是相对于所有文件的行号)

  NF(number of filed)    通过NF可以显示当前行的总字段数,$NF显示最后一个字段

  FNR     awk会对多个文件处理,但是FNR只显示,当前正在处理的文件的行号

  4、print和printf

  它们都是输出函数,都要匹配一定的格式,print默认换行的

  %s 以字符串格式输出

  %d 以整形格式输出

  %f 以浮点型格式输出

  N  确定输出字符的长度

  -  左对齐输出

  '{printf  "%-15s %d\n",$1,$3}'

  $1以字符串的格式输出,共输出15个字符串,且是左对齐,不足的字符以空代替,多的不显示

  $3以整型输出

  $1和$3以enter作为分行符   

  

  5、[pattern]   

  pattern用来匹配在文本中的内容,也就是进行过滤合适的文本
  

  1、Regexp: 正则表达式,格式为/regular expression/
  2、expresssion: 表达式,其值非0或为非空字符时满足条件
  x < y  | x  y  |  x >= y |   x == y  |  x != y | x ~ y |   x !~ y
  3、Ranges: 指定的匹配范围,格式为pat1,pat2
  4、BEGIN/END:特殊模式,仅在awk命令执行前运行一次或结束前运行一次
  通过正则表达式,字符运算符,数字运算符,布尔运算符等,进行模式匹配达到过滤的效果,最后对匹配到的结果进行处理。

  

  6、[action]

  对匹配到的文本,进一步采取的操作
  

  ------------------
  if-else
  -----------------
  语法:if (condition) {then-body} else {[ else-body ]}
  

  awk -F: '{if ($1=="root") print $1, "Admin"; else print $1, "Common User"}' /etc/passwd
  先判断每行的第一个字段是不是root,如果是root则打印该行第一个字段,并且标记为admin

  如果不是root也打印该行第一个字段,并且标记为common user
  

  awk -F: '{if ($1=="root") printf "%-15s: %s\n", $1,"Admin"; else printf "%-15s: %s\n", $1, "Common User"}' /etc/passwd
  和上面一样只是改变了输出格式,如果只有一个if else可以不加{}
  

  awk -F: -v sum=0 '{if ($3>=500) sum++}END{print sum}' /etc/passwd
  判断每一行的第三个字段,如果大于等于500,就把sum变量加一,END是在处理完所有行,要退出之前
  执行打印sum的统计值
  

  ----------------
  while
  ----------------
  语法: while (condition){statement1; statment2; ...}
  awk -F: '{i=1;while (i

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-659830-1-1.html 上篇帖子: 第 二 十 八 天 :LB 负 载 均 衡 搭 建 之 LVS 下篇帖子: LVS + keepalive 前端高可用负载均衡器的实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表