Linux相关
kaifly
一个“技术扎实,球风朴实”的技术流球员
展开
-
linux curl命令学习
用法: curl [options] [URL...]DESCRIPTION(描述): curl用来‘从server传输数据’或者‘传输数据到server’,支持多种协议(HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP or FILE)。 curl提供了大量有用的技巧像 proxy support, use原创 2016-08-10 10:34:06 · 2889 阅读 · 0 评论 -
drbd+keepalived nfs高可用方案实践
实验环境系统CentOS 6.5 X64Ip:172.16.25.162 172.16.25.163epel源每台主机有/dev/sdb1: 1073 MB挂载点/test供drbd使用先升级nfs先关组件: yum updatenfs-utilsnfs-utils-lib nfs4-acl-tools yum updaterpcbind一、安装配置安装配置drbd:[r原创 2016-10-19 15:54:57 · 5959 阅读 · 6 评论 -
关于linux load average的深入了解
top是运维人员很常用的一个命令,但是关于里面load average这个数值的理解,一直以来都没搞清楚,偶尔碰见服务器上cpu使用率不高但load average数值却很高的情况。在网上找到一篇文章,深受启发,转载过来备查并对原作者表示感谢。通俗来说,判断cpu是否处于“很疲惫”的状态,从两个维度来综合判定:1、cpu使用率 2、load average cpu先解释两个概念:“占有时间转载 2016-08-10 11:58:27 · 429 阅读 · 0 评论 -
Linux crontab下关于使用date命令和sudo命令的坑
想要在root 的crontab里面加一些任务计划,希望以www用户运行命令,并且将输出重定向到某处以当时时间命名的日志文件,大致如下/usr/bin/sudo -u www /usr/local/php/bin/php /www/open/www.php &> /var/log/xxx_cron_log/www_$(date +"%Y%m%d_%H:%M").log此处有两个坑:1、习惯上的`原创 2016-08-10 10:34:00 · 8568 阅读 · 1 评论 -
nagios 流量监控和报警的shell脚本
上下文:我们平台的监控系统用的是cacti+nagios。之前没有加流量异常报警设置,cacti上到是有插件可以时间报警,但是无法使用我们自己的短信接口(nagios用的购买的短信接口),所以想自己写一个脚本配合nagios实现基本的流量异常报警。脚本思路:/proc/net/dev取出当前流经网卡的(接收和发送)的kb总数量,在检测间隔时间后再次读取这两个值, 相减既是间隔时间段内的增量,再根据原创 2016-10-19 16:54:44 · 1680 阅读 · 0 评论 -
利用shell脚本“综合、集中”查看linux server常用软硬件信息
作为运维人员,了解每台服务器的硬件相关信息以及系统相关配置是必不可少的工作。虽然不难,却很零散,信息集中度不高。故而做了做了一套集中展示以上信息的“平台”(其实谈不上平台,收集-整理-展示而已),其原理由一台“监控机”(暂且这么叫吧)运行主脚本,根据记录服务器IP的文件循环处理每台server;配合“被监控机”上的两个awk文件(awk规则),将信息统一收集到“监控机”然后由web server进行原创 2016-10-19 17:22:25 · 1999 阅读 · 0 评论 -
nginx rewrite模块探究与实验
关于nginx中的rewrite,之前的理解总感觉有些不精确。比如以下问题,经过rewrite之后: 什么情况会返回200? 什么情况会返回301/302? 什么情况浏览器里的url不变? 什么情况浏览器里的url会变? 什么情况匹配一次就不再匹配之后的规则或location? 什么情况匹配到一条规则后,会以r原创 2016-10-19 17:01:01 · 2016 阅读 · 0 评论 -
linux查看本机到某特定ip的流量--思路一例
在我之前的文章中分享过“实时”查看Linux某些网卡流量的小脚本查看Linux某些网卡流量的小脚本,今天再分享一个查看本机到具体某个ip间的流量的思路。我有这个需求是因为:我们的存储是Dell存储设备通过nfs协议供多台业务机挂载使用,而我有必要了解每台机器和Dell存储之间的流量。其实,如果仅仅是要看这个流量,iftop这个软件就很好,通过其自身的选项就能满足了,不需要再做什么额外的工作。我的情况原创 2016-08-18 22:30:57 · 7594 阅读 · 0 评论 -
df 命令无法正常显示所有nfs挂载点
有一批最近安装的CentOS 7系统(内核版本:3.10.0-229.el7.x86_64)挂载了三个nfs目录,但是通过df -h命令只能看到其中一个,另外两个挂载点无法显示出来。而较晚安装的另一批CentOS 7系统(内核版本:3.10.0-327.18.2.el7.x86_64)却没有此现象(很奇怪的问题)。一开始怀疑是该内核版本有bug(因为之前的CentOS 6和较新的CentOS 7都没原创 2017-04-09 23:50:59 · 7394 阅读 · 0 评论 -
记一次APP和DB间流量异常问题的排查
情景通过zabbix监控发现有一个应用和数据库之间存在不定时的流量异常(也不频繁),具体为应用server的入向流量和数据库server的出向流量会有短时间(通常在一分钟左右)的激增,甚至快达到千兆网卡的传输上限。分析过程通过症状,几乎可以断定是由于某些sql语句需要返回大量数据导致。但这次问题的分析结果确是很不顺利(其中有我前期方法不当的原因)。初次分析:因为在那之前做了一个针对于故障/异常分析的原创 2017-03-19 15:00:29 · 1497 阅读 · 1 评论 -
在crontab中执行python脚本系统环境变量问题
crontab中执行python脚本报错原创 2016-11-22 16:23:58 · 7087 阅读 · 0 评论 -
利用zabbix生成awstats日志分析图表并用Python调用zabbix API批量添加item
awstats作为一款日志分析软件,功能不错,但是界面过于简单,也没有图表功能,这里我采取了一种变通的方法,将awstats的分析结果(pv、hits(文件数)、bandwidth、visits(独立ip))添加到zabbix,并通过zabbix生成趋势图表。在前两篇文章中,我们队awstats的使用及其工作方式进行了简明扼要的介绍:awstats对每个站点进行分析之后,会生成一个“awstats0原创 2016-10-19 22:50:21 · 2545 阅读 · 0 评论 -
awstats CGI模式下动态生成页面缓慢的改进
本文可以看做是 多server多站点情况下awstats日志分析 这篇文章的下篇,在使用过程中发现awstats在cgi模式下动态生成分析报告慢的问题 (尤其是有些站点每天两个多G的日志,查看起来简直是在考验人的耐性),本文分享一种改造这个缺点的思路。首先再来总结下awstats的处理过程以及查看分析结果的两种方式,来看官方版说明: Process logs: Building/updating原创 2016-10-19 22:39:28 · 1540 阅读 · 0 评论 -
多主机多站点情景下awstats日志分析
情景描述公司web服务器分为三个集群:前台(包括www、news、m等站点);图片(包括img、static等站点);后台(包括user、interface等站点)。这种情况下如何使用awstats进行日志分析呢?这个需求我们很容易想到其中的几个“关键点”如何将各台web server上的站点日志拷贝到awstats server上的合适位置以备处理呢?这好说,写脚本用scp或者rsync嘛!ok原创 2016-10-19 21:49:58 · 2164 阅读 · 0 评论 -
nagios 部署笔记
这几天在捣鼓nagios,各种纠结,现在记录下过程以及遇到的问题,希望可以帮到别人。基本上是参照一位前辈的帖子做的,帖子思路清晰,步骤详细,转载于此。一、Nagios简介650) this.width=650;" style="background-image:none;margin:6px 0px 0px 19px;float:right;border-width:0px;padding-lef转载 2016-08-10 11:58:19 · 1264 阅读 · 0 评论 -
linux 文件和目录权限的意义
基础性的东西,记下来加深记忆权限对文件的重要性文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program)等等。因此,权限对于文件来说,他的意义是这样的:r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);x (execute):该文件具有可以被系统执行转载 2016-08-10 10:32:29 · 289 阅读 · 0 评论 -
关于linux yum源的一些总结
yum是很方便的安装方式,可以自动查找包依赖关系,并且一并安装所有依赖的包。但是经常会遇到两个问题1、Cent OS下默认的源软件数量不够丰富,这里推荐用rpmforge的源,是一个第三方的源,软件资源比较丰富而且也稳定。要使用rpmforge,需要先安装rpmforge。可以去http://pkgs.repoforge.org/rpmforge-release/ 查找适合自己系统的版本。然后安装原创 2016-08-10 10:32:24 · 1091 阅读 · 0 评论 -
linux sort命令
sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式:sort [-bcfMnrtk][源文件][-o 输出文件]补充说明:sort可针对文本文件的内容,以行为单位来排序。参 数: -b 忽略每行前面开始出的空格字符。 -c 检查文件是否已经按照顺序排序。 -f 排序时,忽略大小写字母。 -M 将前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。 -o转载 2016-08-10 10:32:13 · 262 阅读 · 0 评论 -
apache配置文件“注解内容”全翻译
一段时间以来一直自己研究apache。关于配置文件一直都是一知半解。最近照着配置文件,翻着词典,弄清楚了配置文件注解的意思。方便像我一样初学apache的朋友们更快的理解httpd.conf文件。 我的环境是apache2.2.23,版本不同的,配置文件里参数大同小异。 # This is the main Apache HTTP server configuration file. It con原创 2016-08-10 10:32:07 · 1980 阅读 · 0 评论 -
摘抄--apache工作模式详解
服务器优化配置Apache的主要优势就是能更好地支持多处理器,在编译时通过使用--with-mpm选项来决定Apache的工作模式。如果知道当前的Apache使用的工作机制,则可以通过httpd -l命令列出Apache的所有模块,从而就可以知道其工作方式。(1)prefork。如果httpd -l列出了prefork.c,则需要对下面的这段参数进行配置: StartServers 5转载 2016-08-10 10:32:01 · 317 阅读 · 0 评论 -
squid 配置详解--里面有些acl比较有用--而且介绍了日志分析事项
一、软件包a) squid-2.6.STABLE6.tar.bz2二、安装步骤a) Tar jxvf squid-2.6.STABLE6.tar.bz2b) ./configure --prefix=/usr/local/squid --localstatedir=/var/log/squid --sysconfdir=/etc --enable-async-ioc) Maked) Make in转载 2016-08-10 10:31:55 · 2505 阅读 · 0 评论 -
LVM基础概念图文详解
最近学习LVM,对比了一些资料,这篇文章以更加丰富和直观的图例让新手更快的了解LVM。特此记录一下,以备查阅。http://www.baike.com/wiki/LVM转载 2016-08-10 10:31:50 · 776 阅读 · 0 评论 -
linux dd 命令详解
dd使用dd这个linux命令可以创建一定大小文件。linux创建文件命令:dd命令把指定的输入文件拷贝到指定的输出文件中,并且在拷贝的过程中可以进行格式转换。语法:CODE:[Copy to clipboard]dd 〔选项〕QUOTE:if =输入文件(或设备名称)。of =输出文件(或设备名称)。ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。skip = blocks转载 2016-08-10 10:31:44 · 546 阅读 · 0 评论 -
磁盘空间神秘消失事件
新接手一服务器,查看磁盘空间,执行fdisk -l,发现只有一块硬盘,信息如下图650) this.width=650;" src="http://img1.51cto.com/attachment/201312/214942101.jpg" title="image-server-hd.jpg" alt="214942101.jpg" />很明显,磁盘有145.9G的空间。可是运行df -h 几原创 2016-08-10 10:32:40 · 377 阅读 · 0 评论 -
php加速器eAccelerator安装及效果对比
最近想着如何优化一下php,找到了eAccelerator这个开源软件,一下引用一段官方说明介绍eAccelerator:eAccelerator是一款php加速和优化软件,通过将编译后的php缓存起来来提高php的性能。通常能够降低服务器负载并加快php执行1-10倍(官方说法)。注:只支持5.1以上的php版本下面记录一下安装过程以及使用前后的效果对比。1、下载安装 依赖的软件包:aut原创 2016-08-10 10:32:46 · 2651 阅读 · 0 评论 -
关于大量文件的copy,delete操作方式效率初探
拷贝大量文件时,用cp有诸多不便(例如命令意外中断后,无法续传;如果强行覆盖的话,又会浪费时间;不覆盖的话,倒是可以通过echo "n"|cp -r /source /destination来完成,但是经过我的实验,在大量文件下,传递n给cp的覆盖提示也会时间延迟,所以对于已经存在的文件同样存在时间上的浪费)rsync 拥有很多特性,可以避免上面提到cp的种种不便,但是考虑到操作大量文件,就不得不原创 2016-08-10 10:32:57 · 1111 阅读 · 0 评论 -
shell 中test表达式、基本计算、位运算(转)
以下面的格式提供运算表达式:$(( expression )) $ echo $((5*(3+3))) 30 $ result = $(($myvar-10)) shell提供方便的数之间的进制转换: $ echo $((013))#八进制 $ echo $((0xA4))#十六进制 还可以使用以下格式指定 2 到 64 之间的任意进制: $((BASE#NUMBER)) echo $((8#37转载 2016-08-10 10:31:18 · 1199 阅读 · 0 评论 -
linux free命令详解
解释一下Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如:FO[2][1] = 24677460FO[3][2] = 10321516 1 2 3 4 5转载 2016-08-10 10:31:21 · 231 阅读 · 0 评论 -
奇怪的问题:telnet无法连接另一台server的正常的开放端口
问题描述: 有一台server(称为A)作为memcache服务器开放了11211端口,但是另一台server(称为B)无法调用A的memcache,显示无法连接。排查:先在B上用telnet 尝试连接连接A的11211端口,超时。换用另外的机器来telnet A 的11211端口,正常。用B去telnet另一台机器的开放端口,也正常。用B telnet A的其他端口,例如 22,也不正常。原创 2016-08-10 10:34:17 · 26499 阅读 · 5 评论 -
linux 下更改文件名编码方式
情景描述: 网站上有一些课件资源,课件资源是从windows上传到Linux服务器,原文件名为gbk编码模式,而浏览器默认的编码模式为utf-8(服务器默认编码也为utf-8),如此,便导致了类似http://58.22.30.35:800/ruida/Resources/北师大/初中语文/八年级上/本册综合/绿.ppt 这样的域名的无法访问,找不到资源。解决办法: 用convmv工原创 2016-08-10 10:34:11 · 1914 阅读 · 0 评论 -
Linux netstat 命令
netstat 是Linux系统管理常用的一个命令,尤其是在进行网络相关问题排查的时候更是堪称‘瑞士***’。本人一直以来也只是对常用的几个选项如(a 、n、 p、 t、 u)等几个选项较为熟悉,但是对于netstat显示出来的连接的 状态信息,如下图650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/59/E3/wKiom1Tugq原创 2016-08-10 10:33:54 · 228 阅读 · 0 评论 -
linux top 命令详解
top命令是Linux下使用相当频繁的一个命令,可是有一天突然发现,原来自己对他还是知之甚少(尤其是内存状态这块儿),所以照着man文档和参阅了一些资料,整理如下执行方式top -hv | -bcHisSM -d delay -n iterations -p pid [,pid...]其中:h 输出帮助信息;v输出版本信息,这些命令行选项多数可以通过交互式命令改变top输出,进入top以后按‘h’原创 2016-08-10 10:33:48 · 512 阅读 · 0 评论 -
linux chattr命令
chattr 设置linux文件的属性 (参照man手册进行翻译,常用的属性都翻译过来,个人觉得很少用到的属性就没有翻译) 用法:chattr [ -RVf ] +-=[acdeijstuADST] files选项: -R 对目录进行递归处理 -V 显示详细的输出 -F 忽略大部分错误属性: A 当一个文件具有'A'属性时,它的访问时间(atime)记录不会再改变。这可以减少原创 2016-08-10 10:33:20 · 372 阅读 · 0 评论 -
linux下 文件夹和文件的字符集编码方式转换
网站有一些课件资源,课件资源是从windows传到Linux服务器,在windows下文件夹编码方式为GBK,而浏览器默认的编码模式为UTF-8(服务器默认编码也为UTF-8),如此,便导致了类似http://xxxx//Resources/北师大/初中语文/八年级上/本册综合/绿.ppt 这样的域名的无法访问,提示找不到资源。解决办法:用convmv工具将Resources目录下的所有文件的名原创 2016-08-10 10:33:14 · 2862 阅读 · 0 评论 -
linux cut 命令详解
基础: 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。主要参数-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。-c :以字符为单位进行分割。-d :自定义分隔符,默认为制表符。-f :与-d一起使用,指定显示哪个区域。-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由转载 2016-08-10 10:31:39 · 6467 阅读 · 0 评论