存档

作者存档

func install in ubuntu-server

2011年1月21日 eric 没有评论

简介:
func: fedora 上的同意网络控制器

func为我们带来了什么:
· 你曾经试图命令或查询的系统大量使用SSH? 你想要一个更好的办法?
·你需要一个方法来审核你的系统你所有的远程命令呢?
·厌倦了编写shell脚本和解析命令的输出?
·你是美联储通过CIM,WBEM的,复杂的通信系统,防止doing /real/ work??
·那么我们有没有给你买了一个解决方案。 它的 功能 。

func几乎可以解决运维上任何问题:
一个方案,系统和一些工具,需要大量的沟通方式。功能提供了一种双向认证的统称做这些事情的排序制度。你可以建立自己的在顶部,这样,很容易扩大应用在其他模块添加功能,无论你 希望通过这些工作func命令行或其他一些应用的手段。如果你只是想用命令行的功能,这是伟大的。如果你想建立应用程序的功能工具,那也很好。如果这听起来很笼统空泛,它只是因为它确实是容易扩展。

下载源码:

git clone git://git.fedorahosted.org/certmaster.git
git clone git://git.fedorahosted.org/func.git
或者:
wget https://fedorahosted.org/releases/f/u/func/func-0.27.tar.gz
wget https://fedorahosted.org/releases/c/e/certmaster/certmaster-0.27.tar.gz

#修改 master机器 hosts

127.0.0.1       localhost
127.0.1.1       mysql
127.0.1.1       certmaster
192.168.6.161   master
192.168.6.160   minions
分类: linux 标签: , ,

转 svn常用命令

2011年1月21日 eric 没有评论

1、checkout文件到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、添加新的文件到版本库中
svn add file
例如:svn addtest.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、将改动的文件提交到版本库
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
例如:svn commit -m “add test file for my test“ test.php
简写:svn ci
4、加锁/解锁
svn lock -m “LockMessage“ [--force] PATH
例如:svn lock -m “lock test file“ test.php
svn unlock PATH
5、更新到某个版本
svn update -r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up

分类: linux 标签: ,

转老外一篇NGINX 防DDOS配置

2011年1月19日 eric 1 条评论

