• 跟着ttlsa一起学zabbix监控呗

    转至http://www.ttlsa.com/zabbix/follow-ttlsa-to-study-zabbix/

    一段时间没写文章了,最近忙着组建团队,和以往不同的是这次组建的不是运维团队而是开发团队,精力消耗会比较多。之前和群主北爷、tonyty163讨论这整理点资料,各自写点自己想写的东西,我们称之为系列吧

    [Read More…]

  • git使用

    ############ git远程仓库 ##############
    windows下通过git实现远程仓库必须使用https代替ssh
    git remote add origin https://github.com/zhengdazhi/learngit.git

    linux 下可以使用ssh
    git remote add origin git@github.com:zhengdazhi/learngit.git

    克隆远程仓库
    git clone git@github.com:zhengdazhi/gitskills.git
    git clone https://github.com/zhengdazhi/gitskills.git

    将本地内容推送到远程的git
    git push origin master

    ############## git 分支命令 ##############
    查看分支:git branch
    创建分支:git branch <name>
    切换分支:git checkout <name>
    创建+切换分支:git checkout -b <name>
    合并某分支到当前分支:git merge <name>
    删除分支:git branch -d <name>

    用git log –graph命令可以看到分支合并图
    ############# 搭建git #########
    yum install git
    useradd git
    修改git用户shell
    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
    mkdir pyscripts
    cd pyscripts
    git –bare init
    ——-克隆远程仓库——–
    git clone git@192.168.15.103:/pyscripts
    ——-连接远程仓库——-
    git remote add origin git@192.168.15.103:/pyscripts

  • shell算术运算

    1、bc计算
    bc_test=`echo “10 + 1″ | bc`
    file_size=`echo “${data_size[“${i}”]} + ${index_size[“${i}”]}” | bc`
    根据不同系统可能遇到如下错误
    (standard_in) 1: illegal character: N
    (standard_in) 1: illegal character: U
    (standard_in) 1: illegal character: L
    (standard_in) 1: illegal character: L
    (standard_in) 1: syntax error
    (standard_in) 1: illegal character: N
    (standard_in) 1: illegal character: U
    (standard_in) 1: illegal character: L
    (standard_in) 1: illegal character: L

    2、expr计算
    expr_text=`expr 1 + 1`
    file_size=`expr ${data_size[“${i}”]} + ${index_size[“${i}”]}`
    可能遇到错误如下
    expr: non-integer argument

    3、$(( ))计算
    file_size=$((${data_size[“${i}”]} + ${index_size[“${i}”]}))
    并且可以进行进制转换
    十六进制转十进制:
    [root@localhost ~]$ ((num=0xff));
    [root@localhost ~]$ echo $num;
    255
    [root@localhost ~]$ ((num=16#ff));
    [root@localhost ~]$ echo $num;
    255
    base-32转十进制:
    [root@localhost ~]$ ((num=32#ffff));
    [root@localhost ~]$ echo $num;
    507375
    base64转十进制:
    [root@localhost ~]$ ((num=64#abc_));
    [root@localhost ~]$ echo $num;
    2667327
    二进制转十进制
    [root@localhost ~]$ ((num=2#11111111));
    [root@localhost ~]$ echo $num;
    255
    十进制转八进制
    这里使用到:bc外部命令完成。bc命令格式转换为:echo “obase=进制;值”|bc
    [root@localhost ~]$ echo “obase=8;01234567″|bc
    4553207
    二进制,十六进制,base64转换为 十进制也相同方法。
    [root@localhost ~]$ echo “obase=64;123456″|bc
    30 09 00

  • awk sed grep 常用命令

    查找指定时间的php慢日志
    sed -n ‘/09-Nov-2015 09:55/,/09-Nov-2015 10:15/p’ slow.log > 20151109

    统计慢查询日志中最多的数量
    grep -v “^$” 20151109 | cut -d ” ” -f 3,2| sort | uniq -c | sort -k1,1nr | more

    查看php套接字被多少个进程访问
    netstat -anp|grep /dev/shm/fastcgi.sock |wc –l

    匹配ip地址
    grep -E -o “([0-9]{1,3}[\.]){3}[0-9]{1,3}”

    统计某类文件总大小
    du tbBlogArticle2016* |awk ‘BEGIN{count=0;size=0;} \
    {count = count + 1; size = size + $1/1024;} \
    END{print “Total count ” count; \
    print “Total size ” size/1024 ” GB” ; \
    print “Avg size ” size / count “MB”}’

    批量换主机名
    ipaddr=`ifconfig eth0 | grep “inet addr” | awk -F ‘:’ ‘{print $2}’ | awk ‘{print $1}’ | awk -v OFS=’-‘ -F ‘.’ ‘{print $1,$2,$3,$4}’`
    hostname ip-${ipaddr}
    sed -i “s/^\(HOSTNAME=\).*/\1ip-${ipaddr}/” /etc/sysconfig/network

    对指定的行号的行的 结尾添加字符串
    lines=`wc -l 1.txt | awk ‘{print $1}’`
    echo $lines
    for (( i=1;i<=$lines;i++ ))
    do
    #echo $i
    b_str=`sed -n “${i}p” 1.txt`
    echo ${b_str}
    sed -i “${i}s/$/ ${b_str}/” getway.log_bak
    #对指定的行号的行的 结尾添加字符串
    #sed -i ‘1s/$/ aaa/’ a.txt
    # echo $i
    # sed -i ”
    done

    #批量替换关键字
    grep –color=auto -r “192.168.1.1” . | awk -F: ‘{print $1}’ | xargs sed -i ‘s/192.168.1.1/10.1.1.1/g’

    #awk打印指定行到最后行
    awk ‘{for (i=3;i<=NF;i++) printf $i ” “;printf “\n”}’

  • python常用模块安装

    安装pip
    1、下载pip https://pypi.python.org/pypi/pip#downloads
    pip-9.0.1.tar.gz
    2、进入目录 python setup.py install
    3、将 C:\Python27\Scripts 添加到环境变量PATH中

    安装numpy 模块
    1、先安装VCForPython27.msi
    2、下载numpy-1.11.2.zip
    3、解压numpy-1.11.2.zip 进入目录执行python setup.py install

    安装pylab支持绘图
    1、下载Matplotlib http://www.lfd.uci.edu/~gohlke/pythonlibs
    2、由于是系统是32位系统并且是python2.7 因此选择 matplotlib-1.5.3-cp27-cp27m-win32.whl
    3、pip install matplotlib-1.5.3-cp27-cp27m-win32.whl

  • tomcat 基于域名的虚拟主机和访问日志

    默认情况下tomcat应用程序目录是tomcat基目录下的webapps目录,将项目访问webapps目录后进行访问需要使用http://ip/项目名称,如果想直接访问需要配置server.xml,修改<Hosts>中的path=”” 为空,因为默认情况下path是指向 webapps/ROOT 目录。

    [Read More…]

  • Tomcat用普通用户身份运行

    在Linux下默认使用tomcat目录下bin/start.sh 脚本来启动tomcat,这样做简单,但是如果需要让tomcat监听在80端口就必须使用root用户来启动tomcat,这样在安全上存在风险,可以通过使用jsvc来启动tomcat。

    参考资料

    http://commons.apache.org/proper/commons-daemon/jsvc.html

    版本说明
    system: Red Hat Enterprise Linux Server release 5.5
    Architecture: amd64
    Tomcat Server version: Apache Tomcat/7.0.64
    Java version: “1.7.0_60”
    [Read More…]

  • vmstat和iostat解读

    1、vmstat

    刚启动不久,即使采集增量报告,第一行的值还是显示自系统启动以来的平均值,第二行开始展示现在正在发生的情况。

    procs
    r这列一列显示了多个进程在等待CPU,b列显示多少进程在这不可中断的休眠(通常意味着它们在等待I/O,例如磁盘、网络、用户输入等)。
    memory
    swpd列显示多少块被切换出到了磁盘(页面交换)。剩下的三个列显示了多少块是空闲的(未被使用)、多少块正诶用作缓冲,以及多少正在被操作系统的缓存。
    swap
    这些列显示页面交换活动:每秒有多少块正在被换入(从磁盘)和换出(到磁盘)。他们比健康swpd列重要多了。大部分时间我们喜欢看到si和so的列是0,并且我们明确不希望看到没秒超过10个块。突发性的高峰一样很糟糕。
    io
    这些列显示了多少块从块设备读取(bi)和写出(bo)。这通常反应了磁盘I/O。
    system
    这些列显示了没秒中断(in)和上下文切换(cs)的数量。
    cpu
    这些列显示所有的CPU时间花费在各类操作的百分比,包括执行用户代码(非内核)、执行系统代码(内核)、空闲,已经等待I/O。如果正在使用虚拟化,则第五个列可能是st,显示从虚拟机中“偷走”的百分比。这关系到那些虚拟机想运行但是系统管理程序转而运行其他的对象的时间。如果虚拟机不希望运行任何对象,但是系统管理程序运行了其他对象这不算被偷走的CPU时间。
    vmstat的输出跟系统有关,具体查看vmstat(8)。一个重要的提示是:内存、交换区,已经I/O系统是块数而不是字节,在GNU/Linux,块大小通常是1024字节。

    2、iostat

    与vmstat一样,第一行报告显示的是自系统启动以来的平均中。
    rrqm/s和wrqm/s
    每秒合并的读和写请求。“合并的”意味着操作系统从队列中拿出多少个逻辑请求合并为一个请求到实际磁盘。
    r/s和w/s
    每秒发送到设备的读和写请求。
    rsec/s和wsec/s
    每秒读和写的扇区数。游戏系统也输出为rkB/s和wkB/s,意为每秒读写的千字节数。
    avgrq-sz
    每请求的扇区数。
    avgqu-sz
    在设备队列中等待的请求数。
    await
    磁盘队列上花费的毫秒数,但是没有独立统计读和写的请求。
    svctm
    服务请求花费的毫秒数,不包括排队时间。
    %util
    至少有一个活跃请求所占用时间的百分比。如果熟悉队列理论中利用率的标准定,那么这个命令很莫名其妙。它其实不是块设备的利用率。超过一块磁盘的设备(例如raid控制器)比一块硬盘的设备可以支持更高的并非。但是%util从来不会超过100%,除非在技术时有四舍五入的错误。因此,这个指标无法真实反映设备的利用率,实际上跟文档说的相反、除非只有一块物理磁盘的特殊例子。
    可以用iostat的输出推断某些关于机器I/O子系统的实际情况。一个重要的度量标准司请求服务的并发数。因为读写的单位是每秒而服务时间的单位是千分之一秒,所有可以利用利特尔法则(Littler’s Law)得到下面的公式,计算出设备服务的并发请求:
    concurrency = (r/s + w/s)* (svctm/1000)

     

  • haproxy日志配置

    haproxy在默认情况不会记录日志,除了在haproxy.conf中的global段指定日志的输出外,还需要配置系统日志的配置文件。下面以centos6.4为例,haproxy使用系统自带的rpm报1.4版本
    [Read More…]

  • 查看Linux系统下cpu

    processor 条目包括这一逻辑处理器的唯一标识符。
    physical id 条目包括每个物理封装的唯一标识符。
    core id 条目保存每个内核的唯一标识符。
    siblings 条目列出了位于相同物理封装中的逻辑处理器的数量。
    cpu cores 条目包含位于相同物理封装中的内核数量。

    [Read More…]

  • sqlplus导出oracle查询结果

    经常要定期查询一些oracle中的数据并导出成报表,每次都手动操作实在麻烦,而且oracle安装在Linux上让非专业人员操作实在不放心,并且服务器在机房没法使用图形化工具连接去查询,即使可以通过客户端工具(例如plsql)别人也懒的学,再加上程序员更懒,写个查询的界面都要撤一堆屁话。还是要靠我们这些最勤劳的运维。

    [Read More…]

第 1 页,共 15 页12345...10...尾页 »