置顶随笔

[置顶]Web在线编辑器WebHtmlEditor 1.7.2006.0420 Release提供下载,免费试用

摘要: 为什么要使用WebHtmlEditor,因为她除了具有前台的调用功能外,还具有很强的后台管理功能,能够对编辑器多种功能进行各种有效的自定义,具体如下:
WebHtmlEditor 1.7 主要新增加以下功能:


增加了远程上传图片功能,将其他网站上的图片粘贴到编辑器中,点击远程上传按钮,可以将图片上传到本地的文件夹中,并在图片上增加文字水印和图片水印。
增加了 UpLoadImagesAndInsert 属性,在上传图片时可以直接将上传的图片插入到编辑器的内容区域中。
增加了首行缩进距离设置,体现了编辑器中国本地化的特色。段落首行缩进二字是中文的普遍习惯,国外的网页编辑软件一般都不提供此功能。
增加了 HorizontalAlign 属性,可以设置编辑器的水平对齐方式。
对[ 图片 | Flash | 多媒体 | 其他文件 | 模板文件 ]增加了 UpLoad[ Images | Flash | Media | OtherFile | Templat ]NameSet 属性,在上传遇到同名文件时可以自定义命名或提阅读全文

posted @ 2006-10-30 09:27 Lion 阅读(4429) 评论(22) 编辑

2009年8月15日

Windows下快速复制文件工具Robocopy介绍

下图是我使用Robocopy复制文件的输出日志,可以看出效率是非常不错的,复制59.2G文件2729个文件152个文件夹,只用27分59秒


Robocopywindows server 2003 resource kit工具箱中的一个工具,需要下载windows server 2003 resource kit才可使用。

z:\_My_Media下面的文件移动到x:\_my_Mdeia目录下
Robocopy z:\_My_Media x:\_my_Mdeia /move /e

不复制*.bak文件
Robocopy z:\_My_Media x:\_my_Mdeia /e /xf *.bak

不复制大于100MB的文件,单位是Byte
Robocopy z:\_My_Media x:\_my_Mdeia /e /max:100000

复制7天内除今天外被修改过的文件
Robocopy z:\_My_Media x:\_my_Mdeia /s /maxage:7 /minage:1

rh表示24小时制,下面命令表示,早上七点至晚上五点,参数范围从0000到2359
Robocopy z:\_My_Media x:\_my_Mdeia /e /rh:1000-1700


 

关于Robocopy更多命令选项:

使用格式:ROBOCOPY source destination [file [file]...] [options]

源:: 源目录(驱动器:\路径或\服务器\共享\路径)。
目录:: 目标目录(驱动器:\路径或\服务器\共享\路径)。
文件:: 要复制的文件(名称/通配符: 默认为 "*.*")。


一、 复制选项:
参数解释:
/S :: 复制子目录,但不复制空的子目录。
/E :: 复制子目录,包括空的子目录。
/LEV:n :: 仅复制源目录树的前 n 层。
/Z :: 在可重新启动模式下复制文件。
/B :: 在备份模式下复制文件。
/ZB :: 使用可重新启动模式;如果拒绝访问,请使用备份模式。
/EFSRAW :: 在 EFS RAW 模式下复制所有加密的文件。
/COPY:复制标记:: 要复制的文件内容(默认为/COPY:DAT)。
(复制标记: D=数据,A=属性,T=时间戳)。
(S=安全=NTFS ACL,O=所有者信息,U=审核信息)。
/DCOPY:T :: 复制目录时间戳。
/SEC :: 复制具有安全性的文件(等同于/COPY:DATS)。
/COPYALL :: 复制所有文件信息(等同于/COPY:DATSOU)。
/NOCOPY :: 不复制任何文件信息(与/PURGE 一起使用生效)。
/SECFIX :: 修复所有文件的文件安全性,即使是跳过的文件。
/TIMFIX :: 修复所有文件的文件时间,即使是跳过的文件。
/PURGE :: 删除源中不再存在的目标文件/目录。
/MIR :: 镜像目录树(等同于/E 和/PURGE)。
/MOV :: 移动文件(复制后从源中删除)。
/MOVE :: 移动文件和目录(复制后从源中删除)。
/A+:[RASHCNET] :: 将给定的属性添加到复制文件。
/A-:[RASHCNET] :: 从复制文件中删除给定的属性。
/CREATE :: 仅创建目录树和长度为零的文件。
/FAT :: 仅使用 8.3 FAT 文件名创建目标文件。
/256 :: 关闭超长路径(> 256 字符)支持。
/MON:n :: 监视源;发现多于 n 个更改时再次运行。
/MOT:m :: 监视源;如果更改,在 m 分钟时间内再次运行。
/RH:hhmm-hhmm :: 运行小时数 - 可以启动新副本的时间。
/PF :: 以每个文件(而不是每个步骤)为基础检查运行小时数。
/IPG:n :: 程序包间的间距(ms),以释放低速线路上的带宽。

