显示标签为“Linux”的博文。显示所有博文
显示标签为“Linux”的博文。显示所有博文

2012年8月2日星期四

如何给opensuse添加packman.repo


Packman 为opensuse 提供了很多附加的包,具体的提供哪些包可以去packman的官方网站看,地址如下:http://packman.inode.at

我用的是opensuse 12.1 , 所以使用如下的命令添加packman源:

然后

sudo zypper refresh

显示如下:
软件源'SuSE'是最新的。
软件源'Updates for openSUSE 12.1 12.1-1.4'是最新的。
软件源'google-chrome'是最新的。
正在接受服务 'Packman repository (openSUSE_12.1)' 的元数据 [|]

收到新安装源或软件包的签名密钥:
密钥 ID: 45A1D0671ABD1AFB
密钥名称:PackMan Project (signing key) <packman@links2linux.de>
指纹密钥:F8875B880D518B6B8C530D1345A1D0671ABD1AFB
Key Created: 2010年09月21日 星期二 04时37分32秒
Key Expires: 2014年09月20日 星期六 04时37分11秒
安装源:Packman repository (openSUSE_12.1)

你希望拒绝密钥、临时信任它,还是永久信任它? [r/t/a/?] (r): a
正在接受服务 'Packman repository (openSUSE_12.1)' 的元数据 [完毕]
正在构建 'Packman repository (openSUSE_12.1)' 安装源缓存 [完毕]
软件源'openSUSE-12.1-Non-Oss'是最新的。
软件源'openSUSE-12.1-Oss'是最新的。
所有安装源均已刷新。

最后如果想要安装aMule

sudo zypper search amule
正在加载安装源数据...
正在读取已安装的软件包...

状态 | 名称              | 小结                                | 类型    
-----+-------------------+-------------------------------------+---------
     | aMule             | another eMule file-sharing program  | 软件包  
     | aMule             | another eMule file-sharing program  | 源代码包
     | aMule-debuginfo   | Debug information for package aMule | 软件包  
     | aMule-debugsource | Debug sources for package aMule     | 软件包  

sudo zypper install aMule
正在加载安装源数据...
正在读取已安装的软件包...
正在解析软件包依赖性...

以下新的软件包将被安装:
  aMule GeoIP libcryptopp9 libGeoIP1 libwx_baseu-2_8-0-wxcontainer libwx_baseu_net-2_8-0-wxcontainer libwx_gtk2u_adv-2_8-0-wxcontainer 
  libwx_gtk2u_core-2_8-0-wxcontainer 

The following recommended package was automatically selected:
  GeoIP 

8 new packages to install.
总下载大小:6.6 MiB 。 操作完成后,额外的 28.2 MiB 空间将会被使用。
是否继续? [y/n/?] (y): y
正在接收 软件包 libGeoIP1-1.4.7-3.1.2.x86_64 (1/8), 75.0 KiB (解压后 242.0 KiB)
正在接收: libGeoIP1-1.4.7-3.1.2.x86_64.rpm [完毕 (7.5 KiB/s)]
正在接收 软件包 libcryptopp9-5.6.1-10.1.3.x86_64 (2/8), 959.0 KiB (解压后 5.0 MiB)
正在接收: libcryptopp9-5.6.1-10.1.3.x86_64.rpm [完毕 (1.5 MiB/s)]
正在接收 软件包 libwx_baseu-2_8-0-wxcontainer-2.8.12-6.1.2.x86_64 (3/8), 400.0 KiB (解压后 1.3 MiB)
正在接收: libwx_baseu-2_8-0-wxcontainer-2.8.12-6.1.2.x86_64.rpm [完毕]
正在接收 软件包 GeoIP-1.4.7-3.1.2.x86_64 (4/8), 481.0 KiB (解压后 1.2 MiB)
正在接收: GeoIP-1.4.7-3.1.2.x86_64.rpm [完毕 (1.2 MiB/s)]
正在接收 软件包 libwx_gtk2u_core-2_8-0-wxcontainer-2.8.12-6.1.2.x86_64 (5/8), 969.0 KiB (解压后 4.1 MiB)
正在接收: libwx_gtk2u_core-2_8-0-wxcontainer-2.8.12-6.1.2.x86_64.rpm [完毕 (0 B/s)]
正在接收 软件包 libwx_baseu_net-2_8-0-wxcontainer-2.8.12-6.1.2.x86_64 (6/8), 63.0 KiB (解压后 194.0 KiB)
正在接收: libwx_baseu_net-2_8-0-wxcontainer-2.8.12-6.1.2.x86_64.rpm [完毕 (4.7 KiB/s)]
正在接收 软件包 libwx_gtk2u_adv-2_8-0-wxcontainer-2.8.12-6.1.2.x86_64 (7/8), 224.0 KiB (解压后 902.0 KiB)
正在接收: libwx_gtk2u_adv-2_8-0-wxcontainer-2.8.12-6.1.2.x86_64.rpm [完毕 (1.1 MiB/s)]
正在接收 软件包 aMule-2.3.1-1.4.x86_64 (8/8), 3.5 MiB (解压后 15.3 MiB)
正在接收: aMule-2.3.1-1.4.x86_64.rpm [完毕 (22.0 KiB/s)]
正在安装: libGeoIP1-1.4.7-3.1.2 [完毕]
正在安装: libcryptopp9-5.6.1-10.1.3 [完毕]
正在安装: libwx_baseu-2_8-0-wxcontainer-2.8.12-6.1.2 [完毕]
正在安装: GeoIP-1.4.7-3.1.2 [完毕]
正在安装: libwx_gtk2u_core-2_8-0-wxcontainer-2.8.12-6.1.2 [完毕]
正在安装: libwx_baseu_net-2_8-0-wxcontainer-2.8.12-6.1.2 [完毕]
正在安装: libwx_gtk2u_adv-2_8-0-wxcontainer-2.8.12-6.1.2 [完毕]
正在安装: aMule-2.3.1-1.4 [完毕]

