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

[经验分享] 菜鸟学Linux 第084篇笔记 lvs持久连接和awk简单使用

[复制链接]

尚未签到

发表于 2019-1-6 12:16:20 | 显示全部楼层 |阅读模式
  菜鸟学Linux 第084篇笔记 lvs持久连接和awk简单使用
  内容总览
  lvs持久连接
  awk, gawk 简单使用
  awk变量
  awk操作符
  awk 模式和动作 pattern action
  awk 数组 array
  LVS持久连接
  无论使用任何算法,LVS持久都能实现在一定时间内,将来自同一个客户端请求派发至
  此前选定的RS。
  持久连接模板(内存缓冲区)
  每一个客户端 及分配给它的RS的映射关系
  在基于ssl,需要用到持久连接
  PPC 将来自于同一个客户端对同一个服务的请求,始终定向至此前选定的RS
  持久端口连接
  ipvsadm -A -t 192.168.11.122:80 -p 300
  PCC 将来自于同一个客户端对所有端口的请求,始终定向至此前选定的RS,
  持久客户端连接  (把所有端口全部都定义为集群服务,一律向RS转发)
  ipvsadm -A -t 192.168.11.122:0 -p 300
  PNMPP 持久防火墙标记连接
  作用是将pcc的功能再进行优化,pcc虽然可以持久客户端连接,但是会将所有的
  port都会转给real server, 而PNMPP则可以限制其只有某些个端口进行转发
  原理, 是使用iptables标记某些端口将这些端口标记为一个数字
  然后ipvsadm -f flag支持接收标记,所以当收到所标记的数值时就会将
  其调度到real server
  For example, say we want to create one-hour persistent port affinity between
  ports 80 and 443 on VIP 172.16.100.6 for real servers 172.16.100.7 and 172.16.100.8 :
  /sbin/iptables -F -t mangle
  /sbin/iptables -A PREROUTING -i eth0 -t mangle -p tcp  -d 172.16.100.6
  --dport 80 -j MARK --set-mark 1 (此为一行命令)
  /sbin/iptables -A PREROUTING -i eth0 -t mangle -p tcp  -d 172.16.100.6
  --dport 443 -j MARK --set-mark 1 (此为一行命令)
  /sbin/ipvsadm -A -f  1 -s rr -p 3600
  /sbin/ipvsadm -a -f  1 -r 172.16.100.7 -m
  /sbin/ipvsadm -a -f  1 -r 172.16.100.8 -m
  配置持久连接
  ipvsadm -A|E ... -p timeout
  timeout: 持久连接时长,默认300秒,单位是秒
  rsync server (inotify+rsync server)
  更新速度比较慢,尤其文件比较大时,再用此种方式不太合适
  金山开发的工具 sersync 基于C++开发的
  支持并发多线程复制,执行性能非常好
  可以接收inotify发来的信息
  适用服务器比较多, 需要复制大文件的环境比较适用
  (自行研究并配置使其可工作)
  grep  文本过虑器
  grep 'pattern' input_file ...
  sed 流编辑器 实现对文本编辑
  sed 'COMMAND/pattern/' input_file...
  awk 报告生成器
  格式化以后,显示
  nawk
  gawk
  # awk [options] 'script' file file2, ...
  # awk [options] 'PATTERN { action }' file file2 ...
  $0 表示一整行
  $1, $2, $.... 表示切片的第N个
  print 打印其后边所定义的变量或字符
  printf 打印其后边所定义的变量或字符(有格式的输出)
  printf format, item1,item2..
  format格式以%开头,后跟一个字符,如下:
  %c character显示字符的ASCII码
  %d, %i 十进制整数
  %e, %E 科学计数法显示数值
  %f  显示浮点数
  %g, %G 以科学计数法的格式或浮点数的格式显示数值
  %s  显示字符串
  %u  无符号整数
  %%  显示%自身
  修饰符
  N 显示宽度(N要替换为数值)
  - 左对齐
  + 显示数值符号
  如 # awk -F: '{printf "%-15s%i\n",$1,$3}' /etc/passwd
  awk变量
  记录变量
  OFS="#" output Filed Separater,定义输出分隔符为#
  FS=":"  定义输入分隔符为:
  awk -F: 也可以定义输入分隔符
  数据变量
  NR  the number of input records,
  awk已经处理过的行数,如果多个文件,行数会累加
  FNR 与NR不同的是,FNR是记录已经被处理过的当前文件的行数
  NF Number of field, 显示行共有的字段个数,注意数值会随着分隔符不同而变化
  自定义变量
  定义变量test并打印出该变量
  # awk -v test="hello test" 'BEGIN{print test}'
  第二种定义变量并打印方式
  # awk 'BEGIN{test="hello test";print test}'
  awk的操作符:
  1.算术操作符:
  -x: 负值
  +x: 转换为数值;
  x^y:
  x**y: 次方
  x*y: 乘法
  x/y:除法
  x+y:
  x-y:
  x%y:
  2.字符串操作符:
  只有一个,而且不用写出来,用于实现字符串连接;
  3.赋值操作符:
  =
  +=
  -=
  *=
  /=
  %=
  ^=
  **=
  ++
  --
  需要注意的是,如果某模式为=号,此时使用/=/可能会有语法错误,应以/[=]/替代;
  4.布尔值
  awk中,任何非0值或非空字符串都为真,反之就为假;
  5.比较操作符:
  x < yTrue if x is less than y.
  x  yTrue if x is greater than y.
  x >= yTrue if x is greater than or equal to y.
  x == yTrue if x is equal to y.
  x != yTrue if x is not equal to y.
  x ~ yTrue if the string x matches the regexp denoted by y.
  x !~ yTrue if the string x does not match the regexp denoted by y.
  subscript in array  True if the array array has an element with
  the subscript subscript.
  6.表达式间的逻辑关系符:
  &&
  ||
  7.条件表达式:C语言的语法
  selector?if-true-exp:if-false-exp
  8.函数调用:
  function_name (para1,para2)
  awk的模式和action:
  awk 'program' input-file1 input-file2 ...
  其中的program为:
  pattern { action }
  pattern { action }
  ...
  一、常见的模式类型:
  1、Regexp: 正则表达式,格式为/regular expression/
  如: # awk -F: '/^\(/sbin\)/{print $NF}' /etc/passwd
  2、expresssion: 表达式,其值非0或为非空字符时满足条件,
  如:$1 ~ /oot$/ 或 $1 == "root",用运算符~(匹配)和!~(不匹配)。
  # awk -F: '$7~"bash$"{print $1,$7}' /etc/passwd
  匹配$7里以bash结尾的行 并显示$1,$7
  3、Ranges: 指定的匹配范围,格式为pat1,pat2
  # awk -F: '"^r","^m"{print $1,$3,$7}' /etc/passwd
  表示匹配从第一个pattern到pattern所匹配到的行
  4、BEGIN/END:特殊模式,仅在awk命令执行前运行一次或结束前运行一次
  如# awk -F: '$3

运维网声明 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-659948-1-1.html 上篇帖子: LVS负载均衡DR模型实验 下篇帖子: LVS服务脚本及后端服务健康状态检查
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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