二、文件选择选项:
参数解释:
/A :: 仅复制具有存档属性集的文件。
/M :: 仅复制具有存档属性的文件并重置存档属性。
/IA:[RASHCNETO] :: 仅包含具有任意给定属性集的文件。
/XA:[RASHCNETO] :: 排除具有任意给定属性集的文件。
/XF 文件[文件]... :: 排除与给定名称/路径/通配符匹配的文件。
/XD 目录[目录]... :: 排除与给定名称/路径匹配的目录。
/XC :: 排除已更改的文件。
/XN :: 排除较新的文件。
/XO :: 排除较旧的文件。
/XX :: 排除多余的文件和目录。
/XL :: 排除孤立的文件和目录。
/IS :: 包含相同文件。
/IT :: 包含已调整的文件。
/MAX:n :: 最大的文件大小 - 排除大于 n 字节的文件。
/MIN:n :: 最小的文件大小 - 排除小于 n 字节的文件。
/MAXAGE:n :: 最长的文件存在时间 - 排除早于 n 天/日期的文件。
/MINAGE:n :: 最短的文件存在时间 - 排除晚于 n 天/日期的文件。
/MAXLAD:n :: 最大的最后访问日期 - 排除自 n 以来未使用的文件。
/MINLAD:n :: 最小的最后访问日期 - 排除自 n 以来使用的文件。
(If n < 1900 then n = n days, else n = YYYYMMDD date)。
/XJ :: 排除接合点。(默认情况下通常包括)。
/FFT :: 假设 FAT 文件时间(2 秒粒度)。
/DST :: 弥补 1 小时的 DST 时间差。
/XJD :: 排除目录的接合点。
/XJF :: 排除文件的接合点。

三、重试选项:
参数解释:
/R:n :: 失败副本的重试次数: 默认为 1 百万。
/W:n :: 两次重试间的等待时间: 默认为 30 秒。
/REG :: 将注册表中的 /R:n 和 /W:n 保存为默认设置。
/TBD :: 等待定义共享名称(重试错误 67)。

四、日志记录选项:
参数解释:
/L :: 仅列出 - 不复制、添加时间戳或删除任何文件。
/X :: 报告所有多余的文件,而不只是选中的文件。
/V :: 生成详细输出,同时显示跳过的文件。
/TS :: 在输出中包含源文件的时间戳。
/FP :: 在输出中包含文件的完整路径名称。
/BYTES :: 以字节打印大小。
/NS :: 无大小 - 不记录文件大小。
/NC :: 无类别 - 不记录文件类别。
/NFL :: 无文件列表 - 不记录文件名。
/NDL :: 无目录列表 - 不记录目录名称。
/NP :: 无进度 - 不显示已复制的百分比。
/ETA :: 显示复制文件的预期到达时间。
/LOG:文件:: 将状态输出到日志文件(覆盖现有日志)。
/LOG+:文件:: 将状态输出到日志文件(附加到现有日志中)。
/UNILOG:文件:: 以 UNICODE 方式将状态输出到日志文件(覆盖现有日志)。
/UNILOG+:文件:: 以 UNICODE 方式将状态输出到日志文件(附加到现有日志中)。
/TEE :: 输出到控制台窗口和日志文件。
/NJH :: 没有作业标头。
/NJS :: 没有作业摘要。
/UNICODE :: 以 UNICODE 方式输出状态。

五、 作业选项 :
参数解释:
/JOB:作业名称:: 从命名的作业文件中提取参数。
/SAVE:作业名称:: 将参数保存到命名的作业文件
/QUIT :: 处理命令行后退出(以查看参数)。
/NOSD :: 未指定源目录。
/NODD :: 未指定目标目录。
/IF :: 包含以下文件。

posted @ 2009-08-15 20:36 Lion 阅读(4138) 评论(14) 编辑

2009年8月14日

Red Hat Enterprise5 安装 cacti-0.8.7e/插件/模板的详细安装过程

目录:
  一、什么是cacti?
  二、cacti的官方网站在哪里?
  三、在哪里下载?需要哪些组件的支持?
  四、使用cacti需要什么知识?
  五、如何安装cacti?
  六、常见问题

一、什么是Cacti?
  无论是稍有规模的IT公司还是大型的ICPISP,都需要面对一个问题,就是如何实现对网络和服务器的性能的实时监测。
   Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用 RRDtool绘画图形,能统计网络设备的流量、CPU、系统负载等参数,也可以自定义监测的指标。而且你完全可以不需要了解RRDtool复杂的参数。 它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增 加模板,功能非常强大完善,界面友好。虽然 MRTG 是一套非常好用的软件但是它毕竟是一套很旧的软件了,其作者在多年前已经开发出 RRDTool 代替该软件(RRDTool与MRTG对比), 现在已经发展的很成熟了,但由于 RRDTool 的指令非常复杂,对于使用者非常的麻烦,幸运的是有一套软件 Cacti 的发展就是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。


二、cacti的官方网站在哪里?
  http://www.cacti.net

三、在哪里下载?需要哪些组件的支持?
  cacti在http://www.cacti.net/download_cacti.php处可以下载,总体来说需要很多软件的需要:Mysql、PHP、Apache、Zlib、libpng、freetype、jpeg、fontconfig、libxml、rddtool、net-snmp,不过不用担心这些软件在下文中都提供了下载地址。