嘿嘿,aMule安装完毕。



2010年12月16日星期四

Gentoo下安装Oracle 11g

折腾了一个下午,终于在gentoo下安装成功。安装过程都是记忆中仅存的,系统环境为去年某时装的gentoo 2007.0 amd64,由于gentoo下没有安装桌面环境,所以在一台windows的机器上装了xming,设置xming的启动参数增加-ac,否则gentoo在设置了DISPLAY后会提示connect refuse的信息。

安装前的准备工作:

1: 增加用户和组

groupadd -g 10000 dba

groupadd -g 10001 oinstall

useradd -u 10000 -g dba -G dba,oinstall -s /sbin/bash -m -d /oracle oracle

2:安装一些需要(也许需要,因为除了错误就找解决的方法,安装了以下的)软件包

emerge sun-jdk libaio logger libstdc++-v3 app-emulation/emul-linux-x86-baselibs app-emulation/emul-linux-x86-xlibs

3:设置oracle用户的.bash_profile

export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/11g
export ORA_CRS_HOME=$ORACLE_BASE/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_SID=orcl1
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:${PATH}:$HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/oracm/lib:$ORACLE_HOME/lib
export LIBPATH=$LIBPATH:$ORA_CRS_HOME/lib:$ORACLE_HOME/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/JRE
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export NLS_LANG=american_america.WE8ISO8859P1
export DISPLAY=10.60.4.137:0
export EDITOR=vi

4:sysctl

    kernel.shmall = 2097152   kernel.shmmax = 2147483648     kernel.shmmni = 4096   kernel.sem = 250 32000 100 128     fs.file-max = 65536   net.ipv4.ip_local_port_range = 1024 65000     net.core.rmem_default=262144   net.core.wmem_default=262144     net.core.rmem_max=262144   net.core.wmem_max=262144

5:安装oracle

su – oracle

cd database

./runInstaller

