存档

2010年12月 的存档

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

2010年12月29日 eric 4 条评论

今天给我的转换服务器更新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 2 条评论

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 标签: , ,

python写的nginx的nagios插件

2010年12月9日 eric 4 条评论

闲的蛋疼学习python urllib2模块,想到了可以写nginx status模块,就试着写了一下,随后测试下了,比shell写的执行速度要快些,数据如下

第一次:                    第二次:
check_nginx.sh                          check_nginx.sh
real    0m0.453s                         real    0m0.264s
user    0m0.020s                        user    0m0.030s
sys     0m0.030s                        sys     0m0.020s

check_nginx.py                         check_nginx.py
real    0m0.244s                        real    0m0.244s
user    0m0.030s                       user    0m0.020s
sys     0m0.020s                        sys     0m0.010s

由此可以看出 python速度要快些。

下面帖源码:

分类: nagios 标签: , ,

nagios监控带宽插件更新

2010年12月8日 eric 5 条评论

以前写的一个nagios 监控带宽的插件,今天看了下有个小BUG,看代码 BS=”`cat wget-log |tail -n20 |awk ‘{print $8}’|sed ‘s/K//’|awk ‘{sum+=$1};END{print sum}’`” speed=`echo $BS / 19|bc` 我是统计20行数据,在我算平均值的时候是除以了19,是按19行算的,因为最后一行90%数据是不完整,没有统计到下载速度,所以我是按19行来算的,但是考虑到也有10%的可能有数据,这样按照19行来统计平均值会不准确。所以加一条管道更新了一下脚本: #!/bin/bash PROGNAME=`basename $0` VERSION=”Version 1.1″ AUTHOR=”2010.11.17,www.nginxs.com” ST_OK=0 ST_WR=1 ST_CR=2 ST_UK=3 interval=5 url=”http://mirrors.163.com/centos/5.5/isos/x86_64/CentOS-5.5-x86_64-LiveCD.iso” print_version() { echo “$VERSION $AUTHOR” } print_help() { print_version $PROGNAME $VERSION echo “$PROGNAME is a Nagios plugin to monitor download speed” echo “Use of wget download [...]

分类: nagios 标签: , ,

FastDFS nginx 模块 php_client使用。

2010年12月7日 eric 1 条评论

由于本人对PHP了解有限,读起 README来有些慢·不过还是看明白了点·先写下上传,和得到文件的fileid,同理也可以下载·呵呵。其实很简单函数有说明的。接上文的安装完毕后,在nginx 上编译php-fpm,让其支持php. 1.编译php-fpm nginx $> wget http://cn2.php.net/get/php-5.2.14.tar.bz2/from/cn.php.net/mirror nginx $> wget http://php-fpm.org/downloads/php-5.2.14-fpm-0.5.14.diff.gz nginx $> tar jxvf php-5.2.14.tar.bz2 nginx $> gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1 nginx $> cd php-5.2.14 nginx $> ./configure –prefix=/usr/local/php –enable-fastcgi –enable-fpm –enable-force-cgi-redirect nginx $> make nginx $> make install nginx $> cp php.ini-dist /usr/local/php/etc/ 2.编译fastdfs_client.so php扩展模块 nginx $> cd [...]

分类: nginx 标签: , ,

测试nginx的FastDFS分布式存储模块

2010年12月2日 eric 2 条评论

很长时间没有关注FastDFS了,第一次使用FastDFS 是在 08年的时候11月的时候,那个时候是为了解决公司的数据存储~那时候可能是对Fastdfs了解不深,功能还不算太健全,最后选择了lustre。再回过头来看FastDFS更新很快,还看到fastdfs-nginx-module_v1.01.tar.gz nginx模块,所以今天在一台测试机上测试了·测试几天看稳定不稳定,在考虑换掉浪费资源的 lustre !

环境:

storage1:192.168.6.100
storage2:192.168.6.101
tracker:192.168.6.102

1. 在每个机器上,下载安装 FastDFS

nginx $>  wget http://fastdfs.googlecode.com/files/FastDFS_v2.04.tar.gz
# 解压
nginx $> tar zxvf FastDFS_v2.04.tar.gz
nginx $> cd FastDFS
# 因为我是给nginx添加fastdfs模块,所以不需要fastdfs支持 http 所以我就不需要去掉  #WITH_HTTPD=1 前的注释了,直接编译
nginx $> ./make.sh
nginx $> ./make.sh install