四、使用cacti需要什么知识?
  需要具有一定的使用net-snmp和rrdtool的知识。如果要自定义监测的指标还需要一定的shell脚本或xml语言能力。如果你想帮助cacti的开发,则需要通晓php脚本。

五、如何安装cacti?
  闲话少说,下面开始安装前的准备工作。所有的软件包都请下载到这里/usr/local/_temp,软件都安装在/usr/local目录下。
  
  1)安装Mysql (mysql-5.1.36-linux-i686-glibc23.tar.gz)
  如果已经安装了MySQL,先卸载以前安装的mysql包(rpm更多命令)
# rpm -qa|grep -i mysql  //查看已经安装的mysql相关包
# rpm -ev mysql          //删除mysql
# rm -f /etc/my.cnf      //删除/etc/my.cnf下面的MySQL配置文件避免影响新安装版本的启动。
# tar -zxvf mysql-5.1.36-linux-i686-glibc23.tar.gz     //解压 Mysql 安装包
# cp -rf mysql-5.1.36-linux-i686-glibc23 /usr/local/     //将目录复制到/usr/local下(CP更多命令>)
# cd ..
# ln -s mysql-5.1.36-linux-i686-glibc23 /usr/local/mysql     //建立符号链接(ln的更多命令)
# useradd mysql      //添加mysql用户
# groupadd mysql     //添加mysql用户组
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf    //复制mysql配置文件
# /usr/local/mysql/bin/mysql_install_db --user=mysql       //初始化授权表
  修改mysql目录的所有权限,使mysql用户和组可以访问到相关的目录,并创建mysql执行文件的快捷方式。(关于linux的文件夹作用)
# cd /usr/local
# chgrp -R mysql mysql-5.1.36-linux-i686-glibc23
# chgrp -R mysql mysql
# chown -R mysql mysql-5.1.36-linux-i686-glibc23/data
# chown -R mysql mysql/data
# ln –s /usr/local/mysql/bin/* /usr/local/bin/
# /usr/local/mysql/bin/mysqld_safe --user=mysql &       //安全启动mysql
  将 mysql 注册为 Linux 系统服务(chkconfig的更多命令)
# cp /usr/local/mysql/support-files/mysql.server  /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 2345 mysqld on
  修改MySQL的最大连接数(vi的更多命令)
# vi /etc/my.cnf     //对mysql配置文件进行修改
  将下面的代码放到my.cnf文件中
[mysqld]
set-variable=max_connections=1000       #设置最大连接数为1000
set-variable=max_user_connections=500      #设置每用户最大连接数为500
set-variable=wait_timeout=200      #表示200秒后将关闭空闲(IDLE)的连接,但是对正在工作的连接不影响。
  保存并退出编辑的my.cnf文件
  启动mysql服务
# service mysqld start


  2)安装Apache(httpd-2.2.11.tar.gz)
# tar -zxvf httpd-2.2.11.tar.gz
# cd httpd-2.2.11
# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-mods-shared=most
  说明:
  --enable-so      //让Apache可以支持DSO模式,注意,这里采用的是Apache2.0的语法。如果你的Apache是1.3版本,应改为--enable-module=so。
  --enable-mods-shared=most     //告诉编译器将所有标准模块都编译为DSO模块。你要是用的是Apache1.3,改为--enable-shared=max就可以。
  --enable-rewrite     //支持地址重写功能,使用1.3版本的朋友请将它改为--enable-module=rewrite。
# make
# make install
# vi /usr/local/apache/conf/httpd.conf      //修改Apache配置文件,添加ServerName www.yourdomain.com              (或ServerName 本机ip)
  对下面的内容在httpd.conf中进行查找和修改
  DirectoryIndex index.php index.html         //修改默认启动页
  DocumentRoot "/var/www/html/cacti"          //指定主目录(/usr/local/apache2/htdocs)
  ServerName localhost:80

  查找AddType application/x-compress .Z
  在其下加入 AddType application/x-tar .tgz
  AddType application/x-httpd-php .php
  AddType image/x-icon .ico

  在rc.local上加入一行/usr/local/apache/bin/apachectl –k start,系统启动时启动Apache服务。
# vi /etc/rc.d/rc.local

  将 apache 注册为 Linux 系统服务(chkconfig的更多命令)
# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
# chkconfig --add httpd
# service httpd start   //启动服务
# service httpd stop    //停止服务
# service httpd restart //重新启动


  3)安装PHP(php-5.2.10.tar.bz2)
  先安装zlib,freetype,libpng,jpeg以便于让PHP支持GD库(Cacti的WeatherMap插件必须要较新GD库的支持)

  3).i).安装zlib(zlib-1.2.3.tar.gz)
# cd /usr/local/_temp
# tar -zxvf zlib-1.2.3.tar.gz
# cd zlib-1.2.3
# ./configure --prefix=/usr/local/zlib
# make
# make install


  3).ii).安装libpng(libpng-1.2.16.tar.gz)