安装过程中碰到的问题:

  Error 1:     undefined reference to __pthread_unwind@GLIBC_PRIVATE 解决方法:     编辑$ORACLE_HOME/lib/sysliblist,在-ldl -lm -lpthread -lnsl -lirc -lipgo后加-lrt  Error 2:     cannot find -lagtsh 解决方法:     将database/stage/Components/oracle.rdbms.util/11.1.0.6.0/1/DataFiles/filegroup14.jar文件解压缩,copy 32位的libagtsh.so.1.0文件到$ORACLE_HOME/lib32目录中  Error 3:     skipping incompatible /usr/lib64/libpthread_nonshared.a when searching for /usr/lib64/libpthread_nonshared.a 解决方法:     修改$ORACLE_HOME/bin/genclntsh:        [ "$1" = "lib32" ] && ULIB="lib32" && LOOP="DONE" && CF=-m32 && USRLIB32=-L/usr/lib32        LD="gcc ${CF} -shared -Wl,-relax ${STUBS} ${USRLIB32} -L${OLIB}"     修改$ORACLE_HOME/bin/genagtsh:        if [ $1 != "-32" ]; then        LIB_NAME=$1 # Library name        LIB_VER=$2 # Library version number        LIB=lib        NON64_LDOPT=        USRLIB32=        else        LIB_NAME=$2 # Library name        LIB_VER=$3 # Library version number        LIB=lib32        LOOP="done"        NON64_LDOPT="-m32"        USRLIB32=-L/usr/lib32        fi         LD="gcc ${NON64_LDOPT} -shared ${USRLIB32} -L${ORACLE_HOME}/${LIB} -L${ORACLE_HOME}/${LIB}/stubs"    修改$ORACLE_HOME/ctx/lib/env_ctx.mk:        LDFLAGS32=$(AMD32FLAGS) -o $@ -L/usr/lib32 $(LDPATHFLAG)$(PRODLIBHOME32) $(LDPATHFLAG)$(LIBHOME32) $(LDPATHFLAG)$(LIBHOME32)stubs/    修改$ORACLE_HOME/rdbms/lib/env_rdbms.mk:        REDEFINES32=LIBDIR=lib32 LDFLAGS='-m32 -o $$@ -L/usr/lib32 $$(LDPATHFLAG)$$(PRODLIBHOME) $$(LDPATHFLAG)$$(LIBHOME) $$(LDPATHFLAG)$$(LIBHOME)stubs/'  Error 4:     cannot find -lclntsh 解决方法:     下载oracle client 32bit的zip包,解压缩,然后将client/stage/Components/oracle.rdbms.ic/11.1.0.6.0/1/DataFiles/filegroup4.jar文件解压缩,copy 32位的libclntsh.so.11.1文件到$ORACLE_HOME/lib32目录中  Error 5:     gcc: /usr/lib64/libstdc++.so.6: No such file or directory 解决方法:     cd /usr/lib64/ ; ln -s libstdc++.so.5 libstdc++.so.6

参考:

http://forums.gentoo.org/viewtopic-p-4883219.html

2010年7月14日星期三

glibc detected: invalid next size (fast)

进行在linux上进行c++编程,发现用malloc申请地址以后出现
*** glibc detected *** .: free(): invalid next size (fast):这种错误。
在网上查了一遍以后,最后写出(char *)malloc(sizeof(char)*strTemp.length()+1)以后问题就解决了,
原来是(char *)malloc(sizeof(char)*strTemp.length())请仔细看看不同点。如果你也遇到此问题不妨也这样试一下。呵呵。编程就是有许多不可思议的问题。

2010年7月9日星期五

Linux修改时间的方法

修改linux的时间可以使用date指令

在命令行输入:

date
 显示当前时间 Fri Aug  3 14:15:16 CST 2007

date -s 
按字符串方式修改时间
可以只修改日期,不修改时间,输入: date -s 2007-08-03
只修改时间,输入:date -s 14:15:00
同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:date -s "2007-08-03 14:15:00"

修改完后,记得输入:clock -w 
把系统时间写入CMOS



设定Linux时区

Local vs. UTC
首先重要的问题是你使用utc还是local time.
UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time)
Local time 是你手表上的时间

传统的POSIX计算机(Solaris,bsd,unix)使用UTC格式
linux可以处理UTC时间和蹩脚的Windows所使用的local time

到底是使用UTC还是local time可以这样来确定:
如果机器上同时安装有Linux和Windows,建议使用local time
如果机器上只安装有Linux,建议使用utc
确定后编辑/etc/sysconfig/clock, UTC=0 是local time; UTC=1 是UTC(GMT)
确定timezone
运行tzselect,回答问题后会告诉你时区的名称,比如"Asia/Shanghai",把他记下来(后面我用$timezone代替)
设定timezone
# cp /usr/share/zoneinfo/$timezone /etc/localtime
重新启动或者运行时钟设置脚本使之发生作用
版本差异
由于发行版的差异,以上文件位置可能不同。
一般设置时钟所使用的启动脚本为/etc/rc.d/init.d/setclock
redhat是在/etc/rc.d/rc.sysinit中设置时钟,所以一般要重新启动

