最新日志

Say Goodbye To Independent Blog

     前天傍晚下班后在公车上照往常一样想用手机访问搭建在自己国外空间的Dabr(大波)使用Twitter,发现竟然无法访问,赶快试了下自己博客的手机版,同样失败。。。后来使用opear mini国际版的浏览器测试了下访问正常,那一刻自己基本可以断定没啥救了肯定是空间服务器IP被封了。虽然合租空间11月也快到期了就是,但看来得提前离开了,故先将上面的空间数据和数据库数据拷贝回来到本地。

     本来想找@belltoy朋友借空间暂放下!后来想想感觉貌似没啥必要,一方面,一直以来自己写的根本不是博客而是无聊而已,而且也很久没有更新过日志文章,感觉是种浪费别人的空间;另一方面,自己偶尔会比较愤的记录一些本该沉默的东西,而招来难免之灾,因为有时都怀疑此次IP被封会不会因为与自己博客文章敏感度的几篇文章有关而带来的(但始终还是觉得自己肯定没那么“伟大”),所以为了避免再牵连无辜,就省了吧。所以决定,特地在此开启两个新账号,暂时迁移到Yo2(优博)来先放放吧。从此暂与独立博客说再见!

     镜像地址:LifeBlog(需翻墙) ---> http://yousrilife.yo2.cn   Yousri's Blog(需翻墙) ---> http://yousri.yo2.cn  其实比较可惜遗憾的是yousri.org 和 qingxianyan.cn 两个域名的白白浪费哈  叹息///  所以哪天激情来时,肯定还会再独立的!

    订阅地址:http://feeds.feedburner.com/qingxianyan

     ps:同时也借此文测试下看Yo2上的某个插件是否能实现将文章烧制原来的Feed地址上!