# tar -zxvf libpng-1.2.16.tar.gz
# cd libpng-1.2.16
# cd scripts/
# mv makefile.linux ../makefile
# cd ..
# make
# make install
  注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个

  3).iii).安装freetype(freetype-2.3.4.tar.gz)
# tar -zxvf freetype-2.3.4.tar.gz
# cd freetype-2.3.4 
# ./configure --prefix=/usr/local/freetype
# make
# make install

  3).iv).安装jpeg(jpegsrc.v6b.tar.gz)
# tar -zxvf jpegsrc.v6b.tar.gz
# cd jpeg-6b/
# mkdir /usr/local/libjpeg
# mkdir /usr/local/libjpeg/include
# mkdir /usr/local/libjpeg/bin
# mkdir /usr/local/libjpeg/lib
# mkdir /usr/local/libjpeg/man
# mkdir /usr/local/libjpeg/man/man1
# ./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static
# make
# make install
  注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库

  3).v).安装Fontconfig(fontconfig-2.4.2.tar.gz)
# tar -zxvf fontconfig-2.4.2.tar.gz
# cd fontconfig-2.4.2
# ./configure --with-freetype-config=/usr/local/freetype
# make
# make install

  3).vi).安装GD(gd-2.0.34.tar.gz)
# tar -zxvf gd-2.0.34.tar.gz
# cd gd-2.0.34
# ./configure --prefix=/usr/local/libgd --with-png --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg
# make
# make install
 
编译成功后会显示以下信息** Configuration summary for gd 2.0.34:

   Support for PNG library:          yes
   Support for JPEG library:         yes
   Support for Freetype 2.x library: yes
   Support for Fontconfig library:   yes
   Support for Xpm library:          no
   Support for pthreads:             yes

  3).vii).编辑/etc/ld.so.conf文件,添加以下几行到此文件中。
# vi /etc/ld.so.conf

  /usr/local/zlib/lib
  /usr/local/freetype/lib
  /usr/local/libjpeg/lib
  /usr/local/libgd/lib

# ldconfig -v      //并执行ldconfig命令,使用动态装入器装载找到共享库


  3).viii).安装libxml(libxml2-2.6.32.tar.gz)
# tar -zxvf libxml2-2.6.32.tar.gz
# cd libxml2-2.6.32
# ./configure  --prefix=/usr/local/libxml2
# make
# make install

  3).ix).安装php(php-5.2.10.tar.bz2)
# tar jxf php-5.2.10.tar.bz2
# cd php-5.2.10
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr --with-zlib-dir=/usr/local/zlib --enable-xml --enable-mbstring --enable-sockets --with-snmp --enable-short-tags
  说明:
  --with-apxs2=/usr/local/apache/bin/apxs  //这是加入apache中为DSO模块的位置
  --with-mysql=/usr/local/mysql    //支持MySQl
  --with-gd=/usr/local/libgd     //支持GD库
  --enable-gd-native-ttf     //激活对本地 TrueType 字符串函数的支持
  --with-ttf     //激活对 FreeType 1.x 的支持
  --enable-gd-jis-conv //使JIS-mapped可用,支持日文字体
  --with-freetype-dir=/usr/local/freetype    //激活对 FreeType 2.x 的支持
  --with-jpeg-dir=/usr/local/libjpeg //激活对 jpeg-6b 的支持
  --with-png-dir=/usr   //激活对 png 的支持
  --with-zlib-dir=/usr/local/zlib //激活对zlib 的支持
  --enable-xml     //支持XML
  --enable-mbstring    //激活mbstring模块
  --enable-sockets      //支持套接字
  --with-snmp     //支持snmp
  --enable-short-tags  //支持PHP的短标记
# make
# make install
# cp php.ini-recommended /usr/local/php/lib/php.ini   //复制php配置文件
# ln -s /usr/local/php/bin/* /usr/local/bin/      //建立符合链接
# service httpd restart //重新启动apache服务


  4).安装RRDTool(rrdtool-1.2.23.tar.gz)
  由于rrdtool-1.2.23需要一些库文件支持,故需先安装配置支持的环境,然后编译安装。直接运行以下bash脚本就可以完成安装:
  注 意:将cgilib-0.6.tar.gz、zlib-1.2.3.tar.gz、libpng-1.2.18.tar.gz、freetype- 2.3.5.tar.gz、libart_lgpl-2.3.17.tar.gz、rrdtool-1.2.23.tar.gz放到/usr/local /_temp/rrdtool目录下,将脚本保存为/usr/local/_temp/rrdtool/rrdtoolinstall.sh,并给执行权 限chmod u+x /usr/local/_temp/rrdtool/rrdtoolinstall.sh。
  以下链接是我重新打好的一个rrdtool-1.2.23的安装包,里面包括了所有用到的库文件和安装脚本,下载解压后执行脚本sh rrdinstall.sh即可以完成RRDTool的安装。
