Monthly Archives: March 2015

zabbix 多端口监控 MySQL

By | March 18, 2015

介绍 使用 zabbix 的 low-level 自动发现功能完成单主机多端口的监控, 详见low_level_discovery, 整体上监控类似 percona 的 zabbix 监控插件, 不过使用 mymonitor.pl 替换了脚本 ss_get_mysql_stats.php, 而且配置有点不同. 具体代码及配置详见: zabbix_mysql 1. 结构说明: zabbix_mysql/ |– README.md |– bin | |– get_mysql_stats_wrapper.sh # 对 mymonitor.pl 运行结果的一个封装脚本, 默认 5 分钟运行一次 | |– mymonitor.pl # 等同 ss_get_mysql_stats.php 脚本 | `– mysql_port.pl # 自动发现 MySQL 端口的脚本, 返回 json 格式的输出 |– install.sh… Read More »

Perl one line command – 常用正则

By | March 4, 2015

Perl one line command – 常用正则 本章说明一些常用的正则表达式, 比如匹配 IP 地址, HTTP 头信息, email 地址等. 1. 匹配 IPv4 地址 IP 地址格式 xxx.xxx.xxx.xxx, 使用 \d 来匹配数字,通用的做法如下: /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/ {1,3}表示匹配最少一个, 最多3个数字,这个表达式没有检查地址的有效性(不能大于255),所以也能匹配出无效的地址,但是对于有效的地址都能匹配出来; 我们可以发现前三部分是一样的, 可以改成: /^(\d{1,3}\.){3}\d{1,3}$/

Perl one line command – 输出和删除行

By | March 4, 2015

Perl one line command – 输出和删除行 本章介绍使用 Perl 命令行输出和删除指定的行内容, 比如 输出/删除 指定的行, 重复的行, 匹配的行等. 输出和删除操作是相对的( -i 参数 ), 明白了如何输出, 删除也就尽在掌握. 1. 输出文本 n 行内容 perl -ne ‘print ; exit’ file perl -i -ne ‘print ; exit’ file

Perl one line command – 转义和替换

By | March 3, 2015

Perl one line command – 转义和替换 本章使用 Perl 命令行来更改, 转换, 替换文本内容, 同时会介绍 base64 的编解码, url 转义, HTMl转义等相关的信息. 1. ROT13 详见 http://en.wikipedia.org/wiki/ROT13 ROT13(回转13位,rotateby13places,有时中间加了个减号称作ROT-13)是一种简易的置换暗码,比如 A 加密后为 N, B 为 M, a 为 n, b 为 m .它是一种在网路论坛用作隐藏八卦、妙句、谜题解答以及某些脏话的工具,目的是逃过版主或管理员的匆匆一瞥, 本身上ROT13是它自己逆反;也就是说,要还原ROT13,套用加密同样的算法即可得,故同样的操作可用再加密与解密. 我们使用 y/// 和 tr/// 操作符说明如下: perl -le ‘$string = “hello”; $string =~ y/A-Za-z/N-ZA-Mn-za-m/; print $string’ perl -le ‘$string =… Read More »

Perl one line command – 字符串与数组

By | March 3, 2015

Perl one line command – 字符串与数组 本章使用 Perl 命令行说明如何创建字符串和数组, 包括生成密码, 创建指定长度字符串, 查找字符串中的数值等, 也会介绍一些特殊变量比如 $, 和 @ARGV 等, 同样以示例说明. 1. 生成并打印字符 # perl -le ‘print a..z’ abcdefghijklmnopqrstuvwxyz 在 Perl 中 .. 是范围操作符, 在列表环境中, 上述命令表示打印从 a 到 z 的字母, 也可以使用 $, 和 join 来指定字母之间的分隔符: # perl -le ‘print join “, “,(a..z)’ a, b, c, d, e, f,… Read More »

Perl one line command – 计算

By | March 2, 2015

Perl one line command – 计算 本章使用 Perl 命令行进行一些计算方面的示例说明, 比如查找一行中最大/最小的元素, 统计, 移动和替换单词以及计算日期等. 这章里会用到 -a, -M, -F等命令行参数, 也会讲解一些特殊符及数据结构方面的信息. 1. 检查素数 perl -lne ‘(1x$_) !~ /^1?$|^(11+?)\1+$/ && print “$_ is prime number”‘ file 先来看看素数的定义: 一个大于1的自然数,除了1和它本身外,不能整除以其他自然数的数称为素数, 否则是合数. 命令行首先将数字转换成一元数据(比如 4 表示为 1111, 5 表示为 11111, 等等), 再用 !~ 排除匹配的正则表达式里的两个条件, 如果都没有匹配, 则该数是素数; 再来看看正则表达式里面的内容, 首先 ^1?$ 表示 0 或 1, 满足一个大于… Read More »

Perl one line command – 空白与数字

By | March 2, 2015

Perl one line command – 空白与数字 一. 空白处理 本节说明 Perl 命令行对空白(空行, 制表符)的一些常见处理, 同样以一些示例来说明. 1. 多倍行距 使用特殊符 $\ 来完成多倍行距, $\ 特殊符相当于在每个 input 行后面额外增加了指定的 $\ 变量, 如果要将行距扩充两倍, 可以如下操作: perl -pe ‘$\ = “\n”‘ file 在每行后面再增加一个换行符, 转换为如下代码: while() { $\ = “\n”; print $_ or die “-p failed: $!\n”; }