个人常用的两招翻墙访问Twitter

    如今在天朝的关心照顾下国内微博客已陷入非常时期,众多曾沉溺于国内微博客(主要是饭否)的朋友们都苦恼于如何比较简单方便的使用Twitter/// 其实关于如何翻墙上Twitter的教程已是遍满整个互联网随处可见。。。但发现貌似身边的貌似还有不少还是觉得自己对计算机不熟不是做这行不懂,其实说白了是没去尝试而想天真的觉得有多复杂,但其中的设置、翻墙起来一点都不难哈,所以此篇文章只是针对自己所常用翻墙访问被“强奸”的网站的两招记录下来分享给自己身边需要的朋友而已,懂得如何翻墙的可以绕过无视之或可以提供更好快捷简单的方法分享下。废话到此,大致步骤如下:

     一、修改本地hosts文件实现翻墙(关键寻找可用IP)
    1、使用记事本或其他文本编辑器打开C:\WINDOWS\system32\drivers\etc目录下的Hosts配置文件(这里个人使用vim编辑器,建议使用记事本Notepad系统自带编辑器)可能默认文件如图:
     
    2、添加twitter、facebook、youtube等站点对应的可用IP(此IP得网上搜集)记录修改Hosts配置文件
     
     (来自twitpic:http://twitpic.com/bfdw6)
    注意:IP地址前面不要有空格,ip地址和域名之间,要有至少1个空格或tab分隔符。以上IP个人测试皆可用
    3、保存配置文件hosts退出。若无法提示无法保存文件(正常vista才比较可能遇到)可以查看官方说明及解决措施:http://support.microsoft.com/kb/923947/zh-cn
    4、现在可以使用浏览器使用加密的https:// 协议打开以上各站点进行访问即可啦。
    补充:此处就只介绍微软windows系列系统的环境下的,因为此次提供给的用户是身边认识需要的朋友基本都是xp或vista的系统,再者使用linux系统的想必都比我这种菜鸟还NB还在行,这种小伎俩不在话下。

     二、强烈推荐使用UltraVPN免费VPN实现翻墙。
    之前有听过此款免费VPN的好用,因为自己一直使用的是第一种方法的,也懒得去使用开启那么多客户端之类的程序,所以就一直没有试用过,直到上周想上FriendFeed无解,所以决定安装UltraVPN试用看看,而后感觉确实挺不错的而且速度还可以接受啊。所以推荐需要的话可以首选其作为免费vpn,只需注册个账号即免费使用。
    1、下载UltraVPN:点击这里
    2、安装软件,过程中可能会出现一个安装虚拟网卡的对话窗口,如下图,点击仍然继续。
     
    3、打开 C:\Program Files\UltraVPN\config 文件夹(默认安装目录),将client.ovpn改名为 ultra.ovpn。可以下载其他可用的OpenVPN的配置文件,比如 alonweb 的配置文件在这里,解压到这个文件夹,将alonweb.conf 改名为 alonweb.ovpn;其他VPN服务的配置也是如此。
      
    4、双击运行ultravpn软件,任务栏右下角会有多出一个vpn链接图标,如图所示(右键选择对应的vpn链接)
     
    5、要求你输入用户名密码。

     
    6、输入注册的账号和密码登陆,等待一会,右下角的UltraVPN图标颜色由红色-->绿色就表示已经链接成功。这里就不截图啦/// 有什么问题再说吧!
    好啦,关于自己如何翻墙上Twitter或者使用UltraVPN免费VPN使用国外(本人ultravpn得到的是法国的IP地址)网络访问被墙在外的网站的,如相识的现实朋友想上Twitter微博客的话可以这两措施试试修改访问看看,如果还有什么不明白的可以私下与鄙人联系,尽自己微薄之力助你一臂之力 嗯!

    Ps:N久没更新啦,就趁为了帮某些朋友整理篇大众文章意思更新下吧,最近没心情写博了。。。

Wordpress变换IP或新域名及实现子目录安装根目录访问设置

一、WordPress博客程序更换访问IP地址或新域名相关修改设置:
       由于是在本地虚拟机测试安装WordPress博客程序,没想到当初虚拟机用的是DHCP分配IP经常变动(或者更改新的域名地址),所以wordpress博客访问IP地址(或者域名地址)跟着变动而出现异常,主要是需要修改数据库中 siteurl 和 home 这两项对应的访问链接地址。借助phpmyadmin图形数据库管理稍作修改即可
       phpmyadmin-->wordpress_db_name-->wp-option--->option_name=siteurl&home
       将数据库表wp-option中option_name值为siteurl及home的编辑修改为新的IP地址(或者域名地址),搞定!如:原先使用本地动态IP:192.168.0.99搭建WordPress程序,由于变动手动设置静态IP为192.168.0.230故导致访问出现异常。将siteurl&home值http://192.168.0.99/wordpress-->http://192.168.0.230/wordpress即可

二、将WordPress程序安装至子目录中而访问博客显示为根目录
       WordPress允许你把WordPress文件放在一个子目录,而根目录可以留着放自己设计制作独特的个性主页,但在此之前依旧想让访问博客显示在站点的根目录中。
       1、创建用于存放WordPress安装程序的子目录(如本地以/blog为例,并全新安装博客
       2、完成安装后进入控制面板-->设置--常规选项。
       3、查找 WordPress 地址(URL)这个选项:把后面的地址改成刚创建存放WordPress安装程序的文件夹地址。比如:http://192.168.0.230/blog
       4、找到Blog 地址(URL)这个选项:把此地址改为访问博客的根目录的URL。例如:http://192.168.0.230
     
       5、保存更新设置
       6、将/blog子目录下的index.php和.htaccess文件(如果不存在则手动创建)转移到根目录(即Blog address对应目录)中。
       7、打开并编辑根目录下”index.php”这个文件。
       8、找到如下代码,修改并保存:找到
           require(’./wp-blog-header.php’);
        把地址改为你WordPress目录下的文件:
           require(’./blog/wp-blog-header.php’);
      9、登陆控制面板,新的控制面板地址为http://192.168.0.230/blog/wp-admin/
      10、如果你设置了结构化链接地址(Permalinks),打开永久链接选项面板更新Permalinks结构。如果.htaccess有正确的权限设置的话WordPress会自动更新你的.htaccess文件。如果 WordPress不能写入你的.htaccess文件,就会显示新的rewrite规则,因此你就需要手动把rewrite规则复制到.htaccess文件中(和index.php同目录),如在本地测试得到结果:


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


      官方文档:http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory

Dokuwiki重写URL配置

默认情况下,DokuWiki不做任何的URL重写,它的原始URL是这样的:
1. http://wiki.qingxianyan.cn/doku.php?id=page
这样默认的URL不利于有些搜索引擎不收录,而且也不易于记忆
通过设置DokuWiki的配置设置里面的高级设置的userwrite配置选项它可以支持两种URL重写方法:
      一个是利用服务器的mod_rewrite,
      另一个是在DokuWiki内部自己处理URL重写。
下面是userewrite选项值的列表及其对应的URL格式:
      1、默认值没有URL重写 http://wiki.qingxianyan.cn/doku.php?id=wiki:syntax
      2、htaccess服务器处理 http://wiki.qingxianyan.cn/wiki:syntax
      3、DokuWiki处理 http://wiki.qingxianyan.cn/doku.php/wiki:syntax
使用服务器处理
  先在/wiki/conf/dokuwiki.php中设置:
           $conf['userewrite'] = 1;
Apache服务器开启Rewrite功能
  apache的URL重写是使用mod_rewrite模块。在apache的配置文件中添加如下这行:

LoadModule rewrite_module modules/mod_rewrite.so

  然后使用mod_rewrte的指令来配置URL重写规则。这些规则可以放在apache的全局配置文件内,也可以放在DokuWiki的根目录下的.htaccess文件内,事实上DokuWiki已经为了写好了这些规则放在.htaccess.dist中,修改删除部分“#”注释即可 内容如下:

      RewriteEngine on
      RewriteBase /dokuwiki
      RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
      RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
      RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1&id=$2  [QSA,L]
      RewriteRule ^$                        doku.php  [L]
      RewriteCond %{REQUEST_FILENAME}       !-f
      RewriteCond %{REQUEST_FILENAME}       !-d
      RewriteRule (.*)                      doku.php?id=$1  [QSA,L]

  在RewriteBase /dokuwiki这一行,你需要根据实际情况做修改成指向你的DokuWiki目录的路径,Dokuwik就在站点根目录或者已经使用子域名解析到相应目录时,需将.htaccess 文件中的 RewriteBase /dokuwiki 行使用首字符“#”将其注释

安装配置基于KBS程序的BBS系统

注:此文备录 相关信息来自网络 记录备用下并时刻更新
操作系统环境:VM虚拟机下的Ubuntu8.04 Server 只安装OpenSSH服务
KBS BBS: kbs svn上最新的源代码
Apache:apache1.3.41.tar.gz (下载:http://www.apache.org
PHP:php5.2.6.tar.gz(下载:http://www.php.net
代码目录:/home/bbs/src/

安装前准备工作:更新安装时可能所需要的包:

# apt-get install automake1.9
# apt-get install php5-dev
# apt-get install libmysqlclient15-dev
# apt-get install sendmail
# apt-get install libesmtp5
# apt-get install byacc
# apt-get install libgmp3-dev
# apt-get install flex
# apt-get install libxml2-dev
# apt-get install libjpeg62-dev
# apt-get install libpng12-dev
# apt-get install libfreetype6-dev
# apt-get install subversion

创建bbs用户:

    # adduser bbs

安装apache服务:

# tar xvf apache_1.3.41.tar.gz
# cd apache_1.3.41
# CC="gcc" OPTIM="-O2" ./configure --prefix=/home/bbs/www --enable-module=so
# make
# make install

编辑apache的配置文件,User和Group都改成bbs,Port改成想要的端口。

# cd /home/bbs/www/conf
# vim httpd.conf

安装PHP

# tar xvf php-5.2.6.tar.gz
# cd php-5.2.6
# ./configure --with-mysql --with-apxs=/home/bbs/www/bin/apxs \\
--with-gd --with-png-dir --with-iconv --with-jpeg-dir \\
--with-zlib --with-ttf --with-freetype-dir --enable-gd-native-ttf
# make
# make install

编辑apache的配置文件/home/bbs/www/conf/httpd.conf,在里面加入这样一行:

AddType application/x-httpd-php .php

下载安装KBS
从kbs的svn服务器上下载最新的kbs源代码。

# cd /home/bbs/src
# svn co http://svn.kcn.cn/repos/kbs/trunk/kbs_bbs
# svn co http://svn.kcn.cn/repos/kbs/trunk/www2

查看bbs用户的gid和uid是多少。

# cat /etc/passwd | grep bbs

到kbs的站点定义目录下,建造一份自己的站点的定义文件,比如站点叫做Yousri。尤其要修改Yousri.h中的BBSUID和BBSGID为刚才看到的bbs用户的编号。

# cd /home/bbs/src/kbs_bbs/site
# cp fb2k-v2.h yousri.h
# cp fb2k-v2.c yousri.c
# vim yousri.h
运行autogen.sh。
# cd /home/bbs/src/kbs_bbs
# ./autogen.sh
# cd sshbbsd
# ./autogen.sh

编译安装kbs。

# cd /home/bbs/src/kbs_bbs
# ./configure --prefix=/home/bbs --enable-site=yousri \\
--with-php --with-mysql --enable-ssh --enable-ssl \\
--with-openssl=/usr --with-libesmtp --enable-innbbsd CFLAGS="-O3 -g"
# make
# make install

如果是新建的bbs站点,还需要安装默认的站点文件。

# make install-home

给sshbbsd生成钥匙。

# cd /home/bbs/etc
# touch sshd_config
# ssh-keygen -t rsa1 -f ssh_host_key

从php源码目录复制来一个php的配置文件,并编辑之。

# cd /usr/local/lib
# cp /home/bbs/src/php-5.2.6/php.ini-dist php.ini
# vim php.ini

修改extension_dir一行为:

extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/"

然后加入下面一行:

extension=libphpbbslib.so

把www2符号连接到apache的网页目录来。

# cd /home/bbs/www/
# mv htdocs htdocs.default
# ln -s ../src/www2 htdocs

因为之前很多操作需要用root执行,可能bbs的很多文件的owner和group不对,所以一并搞掉。

# chown -R bbs:bbs /home/bbs

启动BBS:

# cd /home/bbs/bin
# ./miscd daemon
# ./bbslogd
# ./bbsd -p 23
# ./sshbbsd -p 22
# cd ../www/bin
# ./apachectl start

如果要停止bbs的话按如下操作:

# cd /home/bbs/www/bin
# ./apachectl stop
# cd ../../bin
# killall sshbbsd
# killall bbsd
# killall bbslogd
# ./miscd flush
# killall miscd

其中期间遇到过两个比较莫名其妙的小问题
到最后启动bbs的时候 执行

root@yousri:/home/bbs/bin# ./miscd daemon
Bus error

这一步的时候出现如此的错误提示
还有就是启动后 telnet 127.0.0.1 进入要注册出现无法注册的现象如注册SYSOP账号却提示
“由于某些系统原因, 无法注册新的帐号.”
然后要再次连接 telnet 127.0.0.1 就无法连接了

“root@yousri:/home/bbs# telnet 127.0.0.1
  Trying 127.0.0.1...
  Connected to 127.0.0.1.
  Escape character is '^]'.
  Connection closed by foreign host.”

至于执行./miscd daemon报错的问题 后来又重新编译安装了下kbs代码 倒是可行了。。。
对于无法注册账号的 貌似要杀掉有关miscd及bbslogd的进程 然后重新创建才可以 即:

killall miscd
killall bbslogd

终于正常了。。。。
其他系统使用待更新。。。。

DNS服务器调试工具dig、host、nslookup

       先前曾经简单介绍过在CentOS5.2下搭建实现DNS服务器,可查看这里

       现在就再简单大致记录介绍三款常用于检查测试调试DNS服务器搭建是否成功的工具吧~即Dig、Host、Nslookup,介绍:

      
Shell方式可以使用3种工具来查询DNS数据库:nslookup、dig和host,在BIND的软件发布中包括nslookup和dig。
Nslookup是这三个工具中最老的,而且总是随同BIND一起发布;dig是域信息的探索程序,最初由SteveHotz编写,后来
MichaelSawy针对BIND 9将它重新编写,它也和BIND一起发布;host由Eric
Wassenaar编写,是另一个开放源代码的工具,其特点是输出对用户很友好,功能是可检查区文件的语法。另外三者使用的解析器库不同:dig和
host使用BIND的解析器,而nslookup有其自身的解析器。

       (1)、Dig命令

Usage:  dig [@global-server] [domain] [q-type] [q-class] {q-opt}
            {global-d-opt} host [@local-server] {local-d-opt}
            [ host [@local-server] {local-d-opt} [...]]

      
以上是关于dig用法参数列表,可以通过man dig 或者 dig –h | more 查看其命令相应的帮助信息~ 参数可接IP
address或domain name来获得name server所提供的相关讯息,提供不同资料记录型态,例如A、MX…等等

      (2)、Host命令

[root@yanqx ~]$ host -h              
host: illegal option — h
Usage: host [-aCdlriTwv] [-c class] [-N ndots] [-t type] [-W time]
            [-R number] hostname [server]
       -a is equivalent to -v -t *
       -c specifies query class for non-IN data
       -C compares SOA records on authoritative nameservers
       -d is equivalent to -v
       -l lists all hosts in a domain, using AXFR
       -i IP6.INT reverse lookups
       -N changes the number of dots allowed before root lookup is done
       -r disables recursive processing
       -R specifies number of retries for UDP packets
       -t specifies the query type
       -T enables TCP/IP mode
       -v enables verbose output
       -w specifies to wait forever for a reply
       -W specifies how long to wait for a reply
       -4 use IPv4 query transport only
       -6 use IPv6 query transport only

       默认情况下,只是简单使用host+欲查询域名得到只是简单一些A记录或MX记录等,想了解全部信息需加上 –a 参数查看 如:

[root@yanqx ~]$ host qingxianyan.cn
qingxianyan.cn has address 74.220.219.76
qingxianyan.cn mail is handled by 0 qingxianyan.cn.

   (3)、Nslookup命令

       在linux或win下
入nslookup命令后,会看到 > 提示符号,之后就可输入查询指令。一般会输入IP address或是domain
name来做反向及正向的解析。而nslookup不仅提供上述2种解析,亦像dig提供DNS中其它的资料记录型态,例如A、MX、NS…等等,可在提
示符号直接输入”?”来获得所有可以使用的参数或资料型态。

Commands:   (identifiers are shown in uppercase, [] means optional)
NAME            - print info about the host/domain NAME using default server
NAME1 NAME2     - as above, but use NAME2 as server
help or ?       - print info on common commands
set OPTION      - set an option
    all                 - print options, current server and host
    [no]debug           - print debugging information
    [no]d2              - print exhaustive debugging information
    [no]defname         - append domain name to each query
    [no]recurse         - ask for recursive answer to query
    [no]search          - use domain search list
    [no]vc              - always use a virtual circuit
    domain=NAME         - set default domain name to NAME
    srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc.
    root=NAME           - set root server to NAME
    retry=X             - set number of retries to X
    timeout=X           - set initial time-out interval to X seconds
    type=X              - set query type (ex. A,ANY,CNAME,MX,NS,PTR,SOA,SRV)
    querytype=X         - same as type
    class=X             - set query class (ex. IN (Internet), ANY)
    [no]msxfr           - use MS fast zone transfer
    ixfrver=X           - current version to use in IXFR transfer request
server NAME     - set default server to NAME, using current default server
lserver NAME    - set default server to NAME, using initial server
finger [USER]   - finger the optional NAME at the current default host
root            - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to FILE)
    -a          -  list canonical names and aliases
    -d          -  list all records
    -t TYPE     -  list records of the given type (e.g. A,CNAME,MX,NS,PTR etc.)
view FILE           - sort an ‘ls’ output file and view it with pg
exit            - exit the program

     参考资料:http://docsrv.sco.com/NET_tcpip/dnsC.nslook.html

加强Apache配置的安全方法

一、确保你安装的是最新的补丁
         如果门是敞开的话,在窗户上加锁就毫无意义。同样道理,如果你没有打补丁,继续下面的操作就没有什么必要。
二、隐藏Apache的版本号及其它敏感信息
         默认情况下,很多Apache安装时会显示版本号及操作系统版本,甚至会显示服务器上安装的是什么样的Apache模块。这些信息可以为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态。
         这里有两条语句,你需要添加到你的httpd.conf文件中:

    ServerSignature Off
    ServerTokens Prod

         ServerSignature出现在Apache所产生的像404页面、目录列表等页面的底部。ServerTokens目录被用来判断 Apache会在Server HTTP响应包的头部填充什么信息。如果把ServerTokens设为Prod,那么HTTP响应包头就会被设置成:

Server:Apache

         如果你非常想尝试其它事物,你可以通过编辑源代码改成不是Apache的其它东西,或者你可以通过下面将要介绍的mod_security实现。
三、确保Apache以其自身的用户账号和组运行
         有的Apache安装过程使得服务器以nobody的用户运行,所以,假定Apache和你的邮件服务器都是以nobody的账号运行的,那么通过Apache发起的攻击就可能同时攻击到邮件服务器,反之亦然。

    User apache
    Group apache

四、确保web根目录之外的文件没有提供服务
         我们不让Apache访问web根目录之外的任何文件。假设你的所以web站点文件都放在一个目录下(例如/web),你可以如下设置:

    Order Deny,Allow
    Deny from all
    Options None
    AllowOverride None
    Order Allow,Deny
    Allow from all

         注意,因为我们设置Opitins None 和AllowOverride None,这将关闭服务器的所有Option和Override。你现在必须明确把每个目录设置成Option或者Override。
五、关闭目录浏览
      你可以在Directory标签内用Option命令来实现这个功能。设置Option为None或者-Indexes。
         Options -Indexes
六、关闭includes
      这也可以通过在Directory标签内使用Option命令来实现。设置Option为None或者-Includes。
         Options -Includes
七、关闭CGI执行程序
         如果你不用CGI,那么请把它关闭。在目录标签中把选项设置成None或-ExecCGI就可以:
         Options -ExecCGI
八、禁止Apache遵循符号链接
         同上,把选项设置成None或-FollowSymLinks:
         Options -FollowSymLinks
九、关闭多重选项
         如果想关闭所有选项,很简单:
         Options None
         如果只想关系一些独立的选项,则通过将Options做如下设置可实现:
         Options -ExecCGI -FollowSymLinks -Indexes
十、关闭对.htaccess文件的支持
         在一个目录标签中实现:
         AllowOverride None
         如果需要重载,则保证这些文件不能够被下载,或者把文件名改成非.htaccess文件。比如,我们可以改成.httpdoverride文件,然后像下面这样阻止所有以.ht打头的文件:

    AccessFileName .httpdoverride
    Order allow,deny
    Deny from all
    Satisfy All

十一、运行mod_security
         Run mod_security是O’Reilly出版社出版的Apache Security一书的作者,Ivan Ristic所写的一个非常好用的一个Apache模块。可以用它实现以下功能:
         ·简单过滤
         ·基于过滤的常规表达式
         ·URL编码验证
         ·Unicode编码验证
         ·审计
         ·空字节攻击防止
         ·上载存储限制
         ·服务器身份隐藏
         ·内置的Chroot支持
         ·更多其它功能

十二、关闭任何不必要的模块
         Apache通常会安装几个模块,浏览Apache的module documentation,了解已安装的各个模块是做什么用的。很多情况下,你会发现并不需要激活那些模块。
         找到httpd.conf中包含LoadModule的代码。要关闭这些模块,只需要在代码行前添加一个#号。要找到正在运行的模块,可以用以下语句:

grep LoadModule httpd.conf

         以下模块通常被激活而并无大用:mod_imap,mod_include,mod_info,mod_userdir,mod_status,mod_cgi,mod_autoindex。

         网络上学习了解收集到的~当作收藏,这东西实用性因人而异,嗯。

Apache潜在漏洞

        很多多论坛网站,都具备有上传附件的的功能,一般都会开放rar附件上传,并可能会保留原来文件名称,这从而可能导致一个很严重的问题,test.php.rar文件可能会被Apache当作php文件来执行,造成一定程度的安全隐患。
        如何测试? 当你将某个php程序文件后缀名修改成 test.php.rar,这时测试一下,还是按照PHP文件解析执行,Apache并不会认为这是一个rar文件,这是为什么呢?
        其实,因为每遇到一种后双重后缀名(如test.php.rar)的文件,Apache都会去conf/mime.types文件中检查最后一个后缀,如果最后一个后缀并没有在mime.types文件中定义,则使用前一个后缀来解释,因为在默认情况下,rar并未在mime.types中定义,故 Apache会使用php后缀来解释文件,这就是漏洞的原因所在吧。
        由此可知,如果使用test.jsp.aaa.rar则会很可能认为是jsp文件,如果修改成test.shtml.rar,则会识别成shtml文件。
        如果没有相应修改设置,不知道有多少网站可能存在这个问题? 如何杜绝这个隐患 ?
        修改Apache相应的配置文件httpd.conf文件内容:

    AddType application/rar .rar
    AddType application/x-compressed .rar
    AddType application/x-rar .rar
    AddType application/x-rar-compressed .rar
    AddType application/x-rar-compressed; application/x-compressed .rar
    AddType compressed/rar; application/x-rar-compressed .rar

        然后重新启动Apache服务
        针对Web管理员及Web程序开发者,如何更安全
        1.只允许上传指定后缀名的文件,当然,要禁止掉rar格式文件上传。(但这条往往行不通,一般的网站都需要上传rar文件)
        2.对上传后的文件名进行强制重命名,强制使用最后一个扩展名,如原始文件名为test.php.rar,上传后强制重命名为20090412.rar即可避免这个隐患
        ps:早期版本的phpcms、discuz等貌似存在这个漏洞

查看硬件信息工具lshw及查找打开的文件工具lsof

        介绍推荐两款命令系统工具:硬件配置信息查看工具lshw及查看打开的文件和套接字工具lsof
        lshw硬件查看工具,它全称叫:HardWare LiSter,实现的原理应该可以说是获取使用/proc里面读取到的数据来显示相关的信息
        下载地址:http://ezix.org/software/files/lshw-B.02.14.tar.gz
        解压安装:tar -zxvf lshw-B.02.14.tar.gz && make && make install 即可
        可以先了解查看解压后目录下的README文件信息:

    1 lshw: HardWare LiSter for Linux
    2 ===============================
    4 lshw is a small tool to provide detailed information on the hardware confi-
    5 guration of the machine. It can report exact memory configuration, firmware
    6 version, mainboard configuration, CPU version and speed, cache configuration,
    7 bus speed, etc. on DMI-capable x86 or EFI (IA-64) systems and on some PowerPC
    8 machines (PowerMac G4 is known to work).
    10 Information can be output in plain text, XML or HTML.
    12 It currently supports DMI (x86 and EFI only), OpenFirmware device tree
    13 (PowerPC only), PCI/AGP, ISA PnP (x86), CPUID (x86), IDE/ATA/ATAPI, PCMCIA
    14 (only tested on x86), USB and SCSI.
    16  * Requirements
    17     . Linux 2.4.x or 2.6.x (2.2.x might work, though)
    18     . a PA-RISC, Alpha, IA-64 (Itanium), PowerPC or x86 based machine
    19     . an ANSI (or close enough to ANSI compliance) C++ compiler
    20     (tested with g++ 2.95.4 and 3.2.2)
    21     . for the (optional) GTK+ graphical user interface, you will need a
    22     complete GTK+ 2.4 development environment (gtk2-devel on RedHat/Fedora
    23     derivatives)
    25  * To compile it, just use:
    27     $ make
    29  * If you want to build the optional GUI, do:
    31     $ make
    32     $ make gui
    34  * the lshw home page is http://lshw.org/
    35  * send bug reports, requests for help, feature requests, comments, etc. to
    36    bugs@ezix.org.  The author can be contacted directly (lyonel@ezix.org)
    37    Please make sure you include enough information in your bug report:
    XML  38    output from lshw is preferred over text or HTML, indicate the affected
    39    version of lshw, your platform (i386, x86-64, PA-RISC, PowerPC, etc.) and 40
    your distribution.
    and so on。。。

        可以使用html格式输出这些信息 通过web浏览查看 如:

    #lshw -html >/var/www/pcinfo.html

        然后网页 http://yourdomain/pcinfo.html 查看
        还有更多的相关lshw参数可以使用 也支持图形界面的查看,详见

    #lshw –X    //图形界面
    #man lshw   // 查看lshw工具更多参数用法

        lsof轻松查看正在运行的进程可打开哪些文、目录及套接字等信息,了解应用程序打开了哪些文件或者哪个应用程序打开了特定的文件,进而了解更多关于系统的信息。
        快速查出哪个进程在使用某个特定目录(如:/root/install) ,此有助于umount(卸载)或rm(删除)某些文件系统或目录前进行确认,可尝试使用lsof工具:

    [root@yanqx ~]# lsof /root/install/
    COMMAND   PID USER   FD   TYPE DEVICE SIZE      NODE NAME
    bash    18041 root  cwd    DIR   0,29 4096 188088470 /root/install/

        可见得,显然是root进入到了/root/install目录中。。。。
        同样,lsof也可列举出与特地进程相关联到的文件、目录、库等等信息,如要显示与指定PI进程相关联的文件可使用-p选项:

    [root@yanqx ~]# lsof -p 9554
    COMMAND  PID USER   FD   TYPE   DEVICE    SIZE      NODE NAME
    sshd    9554 root  cwd    DIR     0,29    4096 187957388 /
    sshd    9554 root  rtd    DIR     0,29    4096 187957388 /
    sshd    9554 root  txt    REG     0,29  409560 187988270 /usr/sbin/sshd
    sshd    9554 root  mem    REG     0,29  132304 187973604 /lib64/ld-2.5.so
    sshd    9554 root  mem    REG     0,29   44472 187973606 /lib64/libpam.so.0.81.5
    sshd    9554 root  mem    REG     0,29   20424 187973386 /lib64/libdl-2.5.so
    sshd    9554 root  mem    REG     0,29 1750504 190255826 /usr/local/ssl/lib/libcrypto.so.0.9.8
    sshd    9554 root  mem    REG     0,29   15280 187973406 /lib64/libutil-2.5.so
    sshd    9554 root  mem    REG     0,29   83344 187959026 /usr/lib64/libz.so.1.2.3
    sshd    9554 root  mem    REG     0,29  111480 187973548 /lib64/libnsl-2.5.so
    sshd    9554 root  mem    REG     0,29   45728 187973602 /lib64/libcrypt-2.5.so
    sshd    9554 root  mem    REG     0,29   89800 187972006 /lib64/libresolv-2.5.so
    sshd    9554 root  mem    REG     0,29 1698672 187973486 /lib64/libc-2.5.so
    sshd    9554 root  mem    REG     0,29   84400 187973582 /lib64/libaudit.so.0.0.0
    sshd    9554 root  mem    REG     0,29   53880 187973574 /lib64/libnss_files-2.5.so
    sshd    9554 root    0u   CHR      1,3          12392555 /dev/null
    sshd    9554 root    1u   CHR      1,3          12392555 /dev/null
    sshd    9554 root    2u   CHR      1,3          12392555 /dev/null
    sshd    9554 root    3u  IPv6 12393000               TCP *:ssh (LISTEN)
    sshd    9554 root    4u  IPv4 12393002               TCP *:ssh (LISTEN)

        或也可以通过使用-c参数选项,来通过进程名称来指定的进程查看:

    [root@yanqx ~]# lsof -c init
    COMMAND PID USER   FD   TYPE DEVICE    SIZE      NODE NAME
    init      1 root  cwd    DIR   0,29    4096 187957388 /
    init      1 root  rtd    DIR   0,29    4096 187957388 /
    init      1 root  txt    REG   0,29   40968 187988546 /sbin/init
    init      1 root  mem    REG   0,29          96280139 /sbin/init (path inode=187988546)
    init      1 root  mem    REG   0,29  132304 187973604 /lib64/ld-2.5.so
    init      1 root  mem    REG   0,29  245264 187973608 /lib64/libsepol.so.1
    init      1 root  mem    REG   0,29   92960 187973474 /lib64/libselinux.so.1
    init      1 root  mem    REG   0,29 1698672 187973486 /lib64/libc-2.5.so
    init      1 root  mem    REG   0,29   20424 187973386 /lib64/libdl-2.5.so
    init      1 root   10u  FIFO   0,48          12392766 /dev/initctl

        关于lsof这工具还可以通过相当多的不同参数进行实现不同功能 这里就不一一列举。。可自己查看工具命令帮助文档了解 嗯
        对此两工具就简单介绍分享推荐到此////

删除Ubuntu的NetworkManager网络管理并手动设置静态IP

        Ubuntu操作系统安装完成后网络管理默认是用DHCP自动获取IP地址的,之前在自己住宿就一两台机使用反正也没啥差就懒得改为静态固定IP,但是最近在公司使用vm虚拟机下安装了台Ubuntu8.10玩一玩,有时基本使用SecureCRT软件SSH远程登陆使用,但是由于公司使用都是内部动态 IP地址,而且机器较多所以导致IP地址经常性更换,有点烦所以自己决定试图修改成使用静态IP,可是那个可恶的NetworkManager总是在重启后又变成默认的DHCP自动获取IP。。。故决定删除彻底NetworkManager

    sudo apt-get –purge remove network-manager
    sudo apt-get –purge remove network-manager-gnome

        手动设置静态IP地址:编辑修改网络接口配置文件/etc/network/interfaces

    sudo vim /etc/network/interfaces
    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
            address 172.17.4.170
            netmask 255.255.255.0
            network  172.17.4.1
            gateway 172.17.4.3

        修改设置DNS服务器配置文件/etc/resolv.conf

    sudo vim /etc/resolv.conf
    nameserver 202.101.103.54
    nameserver 202.101.103.55
    nameserver 172.17.4.1

        最后重启网络服务

sudo /etc/init.d/networking restart

        这样上网基本就没什么问题啦/// 如果你之前没有删除NetworkManager网络管理的话,重启后/etc/resolv.conf里面的配置文件又会被修改为

# Generated by NetworkManager

        导致又是使用DHCP动态分配IP地址的。

Windows系统Vim编辑器乱码解决分析

       貌似之前就有遇到过在windows系统下vim出现中文乱码的情况,只是用得较少而且也懒得去捣鼓它/// 这问题直到昨晚因为试用了个Casparant同学介绍的一款用于实现twitter客户端功能Vim插件—TwitVim的时候查看消息的时候出现的根本都是乱码。。。所以决定搞定关于Vim编辑器编码方式导致中文乱码的问题///
       上网了解了下才知道原来Vim有四个跟字符编码方式有关的选项,分别是:encoding、fileencoding、fileencodings、 termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们各自的意义:
       * encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义。
       * fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。
       * fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。
       * termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。
       由于 Unicode 能够包含几乎所有的语言的字符,Unicode的 UTF-8 编码方式又是非常具有性价比的编码方式,因此encoding 的值设置为utf-8。同时将encoding设置为utf-8时,Vim自动探测文件的编码方式会更准确。在中文 Windows里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为GB2312/GBK比较合适,因此fileencoding建议设置为 chinese (chinese 是个别名,在Unix里表示gb2312,在Windows里表示cp936,也就是GBK的代码页)。
       最终对于文件中显示乱码、菜单乱码、右键菜单乱码以及Conlse输出乱码问题的解决方案,修改Vim编辑器所对应的配置文件_vimrc,添加如下配置:
       “处理文本中显示乱码

set encoding=utf-8
set fileencodings=utf-8,chinese,latin-1
if has("win32")
set fileencoding=chinese
else
set fileencoding=utf-8
endif

       “处理菜单及右键菜单乱码

source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

       “处理consle输出乱码

language messages zh_CN.utf-8

       关于Vim的支持多字符编码方式工作的运作原理是:
       首先、Vim 启动,根据_vimrc配置文件中设置的encoding的值来设置buffer、菜单文本、消息文的字符编码方式。
       紧接、读取要编辑的文件,根据fileencodings中列出的字符编码方式逐一探测该文件编码方式。并设置fileencoding 为探测到的字符编码方式。
       然后、对比fileencoding和encoding的值,若不同则调用iconv将文件内容转换为encoding所描述的字符编码方式,并且把转换后的内容放到为此文件开辟的buffer里,完成后就可以开始编辑这个文件。
       最后、编辑完成后保存文件时,再次对比fileencoding和encoding的值。若不同再次调用iconv将即将保存的buffer中的文本转换为fileencoding所描述的字符编码方式,并保存到指定的文件中。
       注:需要调用外部的iconv.dll,需要保证这个文件存在于$VIMRUNTIME或者其他列在PATH环境变量中的目录里。

Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’

       不幸遇到Mysql出现ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’错误导致无法启动
解决方法: 修改/etc/my.conf:

[client]
socket=/var/lib/mysql/mysql.sock
[mysqld]
socket=/var/lib/mysql/mysql.sock

       这样mysqld 及mysql就都可以搞定启动起来啦///
       不过问题也就来了,php程序链接数据库的时候同样还是会出现这个问题,因为这还需要修改/etc/php.ini的php配置文件中的mysql.default_socket的值,其默认的时候是为空的,将其修改设置为:

mysql.default_socket=/var/lib/mysql/mysql.sock

       但是有时这样并未能搞定php链接数据库的出现的Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 的问题,因为php程序很BT的貌似非得找链接/tmp/mysql.sock而这个文件是不存在的,好吧,那就给他做个链接操作不就得了

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

       这样php程序页面就可以链接到数据库啦!!!
附:

ls -l /var/lib/mysql/mysql.sock

看到的属性是:

srwxrwxrwx 1 mysql mysql 0 11-21 14:39 /var/lib/mysql/mysql.sock

       档案类型标志是s,还真没去了解过这样的类型。。。。

centos5.2搭建配置dns服务

一、配置环境:
       OS:CentOS 5.2
       IP:192.168.1.99
       计算机名:yousri
       域名:yousri.com
       别名:www.yousri.com

二、检查自己是否已经安装了Bind:

[root@yanqx ~]# rpm –qa | grep bind
bind-9.3.4-6.P1.el5.i386.rpm
bind-libbind-devel-9.3.4-6.P1.el5.i386.rpm
bind-sdb-9.3.4-6.P1.el5.i386.rpm
bind-devel-9.3.4-6.P1.el5.i386.rpm
caching-nameserver-9.3.4-6.P1.el5.i386.rpm
bind-chroot-9.3.4-6.P1.el5.i386.rpm

       主要检查以上六个包是否有安装:
       配置文件修改,主要将涉及到的配置文件包括以下:

/etc/sysconfig/network   //设置主机名
/etc/sysconfig/network-scripts/ifgcfg-eth0  //设置IP地址
/etc/named.conf    //DNS主配置文件
/var/named/chroot/var/named/yousri.com.db   //正向解析文件
/var/named/chroot/var/named/1.168.192.db   //反向解析文件
/etc/resolv.conf     //本机DNS配置文件
/var/named/chroot/var/named/localdomain.zone   //正向解析文件模板
/var/named/chroot/var/named/named.local       //反向解析文件模板

       关于修改主机名及设置IP地址的配置这里就不多言啦/// 可以上网的话基本都已经配置好啦,可使用hostname查询主机名

三、主配置文件named.conf的配置
       因为主配置文件named.conf包含一句话扩展外包配置文件的记录:include “/etc/named.rfc1912.zones”;故这里在配置定义正向解析文件与反向解析文件

[root@yanqx ~]#vim /var/named/chroot/etc/named.rfc1912.zonesf
zone "yousri.com" IN {       //定义一个正向域yousri.com
type master;
file "yousri.com.db";    //定义正向解析文件名 yousri.com.db
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {        //定义反向域
type master;
file "1.168.192.db";                  //定义反向解析文件名 1.168.192.db
allow-update { none; };
};

       添加以上两段配置文件保存并退出

四、配置正向解析与反向解析文件
       正向反向解析文件都创建在相同目录—/var/named/chroot/var/named/下,且可直接使用原有的模板localdomain.zone及named.local分别修改而得

[root@yanqx ~]#cd /var/named/chroot/var/named
[root@yanqx named]#cp -p localdomain.zone yousri.com.db
[root@yanqx named]#cp -p named.local 1.168.192.db

       使用参数p,是为了复制文件时保持文件的属性不变,防止有误导致稍后named服务无法启动/// 接下来分别修改这两个配置文件为如下:
正向解析文件:

[root@yanqx named]#vim yousri.com.db
 $TTL 86400
 $ORIGIN yousri.com.
 @         IN SOA yanqx.yousri.com. root.yanqx.yousri.com. (
                20060415              ; serial (d. adams)
            28800       ; refresh
             7200   ; retry
           604800   ; expiry
            86400 )   ; minimum

         IN NS   yanqx.yousri.com.
         IN MX 10 mail.yousri.com.
 @   IN A 192.168.1.99
 yanqx IN A 192.168.1.99
 mail IN A 192.168.1.99
 www IN CNAME yanqx

反向解析文件:

[root@yanqx named]#vim 1.168.192.db
 $TTL 86400
 @         IN SOA yanqx.yousri.com. root.yanqx.yousri.com. (
                                     20060415              ; serial (d. adams)
                                        28800              ; refresh
                                         7200              ; retry
                                       604800              ; expiry
                                        86400 )            ; minimum

         IN NS yousri.com.
 99      IN PTR yanqx.yousri.com.
 99      IN PTR mail.yousri.com.

五、系统配置
       1、修改/etc/resolv.conf文件,添加一条本机IP的DNS记录,以便实现域名解析效果

[root@yanqx named]#vim /etc/resolv.conf
 nameserver 202.101.103.54
 nameserver 202.101.103.55
 nameserver 192.168.1.99

       其中202.101.103.54&202.101.103.55为厦门电信DNS,120.35.120.155为本机IP地址
2、启动DNS服务及named服务

[root@yanqx ~]#/etc/init.d/named start

或者

[root@yanqx ~]#service named start

3、测试服务
       使用测试的命令是dig或nslookup或ping 侦测验证或更具体的客户端验证
       windows xp/2003客户端配置:网上邻居–属性–网络连接–属性–TCP/IP/属性/DNS–添加192.168.1.99记录保存退出即可。接着还可以结合已配置有DNS服务的服务器上搭建apache服务,配置apache基于名字的虚拟主机服务,配置使用www.yousri.com的域名,并在客户端(刚已设置好DNS的客户端上)直接浏览器浏览http://www.yousri.com访问apache服务的虚拟主机程序。

实现Windows定时关机脚本

     
刚刚一个朋友发来QQ消息问我用过可以设置自动关机的播放器么///额,自己倒是还没用过,原来她是想开着机子放音乐伴随着歌声入睡然后自动关机,自己只
在linux下使用命令设置定时关机,在windows下倒是貌似比较少用过这类附带有这类功能的软件便是,最多也就用一些批处理.bat脚本来定制实现
的吧。。。。后来就也只能用这个分享给她用啦///呵呵,其实也挺简单方便的,所以这里贴出来共享下(谁写忘记,因为当初也是朋友分享于我)

     实现的主要功能包括:定时关机、倒计时关机、删除定时关机任务、查看任务状态、重启、注销、锁定计算机等

@ECHO off
TITLE greaterthanme-实现定时关机、注销、重启、锁定等功能。

:start
CLS
COLOR 1f
rem 使用COLOR命令对控制台输出颜色进行更改
MODE con: COLS=41 LINES=18
rem MODE语句为设定窗体的宽和高
set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
ECHO %date% %tm1%点%tm2%分%tm3%秒
ECHO =========================================
ECHO 请选择要进行的操作,然后按回车
ECHO ───────────────
ECHO.
ECHO 1. 定时关机
ECHO 2. 倒计时关机
ECHO 3. 删除定时关机任务
ECHO 4. 查看任务状态
ECHO 5. 刷新当前时间
ECHO 6. 重新启动
ECHO 7. 锁定计算机
ECHO 8. 注销
ECHO 9. 退出
ECHO.

:cho
SET Choice=
SET /P Choice=选择:
rem 设定变量"Choice"为用户输入的字符
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
rem 如果输入大于1位,取第1位,比如输入132,则返回值为1
ECHO.
IF /I "%Choice%"=="1" GOTO SetHour
IF /I "%Choice%"=="2" GOTO outtime
IF /I "%Choice%"=="3" GOTO delAt
IF /I "%Choice%"=="4" GOTO view
IF /I "%Choice%"=="5" GOTO start
IF /I "%Choice%"=="6" GOTO restart
IF /I "%Choice%"=="7" GOTO lock
IF /I "%Choice%"=="8" GOTO logoff
IF /I "%Choice%"=="9" GOTO end
rem 为避免出现返回值为空或含空格而导致程序异常,需在变量外另加双引号
rem 注意,IF语句需要双等于号
rem 如果输入的字符不是以上数字,将返回重新输入
ECHO 选择无效,请重新输入
ECHO.
GOTO cho

:SetHour
CLS
ECHO.
SET ask=
SET /p ask=是否设定为每天执行关机命令(y/n):
IF NOT "%ask%"=="" SET ask=%ask:~0,1%
IF /I "%ask%"=="y" GOTO yes
IF /I "%ask%"=="n" GOTO no
GOTO SetHour

:yes
ECHO 请指定24小时制式时间,格式为 小时:分钟
SET shutdowntime=
SET /p shutdowntime=输入:
at %shutdowntime% /every:M,T,W,Th,F,S,Su tsshutdn 0 /delay:0 /powerdown >nul
rem 设定为每周的星期一至星期日,即为每天
IF NOT errorlevel 1 GOTO ok
rem 如果输入正确,就执行ok段的语句
ECHO %shutdowntime% 不是标准的时间格式,请重新输入
ECHO.
GOTO yes

:no
ECHO 请指定24小时制式时间,格式为 小时:分钟
SET shutdowntime=
SET /p shutdowntime=输入:
at %shutdowntime% tsshutdn 0 /delay:0 /powerdown >nul
IF NOT errorlevel 1 GOTO ok
ECHO %shutdowntime% 不是标准的时间格式,请重新输入
ECHO.
GOTO no

:ok
ECHO.
SET h=%shutdowntime:~1,1%
SET ah=%shutdowntime:~0,1%
SET am=%shutdowntime:~2,2%
SET bh=%shutdowntime:~0,2%
SET bm=%shutdowntime:~3,2%
IF "%h%"==":" (
SET HM=%ah%时%am%分
) ELSE (
SET HM=%bh%时%bm%分)
rem 如果输入h:mm则HM=h时mm分,否则HM=hh时mm分
IF /I "%ask%"=="y" ECHO 系统将于每天的%HM%关闭
IF /I "%ask%"=="n" ECHO 系统将于%HM%关闭
ECHO 设定完毕! 按任意键继续...
PAUSE >nul
GOTO start

:outtime
CLS
ECHO.
ECHO 请输入倒计时秒数
ECHO ────────
ECHO (设定后要取消,单击"确定"后按Ctrl+C键两次)
SET timed=
SET /p timed=输入:
tsshutdn %timed% /delay:0 /powerdown >nul
IF not errorlevel 1 GOTO ok
ECHO %timed% 是无效的关机时间,请重新输入
ECHO.
GOTO outtime

:delAt
cls
echo.
at /del /y
echo 定时关机任务已取消,按任意键继续...
pause >nul
GOTO start

:view
MODE con: COLS=85 LINES=18
COLOR 70
ECHO.
at
ECHO 按任意键继续...
PAUSE >nul
GOTO start

:restart
shutdown -r -t 0

:lock
rundll32.exe user32.dll,LockWorkStation
goto start

:logoff
logoff

:end
exit

Nagios基本平台搭建

      Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能的代码,所有的监控、检测功能都是有插件来完成的。再说报警功能,如果监控系统发现问题不能报警那就没有意义了,所以报警也是Nagios很重要的功能之一。但是,同样的,nagios自身也没有报警部分的代码,甚至没有插件,而是交给用户或者其他相关开源项目组去完成。类似这样细致的工作,被Nagios的开发人员称为dirty work(脏活)。其实脏活不脏,只是太细致了,对于nagios——一个负责监控工作的老板来说,细致的工作必然是交给他的员工去搞定啦。

      这里只小分享下关于Nagios安装,只是指基本平台,也就是Nagios软件包的安装。它是监控体系的框架,也是所有监控的基础。后续系列文章会再更多的分享

     在Nagios官方的文档,会发现Nagios基本上没有什么依赖包,只要求系统是linux或者其他nagios支持的系统。不过如果你没有安装Apache(http web服务),那么就没办法直观的界面来了解信息,所以apache可以算是一个前提条件。关于apache的安装,网上相关文档多得是,找Google老师~

      官方网站下载最新的nagios软件包,这里使用的是nagios-3.0.4.tar.gz版本下实现的 。建议先阅读官方文档相关帮助信息。

      1、 创建Nagios用户

adduser nagios
mkdir /usr/local/nagios
chown nagios.nagios /usr/local/nagios

     2、 建立Nagios组

grep "^User" /etc/httpd/conf/httpd.conf
/usr/sbin/usermod -G nagcmd apache #apache的用户名
/usr/sbin/usermod -G nagcmd nagios

     3、 解压

tar xzf nagios-3.0.4.tar.gz

     4、 编译

./configure --prefix=prefix --with-nagios-user=someuser  \\
--with-nagios-group=somegroup --with-command-group=cmdgroup
#变量prefix 为安装目录,例如/usr/local/nagios
#变量someuser 为nagios的用户,例如nagios
#变量somegruop 为nagios属于的组,例如nagios
#变量cmdgroup 为nagios命令行属组,例如nagcmd

    5、 安装

make all
make install
make install-config
make install-init

     6、 检查

ls /usr/local/nagios/
bin  etc  libexec  sbin  share  var
bin  etc  sbin  share  var
#看到这5个目录就ok了

    7、 生成http用户验证文件,用户名为Nagios

/usr/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagios

    8、 将Nagios的信息加到apache中,打开/etc/apache2/apache2.conf文件,在文件最后添加如下代码:

ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin

Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user

Alias /nagios /usr/local/nagios/share

Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
;

      9、 重启apache服务

/etc/init.d/apache2 restart

      10、 测试Nagios基本平台实现:http://localhost/nagios/

得到OpenID
使用OpenID提供商
35OpenID 35OpenID MyOpenID MyOpenID Flickr Flickr
Google Google Yahoo Yahoo! AOL AOL
Blogger Blogger LiveJournal LiveJournal Verisign Verisign
ClaimID ClaimID Technorati Technorati Vidoop Vidoop
OpenID OpenID 帮助
您还没有登录,请登录后继续操作。
提示:您必需打开Cookie才能使用本系统
请输入您的 OpenID OpenID 登录:
例如:http://yourname.openid.35.com
close