#!/bin/sh
BUILD_DIR=`pwd`
INSTALL_DIR=/usr/local/rrdtool
cd $BUILD_DIR
tar zxf cgilib-0.5.tar.gz
cd cgilib-0.5
make CC=gcc CFLAGS="-O3 -fPIC -I."
mkdir -p $BUILD_DIR/lb/include
cp *.h $BUILD_DIR/lb/include
mkdir -p $BUILD_DIR/lb/lib
cp libcgi* $BUILD_DIR/lb/lib
cd $BUILD_DIR
tar  zxf zlib-1.2.3.tar.gz
cd zlib-1.2.3
env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb
make
make install
cd $BUILD_DIR
tar zxvf libpng-1.2.18.tar.gz
cd libpng-1.2.18
env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \
    ./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install
cd $BUILD_DIR
tar zxvf freetype-2.3.5.tar.gz
cd freetype-2.2.5
env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \
    ./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install


cd $BUILD_DIR
tar zxvf libart_lgpl-2.3.17.tar.gz
cd libart_lgpl-2.3.17
env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install

IR=-I$BUILD_DIR/lb/include
CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"
LDFLAGS="-L$BUILD_DIR/lb/lib"
CFLAGS=-O3
export CPPFLAGS LDFLAGS CFLAGS

cd $BUILD_DIR
tar zxf rrdtool-1.2.23.tar.gz
cd rrdtool-1.2.23
./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl && make && make install

# ln -s /usr/local/rrdtool/bin/* /usr/local/bin/    //完成后建立符号连接
# rrdtool -v    //查看rrdtool版本,测试rrdtool是否安装成功


  5).安装net-snmp(net-snmp-5.2.4.tar.gz)
# tar -zxvf net-snmp-5.2.4.tar.gz
# cd net-snmp-5.2.4
# ./configure --prefix=/usr/local/net-snmp  --enable-developer
# make
# make install
# ln -s /usr/local/net-snmp/bin/* /usr/local/bin/
# cp EXAMPLE.conf  /usr/local/net-snmp/share/snmp/snmpd.conf
# vi /usr/local/net-snmp/share/snmp/snmpd.conf         //修改snmpd.conf(修改COMMUNITY、允许抓取snmp数据的主机、抓取数据范围等)。

以下是我的snmpd.conf配置##########################################
#       sec.name  source          community
com2sec local     localhost       public
##########################################

# /usr/local/net-snmp/sbin/snmpd     //启动SNMP服务
# vi /etc/rc.d/rc.local       //在rc.local上加入一行/usr/local/net-snmp/sbin/snmpd,系统启动时启动SNMP服务。


  6).安装cacti(cacti-0.8.7e.tar.gz)
# tar -zxvf cacti-0.8.7e.tar.gz
# mv –r cacti-0.8.7e /var/www/html/cacti
# vi /var/www/html/cacti/include/config.php

config.php文件中需要修改的内容$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";


# vi /var/www/html/cacti/include/global.php

global.php文件中修改的内容$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
  我用http://serverip来访问cacti所以不用修改下面行
  如果你用http://serverip/cacti/访问cacti应将下面行修改为:$config['url_path'] = '/cacti/';
global.php文件中的内容$config['url_path'] = '/';

# useradd cacti       //添加cacti用户
# chown -R cacti /var/www/html/cacti/rra     //将rra目录的所有权给cacti用户
# chgrp -R cacti /var/www/html/cacti    //修改cacti目录所属组

# su cacti   //为cacti用户添加cron任务
# crontab -e   //编辑定时任务
*/5 * * * * /usr/local/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
# /usr/local/bin/php /var/www/html/cacti/poller.php

正确输出类似于下面内容OK u:0.01 s:0.02 r:21.42
OK u:0.01 s:0.02 r:21.42
OK u:0.01 s:0.02 r:21.42
OK u:0.01 s:0.02 r:21.42
10/21/2008 01:48:41 PM - SYSTEM STATS: Time:30.5831 Method:cmd.php Processes:3 Threads:N/A Hosts:19 HostsPerProcess:7 DataSources:401 RRDsProcessed:220

# mysql -uroot -p  //登录mysql 配置cacti数据库
mysql> create database cacti;
mysql> grant all on cacti.* to cacti@localhost identified by "cacti";
mysql>exit
# mysql -uroot -p cacti < /var/www/html/cacti/cacti.sql     //导入cacti数据库初始化脚本


  7).完成cacti安装

  在游览器输入 http://serverip
  默认用户名:admin 密码:admin

设置cacti用到的命令路径snmpwalk Binary Path          /usr/local/bin/snmpwalk
snmpget Binary Path         /usr/local/bin/snmpget
snmpbulkwalk Binary Path    /usr/local/bin/snmpbulkwalk
snmpgetnext Binary Path     /usr/local/bin/snmpgetnext
RRDTool Binary Path         /usr/local/bin/rrdtool
RRDTool Default Font Path            
PHP Binary Path           /usr/local/bin/php
Cacti Log File Path      /var/www/html/cacti/log/cacti.log
Spine Poller File Path 


  8).安装插件
  要安装别的插件前,先要安装cacti的一个patch--Plugin Architecture,才能支持插件
  PA和cacti版本的关系
  PA 1.0 = cacti 0.8.6i
  PA 1.1 = cacti 0.8.6i et 0.8.6j
  PA 2.0 = cacti 0.8.7b
  PA 2.2 = cacti 0.8.7c
  PA 2.4 = cacti 0.8.7d
  PA 2.5 = cacti 0.8.7e

  8).i).安装 cacti-plugin-arch.zip