FreeBSD, network card: Intel fxp, port: 100Мбит, polling, http accept-filter. in sysctl: sysctl kern.maxfiles=90000 sysctl kern.maxfilesperproc=80000 sysctl net.inet.tcp.blackhole=2 sysctl net.inet.udp.blackhole=1 sysctl kern.polling.burst_max=1000 sysctl kern.polling.each_burst=50 sysctl kern.ipc.somaxconn=32768 sysctl net.inet.tcp.msl=3000 sysctl net.inet.tcp.maxtcptw=40960 sysctl net.inet.tcp.nolocaltimewait=1 sysctl net.inet.ip.portrange.first=1024 sysctl net.inet.ip.portrange.last=65535 sysctl net.inet.ip.portrange.randomized=0 in nginx configuration: worker_processes 1; worker_rlimit_nofile 80000; events { worker_connections 50000; } server_tokens off; log_format IP `$remote_addr’; [...]

分类: nginx 标签: , ,

check_log检查日志关键词for nagios

2011年1月12日 eric 8 条评论

基于 python-2.5.2 版本写的一个小插件,巡检日志里的关键词,可以设置阀值,超过阀值报警!
开始写的时候没有太多注意,结果处理一个大的日志文件脚本执行时间有点长,看了下日志有 70M,想了一下的确啊·如果一次读取么多字符串处理起来肯定会漫长!随后在python.org 上看到了MMAP,这个模块,看到这个一下让我想起,以前编译lustre的时候,添加这个小模块时候的作用,虚拟文件·哈哈大大提升了读取大文件内容的速度! 下面看脚本,例子是我检测nginx日志有多少个 No such file or directory

nagios $> cat check_log
# -*- coding: utf-8 -*-
#!/usr/bin/python
# QQ:277057817
import mmap
import os
import sys
import getopt

def usage():
    print """
    check_log is a Nagios monitor logs Script

    Usage:

    check_log [-h|--help][-l|--log][-s|--string][-w|warning][-c|critical]

    Options:
           --help|-h)
                 check_log help.
           --log|-l)
                 sets log file path.
           --string|-s)
                 sets monitor Keywords.
           --warning|-w)
                 sets Keywords quantity.Default is: off
           --critical|-c)
                 sets Keywords quantity.Default is: off
     example:
            ./check_log -l /var/log/nginx.log -s "502 Bad Gateway" -w 5 -c 10 ""                                                                                                 "
分类: nagios 标签: , ,

nginx 错误日志分析

2011年1月11日 eric 没有评论

nginx 错误日志: 转帖: 错误 accept() failed (53: Software caused connection abort) [error] 25361#0: accept() failed (53: Software caused connection abort) while accepting new connection on 0.0.0.0:80 [error] 25361#0: accept() failed (53: Software caused connection abort) while accepting new connection on 0.0.0.0:80 [error] 25365#0: accept() failed (53: Software caused connection abort) while accepting new connection on [...]

分类: nginx 标签: , ,

网站更新脚本

2011年1月7日 eric 没有评论

shell版本:

nginxs $> cat  upload.sh

#!/bin/bash
usage() {
    echo "basename $0" [-g] [-p] args
    echo "-h"
    echo "print script help"
    echo "-g:"
    echo "   is a gzip filename"
    echo "-p:"
    echo "   File absolute path"
    echo "   must \" \""
    echo "   \"/var/www /var/data\""
    exit 0
}

while getopts "hg:p:" opt; do
   case $opt in
      h)
         usage
         ;;
      g)
         Filename=$OPTARG
      #打包的文件名!
         ;;
      p)
         path=$OPTARG
     #要上传的目录和文件,要输入绝对地址例如 /var/www/123.jpg,/var/www/eric/
         ;;
      :)
         echo "The opt is unknown"
         ;;
      ?)
         echo "ERROR"
         ;;
    esac
done
[ -z $1 ] && usage
tar -Pzcvf $Filename $path 
分类: linux 标签: ,

windows 挂载 linux nfs

2011年1月5日 eric 没有评论

以前就研究过 Windows下如何挂载linux NFS共享目录,那个时候没有仔细研究就掠过了,今天回过头来下载微软的 Services for UNIX 3.5 再次试验了下,成功了,就把方法贴上来。其实蛮简单的·只要新建两个文件或者从linux系统上拷贝 两个文件下来 passwd 和group 安装的时候选上这两个文件,或者安装完毕后,在 User Name Mapping on local computer 选项页面选上这两个文件。 查看linux NFS共享目录, 在windows系统上,点开始–>点程序–>点Windows Services for UNIX–>Korn Shell Welcome to the Interix UNIX utilities. DISPLAY=localhost:0.0 $ showmount -e 192.168.6.102 # 192.168.6.102 是linux NFS服务器IP Exports list on 192.168.6.102: /web/nas * /web/data * $ mount 192.168.6.102:/web/nas g: # g: [...]

分类: linux 标签: , ,

多线程ppt|doc|docx|pptx转换pdf

2010年12月29日 eric 3 条评论

今天给我的转换服务器更新openoffice版本的时候·也顺便搜索了下jodconverter的版本·在官网上目前还是 2.2.2 版本·但是在 google 的时候发现了 code 上 有 3.0的版本·就立刻下载下来在虚拟机器上做测试,测试后发现 3.0版本 的 jodconverter 做的很不错·支持了服务器多进程,也就说明可以多线程转换了,避免了转换排队现象。

1.下载安装 openoffice 3.2,我的环境是ubuntu所以下载的是deb包,如果你是centos请下载rpm包。

ppt2pdf $> wget http://download.services.openoffice.org/files/localized/zh-CN/3.2.1/OOo_3.2.1_Linux_x86_install-deb_zh-CN.tar.gz
ppt2pdf $> tar zxvf OOo_3.2.1_Linux_x86_install-deb_zh-CN.tar.gz
ppt2pdf $> cd OOO320_m18_native_packed-1_zh-CN.9502
ppt2pdf $> cd DEBS
ppt2pdf $> dpkg -i *.deb

2.然后下载中文字库防止乱码

ppt2pdf $> apt-get install language-pack-zh language-support-fonts-zh
分类: linux 标签: , , ,

python插件做nagios发报警邮件<二>

2010年12月21日 eric 没有评论

接上文 python插件做nagios发报警邮件 http://www.nginxs.com/linux/371.html,由于python 传入的参数,python 会自动加 \ ,经过代码测试,代码如下:

nagios $> cat test.py
#!/usr/bin/python
import sys

str = sys.argv[1]
str = repr(str)
print str
nagios $> python test.py “aaaa\nfffff”
‘aaaa\\nfffff’

测试过很多方法,都不行,最后用了最笨的的方法就是读文件!就稍微改动了一下上文脚本

分类: nagios 标签: , ,

python插件做nagios发报警邮件

2010年12月17日 eric 没有评论

Ps: 完美的解决了python传入参数带有回车换行符,不换行问题。修改本文时间:2010年12月21号,脚本有变动·nagios commands.cfg无需修改·用了此版本·就解决了不用去读文本方式。

安装好nagios后,一直利用nagios服务器上的sendmail服务器去发邮件,修改配置文件可以伪造别的邮件地址发邮件,但是一直会被邮局视为垃圾邮件,我把email地址加在了QQ上,好处是一来邮件QQ右下角会弹提示。工作时间会第一时间知道服务器出状况(手机短信暂时不提),但是如果是垃圾邮件,QQ不会提醒的,当然可以在QQ邮箱把其添加为信任邮局,可以避免。我就不那么浪费时间了。自己写一个发邮件的插件来替换掉本机的sendmail服务,可以为服务器节省资源,大家也知道启动sendmail服务稍稍费点时间,如果主机名没有设置好的话sendmail服务会启动很久才能起来的哦。废话不多说了,发源代码。

nagios $> cat /usr/local/nagios/libexec/sendmail
#!/usr/bin/python
import smtplib
import string
import sys
import getopt

def usage():
   print """sendmail is a send mail Plugins
   Usage:

   sendmail [-h|--help][-t|--to][-s|--subject][-m|--message]

   Options:
          --help|-h)
                 print sendmail help.
          --to|-t)
                 Sets sendmail to email.
          --subject|-s)
                  Sets the mail subject.
          --message|-m)
                  Sets the mail body
    Example:
           only one to email  user
          ./sendmail -t 'eric@nginxs.com' -s 'hello eric' -m 'hello eric,this is sendmail test!
           many to email  user
          ./sendmail -t 'eric@nginxs.com,yangzi@nginxs.com,zhangsan@nginxs.com' -s 'hello eric' -m 'hello eric,this is sendmail test!"""
   sys.exit(3)

try:
   options,args = getopt.getopt(sys.argv[1:],"ht:s:m:","--help --to= --subject= --message=")
except getopt.GetoptError:
   usage()
for name,value in options:
    if name in ("-h","--help"):
       usage()
    if name in ("-t","--to"):
# accept message user
       TO = value
       TO = TO.split(",")
    if name in ("-s","--title"):
       SUBJECT = value
    if name in ("-m","--message"):
       MESSAGE = value
       MESSAGE = MESSAGE.split('\\n')        #以‘\n’字符切割字符串,分割后的字符串python就不会在加\
       MESSAGE = '\n'.join(MESSAGE)          #在每个字符串后加 '\n' 字符,这样python 就会认为字符'\n'是换行符
分类: nagios 标签: , ,