运行tzselect命令之后的提示:
[root@saggcc ~]# date
Fri Jul  9 10:08:44 EDT 2010
[root@saggcc ~]# hwclock -r
Fri 09 Jul 2010 10:08:50 AM EDT  -0.320560 seconds
[root@saggcc ~]# cd /etc/
[root@saggcc etc]# cd localtime
-bash: cd: localtime: Not a directory
[root@saggcc etc]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
1) Afghanistan           18) Israel                35) Palestine
2) Armenia               19) Japan                 36) Philippines
3) Azerbaijan            20) Jordan                37) Qatar
4) Bahrain               21) Kazakhstan            38) Russia
5) Bangladesh            22) Korea (North)         39) Saudi Arabia
6) Bhutan                23) Korea (South)         40) Singapore
7) Brunei                24) Kuwait                41) Sri Lanka
8) Cambodia              25) Kyrgyzstan            42) Syria
9) China                 26) Laos                  43) Taiwan
10) Cyprus                27) Lebanon               44) Tajikistan
11) East Timor            28) Macau                 45) Thailand
12) Georgia               29) Malaysia              46) Turkmenistan
13) Hong Kong             30) Mongolia              47) United Arab Emirates
14) India                 31) Myanmar (Burma)       48) Uzbekistan
15) Indonesia             32) Nepal                 49) Vietnam
16) Iran                  33) Oman                  50) Yemen
17) Iraq                  34) Pakistan
#? 9
Please select one of the following time zone regions.
1) east China - Beijing, Guangdong, Shanghai, etc.
2) Heilongjiang (except Mohe), Jilin
3) central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
4) most of Tibet & Xinjiang
5) west Tibet & Xinjiang
#? 1

The following information has been given:

       China
       east China - Beijing, Guangdong, Shanghai, etc.

Therefore TZ='Asia/Shanghai' will be used.
Local time is now:      Fri Jul  9 22:10:20 CST 2010.
Universal Time is now:  Fri Jul  9 14:10:20 UTC 2010.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
       TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai



2010年7月8日星期四

通过 Ubuntu Night 寻找最快的 APT 源