# unzip cacti-plugin-arch.zip
# cp -R cacti-plugin-arch/* /var/www/html/cacti/     //复制插件需要的文件到cacti
# cd /var/www/html/cacti/
# mysql -ucacti -p cacti < pa.sql       //导入插件的脚本
# patch -p1 -N  < cacti-plugin-0.8.7e-PA-v2.5.diff

  先开插件管理权限
  进入"用户管理"->点admin->区域权限->Plugin Management
  安装settings,thold,monitor插件
  将monitor、settings、thold解压到/var/www/html/cacti/plugins目录
  修改/var/www/html/cacti/include/global.php,将插件名字添加到数组
# vi /var/www/html/cacti/include/global.php

global.php文件中的内容$plugins = array();
//$plugins[] = 'thold';
$plugins[] = 'thold';
$plugins[] = 'monitor';
$plugins[] = 'settings';

  使用thold插件
  注:在写本文时使用的cacti 0.8.7e最新版,比以往版本有些变化,目前插件官司网上提供的monitor0.8.2和setting0.5并不支持cacti 0.8.7e,在此就不多介绍monitor和setting的使用。

  1> 打开“Console->Settings->Alerting/Thold”,可以调整Thold的各项配置。例如:“Dead Host Notifications Email”处可填写设备当机时发送警告信息到哪个邮箱;勾选“Send alerts as text”项,可以设置只发送文本格式的邮件。
  2>打开“Templates->Threshold Templates”,可以添加、取出需要关联到预警系统的模板,例如:可以添加和“Interface-Traffic”模板的关联,选择 “traffic_in”、“traffic_out”数据项,分别设置警告阈值“High Threshold”(如200000000比特/秒);可以添加和“Unix-Disk Space”模板的关联……。
  3>打开“Create->New Graphs”,选择需要提供预警的设备,单击右侧上方的“Auto-create thresholds”创建预警项目。
  4>打开“Management->Thresholds”,可以管理已经创建的预警项目。
  附: 按照官方文档安装了plugin architecture和settings、thold等plugins但是web页面里仍没什么变化,后来访问了下plugins.php,系统报没 有权限,然后直接点”login”直接就进系统了,由此可见不是没有权限,而应该是没有特定的权限,后来进入用户设置界面”User Management”将所用的用户点开,发现有个”plugin management”的权限没选中,选中,再Save,再回来刷页面,果然,左边有了新的一项菜单:“Plugin Management”,点进去可以进行plugin的管理,搞定。

  9).安装模板

  本文只介绍安装mysql的模板(teMySQLcacti-20060810.tar.gz),其他的模板用户可以按此方式安装
  按照官方文档中的3步
  1. Put mysql_stats.php and dumpMemcachedStats.php in cacti/scripts/

  本文只拷了mysql_stats
  
# cp teMySQLcacti/mysql_stats.php /var/www/html/cacti/scripts


  2. Either ensure your cacti poller is cron'd every 1 minute, or run the included    BASH shell script to create a 300/600 step/heartbeat version of the XML file.
  但其实tar本来就有cacti_host_template_temysql_host-step300-heartbeat600.xml

  上面的步骤很多余

  3. Import the .XML host using the cacti webinterface. Note,

  上面3步安装好后,开始再按照官方文档产生图

GRAPH CREATION==============

0. Make sure you installed mysql_stats.php and dumpMemcachedStats.php.
1. Go to Management/Devices.
2. Add a new device.
3. Description can be whatever you want.
4. Hostname should resolve to IP of database machine.
5. Host template is teMySQL or memcached Host.
6. Now choose the "Create Graphs" link.
7. Highlight all graphs for the host (assuming you want them all).
8. Choose "Create"
9. A page will come up with several Password/Username pairs, fill them
   all in with the cactipasswd/cactiuser you chose above. Hint: If you're
   using Firefox, the second host you do this for you can just press down-
   arrow twice, then tab, and the value will be filled in automatically
   by the browser. The first time, I suggest typing in the username, copying
   it, then doing a "paste-tab-tab-paste-tab-tab..." key combo until they're
   all filled in, then repeat for the password. Painful, but doable.


  需要在被检测的mysql库里添加检测机器的权限(仅需要process权限):

  grant process on *.* to username@192.168.1.1 identified by ‘password’;
  flush privileges;

六、常见问题
  
  1、为什么图像不能显示?
  先确定你的IP地址、snmp comunite、snmp version等信息配置没有错误。
  如果是在linux下安装cacti的话,可以按以下步骤检测:
  1.1、cacti的data sources和Graph Management均有debug。看是否有错误,比如rrd文件找不到等。
  1.2、data sources里看rrd文件的名称,然后到/cacti/rra目录中看是否有该文件存在。
  1.3、如果有rrd文件存在,则可以使用  
