放到一个PHP文件夹下面,点他,就会自动统计当前目录下面的PHP文件了。
如果用记事本打开,还可以设置是否统计子目录的;也可以设置统计其它类型的代码!
统计的标准是非回车空行!
@echo off
:config()
:{
set count_type=0
:# 0:表示只统计当前目录
:# 1:表示只统计当前目录,包括子目录
set count_ext=.php
:# 表示统计文件的后缀名称
:}
:main()
:{
if %count_type%==0 (set count_info=当前目录)
if %count_type%==1 (set count_info=当前目录,包括子目录)
echo 代码文件数与行数统计(HonestQiao 2006-5-20 0:14)
echo 统计方式:%count_info%
echo 文件后缀:%count_ext%
set /P PauseKey=开始统计(回车开始,Q退出)
if "%PauseKey%" == "Q" goto :EOF
if "%PauseKey%" == "q" goto :EOF
echo.
cd "%CD%"
set counts=0
set count=0
set tmp_list=%RANDOM%.tmp
copy /Y NUL %tmp_list% >nul 2>nul
if %count_type%==0 (dir/b | findstr "%count_ext%\>" > %tmp_list%)
if %count_type%==1 (dir/b/s | findstr "%count_ext%\>" > %tmp_list%)
call :function_files_count %tmp_list%
echo 文件总数:%counts%
echo 行数总计:%count%
del /Q %tmp_list%
echo.
set /P PauseKey=回车退出
@echo on
@goto :EOF
:}
:function_files_count
:{
set counts_tmp=0
for /F %%l in ('type %1') do (call :function_files_add "%%l")
set /A counts=%counts%+%counts_tmp%
goto :EOF
:}
:function_files_add
:{
set /A counts_tmp=%counts_tmp%+1
call :function_file_count %1
goto :EOF
:}
:function_file_count
:{
echo 第%counts_tmp%个文件:%1
set count_tmp=0
for /F %%l in ('type %1') do (call :function_file_add %1)
set /A count=%count%+%count_tmp%
echo 小计行数:%count_tmp%
echo.
goto :EOF
:}
:function_file_add
:{
set /A count_tmp=%count_tmp%+1
goto :EOF
:}
下载文件 该脚本运行于windows.
记得有位朋友问过我CNZZ大概有多少行代码,我说没有统计过,应该有几万行.他说几千行,如果有机会再跟这位朋友聊聊,我要告诉他统计结果:10万行左右,而且只是主站的,不包括统计底层的代码.虽然很多代码重用了,但几千行绝对不可能滴.
有机会生我重写全部代码的话,我觉得5万行左右吧.
嘎嘎~ 月初买了台超小超小的电脑~ 现在已经稳定运行快2周了,找了点图片炫一炫~

尺寸是多少?15厘米长,15厘米宽,6厘米厚。一个巴掌就能搁下啦~
你能看到S端子、TV-OUT接口、键盘鼠标接口。

VGA视频输出,打印机接口,COM接口,4个USB1.1接口(这个有点鸡肋),另外还有一个56K小猫!

一个网线口,2个1394口(这个很爽哦!可以当400M的网卡用!)一个电源口,耳麦、话筒口。

这是倒过来的样子了,可以上一个笔记本光驱(我用不着,就空着了。)你还可以看到音量调节钮,红外线端口。有兴趣的话你可以去买个遥控器。

这是主板上侧了,CPU插槽,一个笔记本硬盘IDE口,还能看到一个散热芯片-应该是给主板芯片用的。

支持PIII全系列的CPU哦,包括图拉丁。目前我用的是赛扬1.4图拉丁。主板是815E的。

偶买了个120G的日立笔记本硬盘,第一次用笔记本硬盘,真的好小好小……,CPU上了散热片了。温度上的还是蛮快的,不用风扇的话这么小的散热片10分钟就烫手了。

光驱拿掉以后就可以上内存条了,我买了个256的。