Ubuntu night(乌班图之夜,http://ubuntu9.com )是一个Ubuntu 爱好者建立的公益站点,宗旨是为了提供更迅捷更易用的Ubuntu。目前网站功能正在不断发展中。

最新发布的功能是Top mirror,包括了Top fast/near/stable mirror,可以找到当前网络上所有可用的Ubuntu 镜像(即源),并按照平均下载速度和地理位置进行排名。

screenshot-000-09070259.png

而且,当你找到最适合你的源之后,还可以直接下载它的sourcelist 文件,下载soucelist后可直接将它copy到/etc/apt/source.list或者放在/etc/apt/souce.list.d文件 夹下,非常的方便,无须再苦苦找源升级了。

ubuntu night 的源是实时更新的,源列表会根据当前的网络情况和源健康状况不断地进行更新。

来源:http://ubuntu.tmublr.com/ubuntu-night.html

2010年6月8日星期二

vsftpd服务器出现553 Could not create file与 500 OOPS: cannot change directory错误

vsftpd服务器出现553 Could not create file与 500 OOPS: cannot change directory错误
题目够长呵呵
这两个是我在安装配置vsftpd、建的虚拟用户后上传时一直头疼的错误,所以都拿出来摆摆:
首先 553 Could not create file
 这个顾名思义  没有创建(写)文件的权限,
    write_enable=YES ,这个是主要的,
另外,更主要的(呵)是你要把这个安放文件的主目录下的文件夹权限改下,
例如:sudo chmod 775 /var/small2/

再一个:500 OOPS: cannot change directory错误(上传时遇到)
  我是把文件夹属主改了sudo chown small2 /var/small2/
  因为这个用户的建立是在另一个用户下sudo useradd加上的,其文件夹属主也随之了

以上是我遇到的问题及解决办法(前提是在其它设置都正常之下),
该错误诸君有则改之,无则加冕?呵~

vsftpd 553 Could not create file问题的解决方法

当需要用VSFTPD服务器,上传文件的时候出现:

vsftpd 553 Could not create file错误

解决方法:比如上传的文件目录是/var/www,而该目录的权限是root,你的用户是test,不具有改目录的权限。
则需要输入:chown test /var/www
然后再次上传文件,即可解决问题。

2010年6月3日星期四

linux(redhat)系统启动级别设置

1、LINUX系统启动级别
查看/etc/inittab文件,其主要内容如下:
# 0 - halt (Do NOT set initdefault to this)

# 1 - Single user mode

# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)

# 3 - Full multiuser mode

# 4 - unused

# 5 - X11

# 6 - reboot (Do NOT set initdefault to this)

#

id:5:initdefault:
... ...

0:停机(不要设置为启动默认级别)
1:单用户模式
2:多用户,无NFS(如果您没有配置网络,该级别与3一样)
3:完全多用户模式
4:不使用
5:X11图形模式
6:重启(不要设置为启动默认级别)
如果想让系统不用图形模式登陆可将id:5:initdefault: 中的5改为3即可。

2、Linux运行级别

Linux 启动时,运行一个叫做init 的程序,然后由它来启动后面的任务,包括多用户环境,网络等。
那么,到底什么是运行级别呢?简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1 到6
,具有不同的功能。这些级别在/etc/inittab 文件里指定。这个文件是init
程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。
大多数的Linux 发行版本中,启动脚本放在/etc/rc.d/init.d,这些脚本被ln 命令来连接到 /etc/rc.d/rcn.d
目录(这里的n 就是运行级0-6)。如:/etc/rc.d/rc5.d 下面的S10network
就是连接到/etc/rc.d/init.d下的network 脚本的。因此,我们可以知道,rc5.d 下面的文件就是和运行级5 有关的。

2010年5月19日星期三

Linux服务器整体性能监控攻略

网管实战:Linux服务器整体性能监控攻略

Linux服务器性能监测是很重要的工作,服务器运行应该提供最有效的系统性能。当服务器系统性能突然低于平均应有的情况,问题可能来自在执行的进程、内存的使用率、磁盘的性能、网络流量和CPU 的压力。在预算短缺的今天,理解如何优化系统性能比以往任何时候都重要。要实现它的前提是,你必须充分了解自己的计算机和网络,从而找到真正的瓶颈所在。本文提供一些基础的工具来辨别和处理一些性能问题。使用的Linux 发行版本是Red Hat Enterprise Linux 4,工作过程是:首先查看整个系统的状态,然后是检查特定的子系统。    Linux服务器进行性能监控有几种方法,每种方法都各有其优缺点。

 使用SNMP等标准工具

    标准及非标准工具能执行一个或多个收集、合并及传输阶段,如rstatd或SNMP工具,然而标准的rstat后台程序提供的信息是有限的,速度慢而且效率低。

 内核模块

    几个系统监控工程利用内核模块来存取监控数据。一般情况下,这是很有效的收集系统数据的方法。然而这种方法存在的问题是,当主内核源内有其它改变时,必须保持代码一致性。一个内核模块可能与用户想使用的其它内核模块相冲突。此外,在使用监控系统之前,用户必须获得或申请模块。

 /proc虚拟文件系统

    /proc虚拟文件系统是一个较快的、高效率执行系统监控的方法。使用/proc的主要缺点是必须保持代码分析与/proc 文件格式改变的同步。事实表明,Linux内核的改变比/proc 文件格式的改变要更频繁,所以,用/proc虚拟文件系统比用内核模块存在的问题要少。本文介绍的方法即基于/proc虚拟文件系统。
一、 /proc文件系统特点
    Linux 系统向管理员提供了非常好的方法,使他们可以在系统运行时更改内核,而不需要重新引导内核系统。这是通过 /proc 虚拟文件系统实现的。/proc 文件虚拟系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。不用重新启动而去看 CMOS ,就可以知道系统信息。这就是 /proc 的妙处之一。/proc 目录里主要文件内容,见表-1:
表-1

   小提示: 每个Linux系统根据软硬件不同/proc 虚拟文件系统的内容也有些差异。/proc 虚拟文件系统有三个很重要的目录:net,scsi和sys。Sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。

二、 系统负载监测

    1 使用uptime命令

    使用uptime命令可以查看系统负载,系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数目。如果一个进程满足以下条件则其就会位于运行队列中:没有在等待I/O操作的结果、它没有主动进入等待状态(也就是没有被调用、没有被停止。

    # uptime

    9:51pm up 3 days, 4:43, 4 users, load average:6.02, 5.90, 3.94
    上面命令显示示最近1 分钟内系统的平均负载是6.02,在最近5分钟内系统的平均负载是5.90,在最近的15 分钟内系统的平均负载是3.94。一共四个用户。对于上面的例子来说,由于笔者系统使用是双CPU,那幺其每个CPU的当前任务数为:6.02/2=3.01。另外可以使用cron命令进行定时监测系统负载:
    # crontab -e
    此时打开一个vi编辑器:输入以下内容:
    #30 * * * * * uptime
    存盘退出,这样每隔30分钟就记载其平均负载,这样累计一天,我们就可以得到最近一天的平均负载。

    2 使用cat /proc/loadavg命令

    #cat /proc/loadavg
     0.40 0.79 0.70 2/245 4101
     Cat /proc/loadavg提供以下数据:
    1秒钟平均负载;5秒钟平均负载;15秒钟平均负载;总作业数;正在运行的作业总数。

    3 使用cat /proc/stat命令

    # cat /proc/stat
    cpu  16015 1353 28840 101677 3602 664 4323
    cpu0 16015 1353 28840 101677 3602 664 4323
    intr 1605646 1565008 52 0 4 4 0 6 0 1 8664 296 16675 1418 0 0 13518
    ctxt 617320
    btime 1178342189
     processes 4236
    procs_running 2
    procs_blocked 0
    cat /proc/stat命令是包含内核统计量,提供以下数据:
    CPU 以及CPU0、每行的每个参数意思(以第一行为例)为: 
    user (432661) 从系统启动开始累计到当前时刻,用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。1 jiffies=0.01秒 
    nice (13295) 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间(单位:jiffies) 
    system (86656) 从系统启动开始累计到当前时刻,核心时间(单位:jiffies) 
    idle (422145968) 从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间(单位:jiffies) 
    iowait (171474) 从系统启动开始累计到当前时刻,硬盘IO等待时间(单位:jiffies) , 
irq (233) 从系统启动开始累计到当前时刻,硬中断时间(单位:jiffies) 
    softirq (5346) 从系统启动开始累计到当前时刻,软中断时间(单位:jiffies) 
     CPU时间=user+system+nice+idle+iowait+irq+softirq 
    "intr"这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数。 
    "ctxt"给出了自系统启动以来CPU发生的上下文交换的次数。 
    "btime"给出了从系统启动到现在为止的时间,单位为秒。 
     "processes (total_forks) 自系统启动以来所创建的任务的个数目。 
    "procs_running":当前运行队列的任务的数目。 
    "procs_blocked":当前被阻塞的任务的数目。 

    4 使用xload图形显示系统负载

    如果安装了KDE环境,可以使用xload 显示系统平均负载的柱状图 ,它会定期地更新。xload是Linux一个系统命令,使用方法:
 

     应用实例:

    #xload -scale 1 -update 1 -fg red -hl400 
    上面命令表示使用xload查看系统的负载。每秒更新一次,其尺寸大小为400,前景颜色为红色,背景颜色为蓝。见图-1。

图1 用xload图形显示系统负载

三、 通过phpsysinfo 调用浏览器监控
    由于/proc文件系统非常大,而且系统是动态变化的,所以使用Linux命令比较麻烦,这里我们使用一个工具:phpsysinfo,它是一个支持PHP网页服务器用于侦测主机一些资料的PHP 脚本工具软件,可以提取/proc文件系统中的信息,以图形方式显示出来。另外phpsysinfo支持包括中文在内的20多种语言和许多风格的模板。
    1.系统要求:
    除了要搭建一个基于LAMP(Linux+PHP+APACHE+MYSQL)的网络构架,其它系统要求:软件:它要求内核(Kenerl)至少在2.2以上。KDE 2.0,桌面颜色至少16位增强色。硬件:中央处理器:奔腾II 450 以上 ,内存 64 兆 ,硬盘空间 60兆。安装前的准备工作: phpsysinfo 是用PHP语言写成的。 
    2.软件下载
    #wget http://jaist.dl.sourceforge.net/sourc ... nfo/phpsysinfo-2.3.tar.gz 
    3. 软件安装: 将下载的软件拷贝到/var/www/html/目录下,执行:
    #mv phpsysinfo-2.3.tar.gz /var/www/html/sysinfo
    #tar -zxvf phpsysinfo-2.3.tar.gz 
    #cd sysinfo 
    #cp config.php.new config.php
    4.运行软件:
    启动apache服务 
    #/usr/local/apache2/bin/apachectl start 
    测试http://localhost/sysinfo (见图2)


图2 phpsysinfo的中文工作界面

    phpsysinfo检测分成五个部分:
    (1)主机系统资源:主机名称、IP地址、内核版本、已开机时间、登入人数、系统负载。
    (2)硬件信息:CPU型号、工作频率、快取大小、逻辑操作数、PCI接口、IDE接口、SCSI接口。
    (3)网络负载:网络数据包接收、传送、错误/遗失。
    (4)内存资源情况,包括物理内存、虚拟内存等。
    (5)已挂载分区:硬盘分区名称,使用比例。
     你也可以用它来测试你所租用的虚拟主机的设备及网络状况的品质。