# rrdtool fetch yourRRDfile.rrd AVERAGE
  看该文件的采集的数据,如果都是“nan”,那就是没有取到数据。
  1.4、有可能是snmpget、snmpwalk和rrdtool的路径错误。      
  1.5、排除错误后,需要重新建立该监测点(graph)。
  提示:每一个图像的文件均会保存为rra目录里的一个rrd为后缀的文件(可以在“Data Sources”中看到)。“Data Sources”和“Graph Management”中均可以进行debug,可以从debug中得出错误信息。

  2、为什么rra目录下什么都没有?
  2.1、请查看该目录的权限。该目录的权限应为cactiuser可以读写。
  2.2、如果目录的权限没有问题,那么可能是snmp的设置有问题,请手工测试一下:
  # snmpwalk -v 2c -c public yourIP if
  如果有数据返回,则snmp的数据没有问题。如果出现“Timeout: No Response from ...”之类的错误信息则是snmp设置的问题。
  2.3、也可能是snmpwalk、snmpget和rrdtool的路径没有设置好在Settings-》Paths中检查设置是否正确。
  修改后请重建该监测点!否则不生效。

  3、可以取到本机(linux)的数据,但却不能取到远程主机的数据?
  Cacti有很多模板,有的是用SNMP进行数据采集,有的是用shell脚本进行采集。如果没有特别的原因建议都使用SNMP的。
  Associated Graph Templates
  前面带“ucd/net”的就是能使用ucd-snmp和net-snmp的模板。如:ucd/net - CPU Usage
  Associated Data Queries
  前面带SNMP的就是能使用snmp的。如:SNMP - Interface Statistics
  当然,你还可以从www.cacti.net上找到新的模板或添加自己的模板。

  4、怎么备份Cacti和它的数据呀?
  只需要备份rra目录和数据库就可以了。你喜欢也可以将log目录一起备份。
  如果你自己添加了一些插件的话记得也拷过去。
  
  5、新建的device的Data Query里面的状态总是“ Success [0 Items, 0 Rows]”?
  请先确认你的snmpd.conf中的权限设置,是否允许cacti取这些OID的数据。可以使用snmpwalk命令来进行测试,比如:  
# snmpwalk -c community -v 2c hostIP if
  如果你的snmpd.conf设置没有问题,那可能是下面这种情况:
旧版本的snmpwalk(比如redhat默认安装的5.0.6)缺少一些参数,比如-O中的"U"参数.(可以用snmpwalk --help来查看是否有该参数)。
  而cacti-0.86g或以上版本需要这些参数,解决办法是安装一个新的net-snmp包(如:net-snmp5.2.1),从而得到一个新snmpwalk的版本。

  6、有图但图例文字不能显示

  添加RRDTool默认字体路径
  如下图中将路径设置成:/usr/local/rrdtool/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf


posted @ 2009-08-14 14:44 Lion 阅读(4471) 评论(1) 编辑

2007年9月24日

如何利用客户端缓存对网站进行优化?

摘要: 很多人首先会想从服务器缓存方面着手对程序进行优化,许多不同的服务器缓存方式都有他们自己的特点,像我曾经参与的一些项目中,根据缓存的命中率不同使用过 Com+/Enterprise Libiary Caching/Windows服务,静态文件等方式的服务器端缓存和 HTTP Compression技术,但客户端缓存往往却被人们忽略了,即使服务器的缓存让你的页面访问起来非常地快,但她依然需要依赖浏览器下载并输出,而当你加入客户端缓存时,会给你带来非常多的好处.因为她可以对站点中访问最频繁的页进行缓存充分地提高 Web 服务器的吞吐量(通常以每秒的请求数计算)以提升应用程序性能和可伸缩性。阅读全文

posted @ 2007-09-24 23:41 Lion 阅读(5059) 评论(31) 编辑

2007年9月12日

如何解析被压缩过的Js文件?eval(function(p,a,c,k,e,d){.....,{}))

随着ajax的流行,大家一下子明白过来,原来js能够完成这么强大的功能,然后就是JS代码原来越复杂,js文件体积越来越大,同样也增加了安全隐患。

现在网上比较普遍的流行一些代码混淆和代码压缩工具:

JSConfusion    代码混淆工具,本人做的Big Smile

Javascript compressor  代码压缩工具,提供了一种特有的压缩算法对JS的代码进行减肥,也是我看到较早的一个工具,现在经常和JSConfusion结合去使用(当然是先混淆后压缩)

JSObfuscator  集混淆/压缩一体的工具,虽然功能比较多,但在压缩的时候效果不是很好,经过我测试会有时压缩过的代码不能运行

这些是见过的比较好的几个工具,如果你还见过哪些不错功能类似的工具,可以在后面补充~~~~ 

大家应该都知道这样一个理论:加密可以反加密,而混淆却无法反混淆.

混 淆也可以叫颠倒是非、混淆黑白,无非就是去掉缩进、空格、空行和注释,改表代码中的非保留字为简单的字母、符号、乱码什么的,这样做只是为了加大代码的阅 读难度,提高阅读成本,所以反混淆只有根据你对JS的了解程度去进行变量/方法/属性/类的替换。当然代码少你到是可以这样做,如果代码很多(可以看这个 混淆后的项目),你就会知道什么叫 "生气、愤怒、疯狂、哭笑不得"