电源是像笔记本那样的哦,不过是18V。12V的也可以用。估计功率在40w-50w。耗电很小的。
最详细的资料可以在这里找到哦。
风扇默认的转速太高了,我将其控制在3000-3400转,这样噪音已经控制的很好了,晚上睡觉感觉不到。
装了 Arch,在家里24小时 amule,同时可以好好的学学 ipsec 和 iptables~~ 很爽哦~
文章出自:
http://latteye.com/2008/01/cappuccinopc3.html
看了很爽,考虑一下是否搞一台来
Build a Secure Logging Server with syslog-ng
日期:April 4, 2006
作者: Carla Schroder
翻译:latteye
管理Linux系统以及应用程序的日志非常重要且具有趣味性。我们想要得到的是重要的、有用的信息,并不是大量的垃圾。你得有能力在日志中找到你需 要的信息。古老的 syslogd 工具已经工作了许多个年头。但它现在已经不足以面对更加复杂的需要。为了代替它,我们有了新一代的 Linux 日志管理工具,syslog-ng(syslog-next-generation)。
比较 syslog ,syslog-ng 具有众多高级的功能:更好的网络支持,更加方便的配置,集中式的网络日志存储,并且更具有弹性。比如,使用syslogd时,所有的iptables日志 与其他内核日志一起全部存储到了kern.log文件里。Syslog-ng则可以让你有选择性的将iptables部分分出到另外的日志文件中。 Syslogd仅能使用UDP协议,Syslog-ng 可以使用UDP和TCP协议。所以你可以在加密的网络隧道中传输日志到集中日志服务器。
安装
所有的Linux发行版本已经默认提供了Syslog-ng包。目前的稳定版本为1.6。如果你使用yum或者apt-get等工具安装 Syslog-ng,他们会自动卸载sysklogd包。如果sysklogd没有被自动卸载,亲你手动删除它并且确保syslogd服务已经停 止。(sysklogd 是软件包名,syslogd 是服务名)
配置文件结构
由于功能具有弹性,所以配置文件的学习可能稍微曲折。Syslog-ng 的配置文件在 /etc/syslog-ng/syslog-ng.conf ,或者是 /etc/syslog-ng.conf 。你可以通过 man 5 syslog-ng 来学习所有的选项以及字段的含义。一般 syslog-ng 可能含有以下5个章段:
options{}
全局设置。 These can be overridden in any of the next four sections
source{}
信息来源, 来源可以是文件, 本地 sockets, 或者远程主机。
destination{}
信息目标, 可以是文件, 本地 sockets, 或者远程主机。
filter{}
过滤选项非常强大且复杂;你可以过滤日志中的任何方面,比如基础的 syslogd 快捷字段(facility names–man 5 syslog.conf 获取更多信息),log 等级,主机名,以及任何log中出现的字段或者是数字。
log{}
此段将来源 目的 过滤 都给连接起来并且告诉syslog-ng如何处理日志。
一些典型的全局选项:
options {
sync (0);
log_fifo_size (2048);
create_dirs (yes);
group (logs);
dir_group (logs);
perm (0640);
dir_perm (0750);
};
在 /etc/syslog-ng.conf 中使用的全局选项字段必须是被定义过的。 上面例子的具体含义是:
sync
在写入磁盘之前保留多少行的消息输出队列。(这里将日志输出称为“消息”。)0 是首选的数值,这可以让你确保捕获了所有信息,且磁盘也不会在系统以外掉电时丢失信息。
log_fifo_size
输出队列中消息的最大行数。默认为100行。你可以通过计算得出一个合适的数值,以下是引用一份邮件列表,里面提到了相关的内容:
每个消息来源最大接收数据的1024字节。单条日志信息为20至30字节。所以程序的一次执行可以送出1024/20=50条消息。对每个日志发送方,你的 log 接受能力必须满足这个数值。若你有两个日志源,则你必须能一次接受100条信息。
Each message source receives maximum 1024 bytes of data. A single log message is about 20 to 30 bytes. So on a single run each log source may emit 1024/20 = 50 messages. Your log fifo must be able to hold this number of messages for each source. So for two sources, you’ll need at least 100 slots in your fifo.
那两个选项非常容易混淆。 来自远程主机的消息会突然到达,所以你要保证你的 log_fifo_size 参数足以接纳那些突然增加的消息。 不然你就会丢失日志了, 当然这还受限于你的网络速度以及I/O速率。
create_dirs
启用或禁用自动为目标文件创建目录的功能。 在上文中值为“yes”, 所以远程主机会更具需要自动创建目录。
group
dir_group
设定日志文件以及目录的所有人(owner),所以你不必以超级用户(root)的身份去浏览那些日志。
perm
dir_perm
默认新日志文件的权限设置。
Source, Destination, 和 Filter 描述
Source, destination, 和 filter 的名字可以是任意的,看看下面的例子:
source s_local { internal(); unix-stream(”/dev/log”); file(”/proc/kmsg” log_prefix(”kernel: “)); };
destination d_auth { file(”/var/log/auth.log”); };
filter f_auth { facility(auth, authpriv); };
如果你喜欢你可以将 “source s_local” 改为 “source frederick_remington_depew”,当然 “destination d_auth” 也可以为 “destination moon.” 通常我们将 source 的名字中含有 “s” 字段,destination 的名字中含有 “d” 字段, filter 的名字中含有 “f” 字段,但这并不是必须的。source, destination, 和 filter 中其他的选项必须使用已经定义的字段,你可以通过 man 5 syslog-ng.conf 查看这些参数。
上面的例子 “source s_local” 将所有本地生成的日志信息作为一个信息源。而 “destination d_auth” 选项又将这些日志输入了 /var/log/auth.log 文件,当然这是通过 “filter f_auth” 将它们连接起来的。 auth 和 authpriv 是 syslog 标准的设备名称。
最后的日志申明(Log statements)将他们链接到了一起:
log {source(s_local); filter(f_auth); destination(d_auth); };
那么这四行就将本地所有的 auth 和 authpriv 日志筛出并写入了 /var/log/auth.log。
启用远程日志记录
当然,使用老的 syslogd 也可以很好的完成远程日志记录的工作,但那真的不太好,因为他只使用UDP协议传送数据包。首先你需要将所有的客户端上都装好 syslog-ng。并且在日志服务器的 syslog-ng.conf 文件中加入以下配置文件,这样才可以接受远程客户端日志,并将每台机器的日志写入单独的文件。
source s_remote { tcp(); };
destination d_clients { file(”/var/log/HOSTS/$HOST/”); };
log { source(s_remote); destination(d_clients); };
这是一个非常简单但十分有用的例子,他收集所有客户端本地的日志并将日志发送至远程日志服务器:
#sample syslog-ng.conf for a remote client
source s_local { internal(); unix-stream(”/dev/log”); file(”/proc/kmsg” log_prefix(”kernel: “)); };
destination d_loghost {tcp(”192.168.1.10″ port(514));};
log { source(s_local); destination(loghost); };
syslog-ng.conf 配置参考
一份完整的样板配置文件会显得比较长,你可以查看 syslog-ng 安装时附带的配置文件。Debian 用户得到的是一份通过 syslogd 配置而定制的配置文件。我们将给出一份日志服务器的配置文件,以及一个远程日志客户端的配置文件,来看看他们是怎么工作起来的吧:
#sample syslog-ng.conf for a central logging server
options {sync (0);
log_fifo_size (2048);
create_dirs (yes);
group (logs);
dir_group (logs);
perm (0640);
dir_perm (0750);
};source s_local { internal(); unix-stream(”/dev/log”); file(”/proc/kmsg” log_prefix(”kernel: “)); };
destination d_auth { file(”/var/log/auth.log”); };
filter f_auth { facility(auth, authpriv); };source s_remote { tcp(); };
destination d_clients { file(”/var/log/HOSTS/$HOST”); };log { source(s_remote); destination(d_clients); };
log { source(s_local); filter(f_auth); destination(d_auth); };
修改完 syslog-ng 之后要重启服务:
# /etc/init.d/syslog-ng restart
测试
现在你可以在日志服务器以及客户端上进行一些测试了。由于在本地服务器中最先出现的日志一般是认证日志,所以你可以先尝试着打开一个新的登录窗口,使用 su 或者是 sudo 都可以。接着检查 /var/log/auth.log 文件。在客户端上做一些操作,接着检查 /var/log/HOSTS 是否已经为远程客户端创建了新的目录。
另外一个方法是使用更加高级的 logger 命令:
# logger “this is a test”
# logger -p auth.debug “this is a test”
这将在你的日志文件中创建如下内容:
Apr 1 16:08:42 localhost.localdomain logger: this is a test
现在我们已经掌握了 syslog-ng 基本的功能,下周我们讲学习如何将 syslog-ng 客户端以及服务器按照你的意愿配置的更加有规则、易于管理,并且讨论如何建立一个安全的、加密的 syslog-ng 传输。
结果提示PHP Fatal error: [Zend Optimizer] Zend Optimizer 3.3.0 is incompatible with XCache 1.2.2 in Unknown on line 0
解决方法:
用 zend_extension*** 先载入 xcache.so 后载入 zend***.so
xcache-1.2.2]# /opt/server/php/bin/php --version
PHP 5.2.5 (cli) (built: Mar 11 2008 16:02:24)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with XCache v1.2.2, Copyright (c) 2005-2007, by mOo
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies
自上次升级服务器环境和增加内存后的再次优化.
打开网页更快了