2.修改tracker 和 storage 的配置文件
# tracker 的修改

tracker $> vim /etc/fdfs/tracker.conf
disabled=false
#配置是否生效
bind_addr=192.168.6.102
#绑定IP
port=22122
#服务端口
connect_timeout=30
#连接超时时间
network_timeout=60
#  tracker server的网络超时,单位为秒。
base_path=/home/yangzi
#目录地址,里面会创建data(存放存储服务器信息)、logs,日志文件
max_connections=256
#系统提供服务最大连接数
work_threads=4
#线程数,通常设置CPU数
store_lookup=2
上传组(卷) 的方式 0:轮询方式 1: 指定组 2: 平衡负载(选择最大剩余空间的组(卷)上传)
这里如果在应用层指定了上传到一个固定组,那么这个参数被绕过
store_group=group1
当上一个参数设定为1 时 (store_lookup=1,即指定组名时),必须设置本参数为系统中存在的一个组名。如果选择其他的上传方式,这个参数就没有效了
store_server=0
选择哪个storage server 进行上传操作(一个文件被上传后,这个storage server就相当于这个文件的storage server源,会对同组的storage server推送这个文件达到同步效果)
# 0: 轮询方式
# 1: 根据ip 地址进行排序选择第一个服务器(IP地址最小者)
# 2: 根据优先级进行排序(上传优先级由storage server来设置,参数名为upload_priority)
store_path=0
分类: linux 标签: , ,

监控linux系统资源

2010年12月1日 eric 2 条评论

Dstat是什么?
可以说,Dstat是 vmstat,iostat,netstat,ifstat的结合体,dstat包含了他们所有没有的功能,并增加了一些额外的功能,Dstat是用于监测性能优化测试,故障诊断系统功能更方便.
你可以使用Dstat可以查看实时系统的所有资源,从你的IDE控制器中结合磁盘比较利用率,或数字比较与磁盘吞吐量的网络带宽更直观。

Dstat 监测结果带颜色,看着更直观,方便。
官方网站:http://packages.sw.be/dstat/

都是 rpm版本,我的是服务器是ubuntu,所以我下载源码编译的

nginx $> wget wget http://packages.sw.be/dstat/dstat-0.7.2-1.rfx.src.rpm
nginx $> rpm -i dstat-0.7.2-1.rfx.src.rpm
#可能会报错,不需要管。
nginx $> cd rpmbuild/SOURCES/dstat-0.7.2
nginx $> make install
nginx $> dstat --help
Usage: dstat [-afv] [options..] [delay [count]]
Versatile tool for generating system resource statistics

Dstat options:
  -c, --cpu              enable cpu stats
     -C 0,3,total           include cpu0, cpu3 and total
  -d, --disk             enable disk stats
     -D total,hda           include hda and total
  -g, --page             enable page stats
  -i, --int              enable interrupt stats
     -I 5,eth2              include int5 and interrupt used by eth2
  -l, --load             enable load stats
  -m, --mem              enable memory stats
  -n, --net              enable network stats
     -N eth1,total          include eth1 and total
  -p, --proc             enable process stats
  -r, --io               enable io stats (I/O requests completed)
  -s, --swap             enable swap stats
     -S swap1,total         include swap1 and total
  -t, --time             enable time/date output
  -T, --epoch            enable time counter (seconds since epoch)
  -y, --sys              enable system stats

  --aio                  enable aio stats
  --fs, --filesystem     enable fs stats
  --ipc                  enable ipc stats
  --lock                 enable lock stats
  --raw                  enable raw stats
  --socket               enable socket stats
  --tcp                  enable tcp stats
  --udp                  enable udp stats
  --unix                 enable unix stats
  --vm                   enable vm stats

  --plugin-name          enable plugins by plugin name (see manual)
  --list                 list all available plugins

  -a, --all              equals -cdngy (default)
  -f, --full             automatically expand -C, -D, -I, -N and -S lists
  -v, --vmstat           equals -pmgdsc -D total

  --float                force float values on screen
  --integer              force integer values on screen

  --bw, --blackonwhite   change colors for white background terminal
  --nocolor              disable colors (implies --noupdate)
  --noheaders            disable repetitive headers
  --noupdate             disable intermediate updates
  --output file          write CSV output to file

delay is the delay in seconds between each update (default: 1)
count is the number of updates to display before exiting (default: unlimited)
分类: linux 标签: ,