上面为基础知识,下面进行正题:

alert("Welcome idoall.org");

被压缩过以后是下面的样子:

eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--)d[ c]=k[ c]||c;k=[function(e){return d[  e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[ c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[ c]);return p}('3("2 1.0");',4,4,'org|idoall|Welcome|alert'.split('|'),0,{}))

那么我们如何从压缩过的代码中提取出原文?

不管她会压缩混淆成什么样子,最终都是要被浏览器认可,解析,执行的。我们可以跟踪代码的运行,会发现最关键的位置在这里.....p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),kCoffee);return p

这里的变量 p 就是用来保存最终后的代码,我们可以在返回 p 的前面将值输出,就会得到alert("Welcome idoall.org");

本文的目的是回答一位网友的问题,顺便提供相关的思路,有助于大家的思考

posted @ 2007-09-12 18:41 Lion 阅读(5545) 评论(10) 编辑

2006年10月30日

Web在线编辑器WebHtmlEditor 1.7.2006.0420 Release提供下载,免费试用

摘要: 为什么要使用WebHtmlEditor,因为她除了具有前台的调用功能外,还具有很强的后台管理功能,能够对编辑器多种功能进行各种有效的自定义,具体如下:
WebHtmlEditor 1.7 主要新增加以下功能:


增加了远程上传图片功能,将其他网站上的图片粘贴到编辑器中,点击远程上传按钮,可以将图片上传到本地的文件夹中,并在图片上增加文字水印和图片水印。
增加了 UpLoadImagesAndInsert 属性,在上传图片时可以直接将上传的图片插入到编辑器的内容区域中。
增加了首行缩进距离设置,体现了编辑器中国本地化的特色。段落首行缩进二字是中文的普遍习惯,国外的网页编辑软件一般都不提供此功能。
增加了 HorizontalAlign 属性,可以设置编辑器的水平对齐方式。
对[ 图片 | Flash | 多媒体 | 其他文件 | 模板文件 ]增加了 UpLoad[ Images | Flash | Media | OtherFile | Templat ]NameSet 属性,在上传遇到同名文件时可以自定义命名或提阅读全文

posted @ 2006-10-30 09:27 Lion 阅读(4429) 评论(22) 编辑

2006年2月27日

应朋友要求,现将 WebHtmlEditor 1.5 and 1.6 中用到的 js 混淆器提供给大家使用

摘要: 这个混淆器只会放一段时间 http://editor.lionsky.net/JSConfusionWebDemo/ 相关链接: Web在线编辑器WebHtmlEditor 1.6 Release提供下载(Support .NET Framework v2.0,Support .NET Framework v1.1)阅读全文

posted @ 2006-02-27 09:20 Lion 阅读(2748) 评论(16) 编辑

2006年2月26日

Web在线编辑器WebHtmlEditor 1.6 Release提供下载(Support .NET Framework v2.0,Support .NET Framework v1.1)

摘要: 为什么要使用WebHtmlEditor,因为她除了具有前台的调用功能外,还具有很强的后台管理功能,能够对编辑器多种功能进行各种有效的自定义,具体如下: WebHtmlEditor 1.6将同时支持.NET Framework v2.0和.NET Framework v1.1在线演示:DOTNET1.1: http://www.lionsky.net/Demo/WebHtmlEditor/1_6DO...阅读全文

posted @ 2006-02-26 22:41 Lion 阅读(7952) 评论(36) 编辑

2005年12月16日

DOTNET2.0 的编辑器:WebHtmlEditor 1.5 Release提供在线演示和下载

posted @ 2005-12-16 08:47 Lion 阅读(2998) 评论(16) 编辑

2005年8月8日

WebHtmlEditor Version 1.5.2004.729 Beta1 发布测试

摘要: [最新功能预览],如果您想加入其他的功能可以以外挂的形式集成到 WebHtmlEditor 中[演示:将CodeHighlighter以外挂的形式集成到 WebHtmlEditor] 如果您对 WebHtmlEditor 的研发工作感兴趣,可以 给我邮件或到 WebHtmlEditor官方论坛中给我留言。 什么是 WebHtmlEditor? 她是一个网页的在线文本编辑器,她能够在网页上实现许多...阅读全文

posted @ 2005-08-08 08:22 Lion 阅读(3817) 评论(23) 编辑

2005年4月4日

经过半年的时间, WebHtmlEditor 1.0 Release 终于发布了

摘要: 经过半年多的不振,终于在前段时间开始了HtmlEditor(Web在线编辑器)的工作,从这个版本开始HtmlEditor正式更名为WebHtmlEditor,最新版本为 1.0。 目前 WebHtmlEditor 已经实现了在IE中最强大的编辑器功能[最新功能预览],如果您想加入其他的功能可以以外挂的形式集成到 WebHtmlEditor 中[演示:将CodeHighlighter以外挂的形式集成...阅读全文

posted @ 2005-04-04 09:33 Lion 阅读(6754) 评论(47) 编辑