LIULIANG

java 获取计算机cpu 利用率和内存使用信息

网址:
http://bbs.chinaunix.net/thread-3628555-1-1.html

posted @ 2012-09-20 21:55 BIG森林 阅读(352) | 评论 (0)编辑 收藏

ubuntu 12.04 查看内存使用信息

在Linux下查看内存我们一般用free命令:
[root@scs-2 tmp]# free
             total       used       free     shared    buffers     cached
Mem:       3266180    3250004      16176          0     110652    2668236
-/+ buffers/cache:     471116    2795064
Swap:      2048276      80160    1968116

下面是对这些数值的解释:
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解释了。
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
如上例:
2795064=16176+110652+2668236

posted @ 2012-09-20 21:50 BIG森林 阅读(3299) | 评论 (0)编辑 收藏

Ant 中classpath 的使用

Ant 在运行一些任务的时候需要用<classpath>指定类路径.<classpath>可以内嵌 <pathelement>.需要注意的是

<pathelement path="${project.jar.path}> 里面path指向的不是一个预先定义的<path>,而是一个符合classpath规则的property.

1,正确的例子:

<property name="project.jar.path" value="D:/temp/temp.jar;D:/temp/temp1.jar" />

<classpath id="tcls">
       <pathelement path="${project.jar.path}" />
 </classpath>

 

2,如果误认为path应该指向一个预先定义的path是不正确的.

        <path id="testTask.classpath">
            <fileset dir="${project.lib.path}">
                <include name="**/*.jar" />
            </fileset>
        </path>

 

         <classpath id="tcls">
              <pathelement path="${testTask.classpath}" />
         </classpath>

如果想在<classpath>里引用预先定义好的path,应该如下:

         <classpath id="tcls">
             <path refid="testTask.classpath" />
         </classpath>

 

pathelement的path指定的是一个预先定义的property或者一个符合classpath规则的字符串,

location指定的是一个jar文件或者一个目录.

<property name="project.jar.path" value="D:/temp/temp.jar;D:/temp/temp1.jar" />
<classpath>
    <pathelement path="${project.jar.path}" />     
    <pathelement location="lib/helper.jar"/>
</classpath>

classpath内嵌的元素除了pathelement和path之外,还可以是fileset,dirset和filelist.

<path id="cls.path.ref">
    <fileset dir="lib" includes="*.jar" />
</path>
<filelist id="third-party_jars" dir="${jar.dir}"files="foo.jar, bar.jar"/>

<classpath>
    <pathelement path="d:/temp/temp.jar" />
    <path refid="cls.path.ref" />
   
    <fileset dir="lib">
        <include name="**/*.jar" />
    </fileset>
   
    <pathelement location="classes" />
   
    <dirset dir="${build.dir}">
        <include name="apps/**/classes" />
        <exclude name="apps/**/*Test*" />
    </dirset>
   
    <filelist refid="third-party_jars" />
</classpath>

转自:http://blog.csdn.net/kkdelta/article/details/5684228

posted @ 2012-09-17 20:07 BIG森林 阅读(322) | 评论 (0)编辑 收藏

Qt学习之路(50): QString

这段时间回家,一直没有来得及写,今天才发现博客的编辑器有了新版。还是先来试试新版编辑器的功能吧!

今天要说的是QString。之所以把QString单独拿出来,是因为string是很常用的一个数据结构,甚至在很多语言中,比如JavaScript,都是把string作为一种同int等一样的基本数据结构来实现的。

每一个GUI程序都需要string,这些string可以用在界面上的提示语,也可以用作一般的数据结构。C++语言提供了两种字符串的实现:C 风格的字符串,以'\0‘结尾;std::string,即标准模版库中的类。Qt则提供了自己的字符串实现:QString。QString以16位 Uniode进行编码。我们平常用的ASCII等一些编码集都作为Unicode编码的子集提供。关于编码的问题,我们会到以后的时候再详细说明。

在使用QString的时候,我们不需要担心内存分配以及关于'\0'结尾的这些注意事项。QString会把这些问题解决。通常,你可以把 QString看作是一个QChar的向量。另外,与C风格的字符串不同,QString中间是可以包含'\0'符号的,而length()函数则会返回 整个字符串的长度,而不仅仅是从开始到'\0'的长度。

同Java的String类类似,QString也重载的+和+=运算符。这两个运算符可以把两个字符串连接到一起,正像Java里面的操作一样。QString可以自动的对占用内存空间进行扩充,这种连接操作是恨迅速的。下面是这两个操作符的使用:

  1. QString str = "User: ";  
  2. str += userName + "\n"; 

QString的append()函数则提供了类似的操作,例如:

  1. str = "User: ";  
  2. str.append(userName);  
  3. str.append("\n"); 

C语言中有printf()函数作为格式化输出,QString则提供了一个sprintf()函数实现了相同的功能:

  1. str.sprintf("%s %.1f%%", "perfect competition", 100.0); 

这句代码将输出:perfect competition 100.0%,同C语言的printf()一样。不过前面我们也见到了Qt提供的另一种格式化字符串输出的函数arg():

  1. str = QString("%1 %2 (%3s-%4s)")  
  2.       .arg("permissive").arg("society").arg(1950).arg(1970); 

这段代码中,%1, %2, %3, %4作为占位符,将被后面的arg()函数中的内容依次替换,比如%1将被替换成permissive,%2将被替换成society,%3将被替换成 1950,%4将被替换曾1970,最后,这句代码输出为:permissive society (1950s-1970s). arg()函数比起sprintf()来是类型安全的,同时它也接受多种的数据类型作为参数,因此建议使用arg()函数而不是传统的 sprintf()。

使用static的函数number()可以把数字转换成字符串。例如:

  1. QString str = QString::number(54.3); 

你也可以使用非static函数setNum()来实现相同的目的:

  1. QString str;  
  2. str.setNum(54.3); 

而一系列的to函数则可以将字符串转换成其他基本类型,例如toInt(), toDouble(), toLong()等。这些函数都接受一个bool指针作为参数,函数结束之后将根据是否转换成功设置为true或者false:

  1. bool ok;  
  2. double d = str.toDouble(&ok);  
  3. if(ok)  
  4. {  
  5.     // do something...  
  6. } else {  
  7.     // do something...  

对于QString,Qt提供了很多操作函数,例如,使用mid()函数截取子串:

  1. QString x = "Nine pineapples";  
  2. QString y = x.mid(5, 4);            // y == "pine"  
  3. QString z = x.mid(5);               // z == "pineapples" 

mid()函数接受两个参数,第一个是起始位置,第二个是取串的长度。如果省略第二个参数,则会从起始位置截取到末尾。正如上面的例子显示的那样。

函数left()和rigt()类似,都接受一个int类型的参数n,都是对字符串进行截取。不同之处在于,left()函数从左侧截取n个字符,而right()从右侧开始截取。下面是left()的例子:

  1. QString x = "Pineapple";  
  2. QString y = x.left(4);      // y == "Pine" 

函数indexOf()返回字符串的位置,如:

  1. QString x = "sticky question";  
  2. QString y = "sti";  
  3. x.indexOf(y);               // returns 0  
  4. x.indexOf(y, 1);            // returns 10  
  5. x.indexOf(y, 10);           // returns 10  
  6. x.indexOf(y, 11);           // returns -1 

函数startsWith()和endsWith()可以检测字符串是不是以某个特定的串开始或结尾,例如:

  1. if (url.startsWith("http:") && url.endsWith(".png"))  
  2. {  

这段代码等价于

  1. if (url.left(5) == "http:" && url.right(4) == ".png")  
  2. {  

不过,前者要比后者更加清楚简洁,并且性能也更快一些。

QString还提供了replace()函数供实现字符串的替换功能;trimmed()函数去除字符串两侧的空白字符(注意,空白字符包括空 格、Tab以及换行符,而不仅仅是空格);toLower()和toUpper()函数会将字符串转换成小写大写字符串;remove()和 insert()函数提供了删除和插入字符串的能力;simplified()函数可以将串中的所有连续的空白字符替换成一个,并且把两端的空白字符去 除,例如"   \t   ”会返回一个空格" "。

将const char *类型的C风格字符串转换成QString也是很常见的需求,简单来说,QString的+=即可完成这个功能:

  1. str += " (1870)"; 

这里,我们将const char * 类型的字符串" (1870)"转换成为QString类型。如果需要显式的转换,可以使用QString的强制转换操作,或者是使用函数fromAscii()等。为了 将QString类型转成const char *字符串,需要进行两步操作,一是使用toAscii()获得一个QByteArray类型对象,然后调用它的data()或者constData()函 数,例如:

  1. printf("User: %s\n", str.toAscii().data()); 

为了方便使用,Qt提供了一个宏qPrintable(),这个宏等价于toAscii().constData(),例如:

  1. printf("User: %s\n", qPrintable(str)); 

我们调用QByteArray类上面的data()或者constData()函数,将获得QByteArray 内部的一个const char*类型的字符串,因此,我们不需要担心内存泄漏等的问题,Qt会替我们管理好内存。不过这也暗示我们,注意不要使用这个指针太长时间,因为如果 QByteArray被delete,那么这个指针也就成为野指针了。如果这个QByteArray对象没有被放在一个变量中,那么当语句结束 后,QbyteArray对象就会被delete,这个指针也就被delete 了。

转自:
http://devbean.blog.51cto.com/448512/275360/

posted @ 2012-09-15 22:47 BIG森林 阅读(318) | 评论 (0)编辑 收藏

ubuntu 11.10 server 安装mysql-5.5.22-linux2.6-i686.tar.gz

下载地址:
http://dev.mysql.com/downloads/mysql/


1、添加用户组
#> groupadd mysql
2、添加用户
#> useradd -r -g mysql mysql
3、切换目录
#> cd /usr/local
4、解压(mysql-5.5.22-linux2.6-i686.tar.gz已经复制到/usr/local下)
#> tar zxvf mysql-5.5.22-linux2.6-i686.tar.gz
5、创建软链接
#> ln -s mysql-5.5.22-linux2.6-i686 mysql
6、删除压缩包(可操作)
#> rm mysql-5.5.22-linux2.6-i686.tar.gz
7、进入mysql目录
#> cd mysql
8、改变用户权限和组权限
#> chown -R mysql .
#> chgrp -R mysql .

9、初始化数据库
<1> 保证在/etc/目录下面没有my.cnf、mysql文件夹,如果有请删除
<2> 安装libaio1.so 执行sudo apt-get install libaio1 安装了则跳过
#> scripts/mysql_install_db --user=mysql


初始化成功则出现如下提示:
Installing MySQL system tables...
OK
Filling help tables...
OK


To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system


PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:


./bin/mysqladmin -u root password 'root'
./bin/mysqladmin -u root -h VWmare password 'new-password'


Alternatively you can run:
./bin/mysql_secure_installation


which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.


See the manual for more instructions.


You can start the MySQL daemon with:
cd . ; ./bin/mysqld_safe &


You can test the MySQL daemon with mysql-test-run.pl
cd ./mysql-test ; perl mysql-test-run.pl


Please report any problems with the ./bin/mysqlbug script!



10、修改权限
#> chown -R root .
#> chown -R mysql data



11、复制配置文件
#> cp support-files/my-medium.cnf /etc/my.cnf
#> cp support-files/mysql.server /etc/init.d/mysql.server



12、启动数据库
#> bin/mysqld_safe --user=mysql &


13、查看是否有3306端口启动
#> netstat -nat


14、设置密码
#> ./bin/mysqladmin -u root password 'new-password'
或者
#> ./bin/mysql_secure_installation


15、使用mysql
#> cd bin  
#> ./mysql -u root -p



16、设置开机自动启动
#> cd /etc/init.d/
sudo update-rc.d mysql.server defaults


17、设置默认编码为UTF8

登录MySQL,执行编码显示:

show variables like 'character%';

QUOTE:

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+


sudo vi /etc/mysql/my.cnf


找到[client] 添加:



default-character-set=utf8

找到[mysqld] 添加:


default-character-set=utf8

init_connect='SET NAMES utf8'


sudo/etc/init.d/mysql.server restart

修改好后,重新启动mysql 即可.


若启动异常则把[mysqld]处修改为

character_set_server = utf8

init_connect='SET NAMES utf8'


查询一下show variables like 'character%';

QUOTE:

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+


转自:http://blog.csdn.net/lmyclever/article/details/7421716

posted @ 2012-09-14 10:52 BIG森林 阅读(1989) | 评论 (0)编辑 收藏

如何区分JDK,Tomcat,eclipse的32位与64版本

当你想下载Linux、JDK、Tomcat、eclipse时,你是下载32位版本还是64位版本?64位版本有两种,应该选哪一个?当你看到这些内容:x86、x64、x86-32、x86-64、ia64、i80386、i80486、i80586、i80686,知道是干什么的吗?

这事儿要先从CPU说起:
——————————-

IA-32架构与IA-64架构
IA是Intel Architecture(英特尔体系结构)的英语缩写。
IA-32架构下有32位CPU,也64位CPU。(我们经常使用的CPU)
IA-64架构下有Intel64的位CPU (只有服务器使用的CPU)
——————————-

 

IA-32架构:
本架构的CPU都采用X86指令
Intel、AMD、Cyrix等厂家都生产使用X86指令集的CPU
 
其中32位(x86-32)的CPU有:i80386、i80486、i80586、i80686、统称i80x86、简称x86
其中64位(x86-64,EM64T)的CPU有:2006年以后生产的PC机CPU都是64位的。简称x64
x86-64是AMD在其64位处理器系列中采用的技术
EM64T是Intel在其64位处理器系列中采用的技术
x86-64与EM64T都差不多,都是64位。最大的优点就是可以全面兼容以前的32位x86指令的应用程序,因为都是IA-32架构架构。
——————————-
IA-64架构:
IA-64架构是英特尔为了全面提高以前IA-32位处理器的运算性能,是Intel和Hp共同开发了6年的64位CPU架构,是专为服务器市场开发的一种全新的处理器架构,它放弃了以前的IA-32架构(x86系统CPU采用的架构),认为它严重阻碍了处理器的性能提高。它的最初应用是英特尔的Itanium(安腾)系列服务器处理器,现在最新的Itanium 2系列处理器也是采用这一架构的。由于它不能很好地解决与以前32位应用程序的兼容,所以应用受到较大的限制,尽管目前Intel采取了各种软、硬方法来弥补这一不足,但随着AMD Operon处理器的全面投入,Intel的IA-64架构的这两款处理器前景不容乐观。 
——————————-
RISC架构  
采用这一架构的仍是IBM、SUN和HP等。不过近几年由于这一处理器架构标准没有完全统一、处理器的发展和应用非常缓慢,使得原来本占有的绝大多数中高档服务器市场被IA架构瓜分了大部分江山,已是日趋衰落。目前连这几家服务器厂商也开始了自己放弃,转投IA旗下,推出越来越多的IA架构服务器,以保生存。

目前采用这一架构的主要服务器处理器有IBM的Power4、Compaq Alpha 21364、HP PA-8X00、Sun的UltraSPARC III、SGI的MIPS 64 20Kc等。
——————————-

 

 

说完了CPU,现在说一说软件,下载时如何选择,主看下面的示例:

 

SUN JDK:

jdk-6u25-windows-i586.exe  适用于x86-32(简称x86)的CPU,要586以上的CPU,因为x86-64的CPU能向下兼容32位,所以运行在x86-64CPU也是可以的,但是以32位运行的。
jdk-6u25-windows-x64.exe   适用于x86-64,EM64T 的64位CPU。
jdk-6u25-windows-ia64.exe  适用于IA-64Itanium(安腾)系列服务器CPU

 

Tomcat:
apache-tomcat-6.0.32-windows-x86.zip  适用于x86-32(简称x86)的32位CPU,因为x86-64的CPU能向下兼容32位,所以运行在x86-64CPU也是可以的,但是以32位运行的。
apache-tomcat-6.0.32-windows-x64.zip  适用于x86-64,EM64T 的64位CPU。(简称x64)
apache-tomcat-6.0.32-windows-i64.zip  适用于Itanium(安腾)系列服务器CPU,全称应该是ia64,这里简写了。

 

CentOS:

Linux操作系统的一个发行版本CentOS,下载时有
CentOS-5.6-i386-bin-DVD.iso        适用于x86-32(简称x86)的CPU,要386以上的CPU
CentOS-5.6-x86_64-bin-DVD-1of2.iso 适用于x86-64,EM64T 的64位CPU(简称x64)

 

eclipse:

eclipse-jee-helios-SR2-win32.zip         适用于x86-32(简称x86)的CPU
eclipse-jee-helios-SR2-win32-x86_64.zip  适用于x86-64,EM64T 的64位CPU(简称x64)

 

如何选择:如果你想使用32位程序,就下载32位的版本,如果你想使用64位的版本,请根据你的CPU来选择,但我想没人使用Itanium(安腾)的64位CPU来做开发吧(服务器除外),所以ia64不能选,只能选x86-64。总之就是根据你的实际情况选择。

 

最后说明一下,要所有的软件,硬件,全是64位的,你的应用才算成功的运行在64位上了。比如:

使用64位的CPU,现在(2006年以后生产)的CPU都是64位。
安装64位的操作系统,比如64位的windows 7
安装64位的JDK,比如jdk-6u25-windows-x64.exe
安装64位的Tomcat,比如apache-tomcat-6.0.32-windows-x64.zip

安装64位的eclipse,比如eclipse-jee-helios-SR2-win32-x86_64.zip

 

注:本文不讨论64位程序与32位程序的性能问题,只讨论如何选择相应的版本。


转自:http://wujianjun12315.iteye.com/blog/1402809

posted @ 2012-09-13 13:55 BIG森林 阅读(3718) | 评论 (0)编辑 收藏

ubuntu12.04搭建qemu开发环境

一、首先安装qemu
  使用命令 sudo apt-get install qemu
/********************************************************/
/********************************************************/
二、安装 libvirt
解压libvirt-0.9.11.3.tar.gz
cd libvirt-0.9.11.3
./configure

出现:

checking libxml2 xml2-config >= 2.6.0..
则:
sudo apt-get install libxml2 libxml2-dev

configrue: error: you must install the gnutls library in order to compile and run libvirt
则:
sudo apt-get install gnutls-doc gnutls-bin
sudo apt-get install libneon27-gnutls libcurl4-gnutls-dev

提示缺少
configure: error: You must install the YAJL development package in order to compile libvirt
从网上下载YAJL(yajl_1.0.8.orig.tar.gz),然后解压缩tar -zxvf yajl_1.0.8.orig.tar.gz 
进入解压后的文件夹中:cd lloyd-yajl-ce86b0f。安装YAJL。
先安装C++/C编译器,如果已经了就可以跳过该步执行:
sudo apt-get install build-essential  
然后执行:
sudo apt-get install cmake
sudo apt-get install ruby
最后执行:
(1)./configure
(2)make install
又提示缺少device-mapper-devel
从网上下载device-mapper.1.02.28.tgz,然后解压缩tar -zxvf device-mapper.1.02.28.tgz,
进入解压后的文件夹中:cd device-mapper.1.02.28。安装device-mapper。
   (1) ./configure
    (2) sudo make
    (3) sudo make install
然后退出该文件夹,重新安装libvirt
You must install python-devel to build Python bindings
sudo apt-get install python-dev
 
configure: error: libnl-devel >= 1.1 is required for macvtap support
sudo apt-get install libnl-dev

最后:
sudo make
sudo make install

出现问题及解决方法:
(1)解决error while loading shared libraries: libvirt.so.0
    第一种:
    定义shell变量 LD_LIBRARY_PATH
    $ LD_LIBRARY_PATH=/usr/local/lib
    $ export LD_LIBRARY_PATH
    $ ./example
    第二种:
    修改系统动态链接库配置文件
    (the system dynamic linker configuration)
    进入目录/etc/ld.so.conf.d
    添加一个文件libvirt.conf,内容是:
    # libvirt default configuration
    /usr/local/lib
    更新动态链接库缓存
    sudo ldconfig
(2)解决failed to connect socket to '/usr/local/var/run/libvirt/libvirt-sock':no such file or directory
    添加libvirt用户组
    sudo groupadd libvirt
    添加当前用户到libvirt组里
    sudo gpasswd -a  root libvirt
    记得要重启,才能有用

(3) error: ebiptablesDriverInit:4129 : essential tools to support ip(6) tables firewalls could not be located
    编辑文件/usr/local/etc/libvirt/libvirtd.conf

    取消一下几项的注释
    unix_sock_group = "libvirt"
    unix_sock_ro_perms = "0777"
    unix_sock_rw_perms = "0770"
    unix_sock_dir = "/var/run/libvirt"修改为
    unix_sock_dir = "/usr/local/var/run/libvirt"
    auto_unix_ro = "none"
    auth_unix_rw = "none"
最后:如果要启动自动运行libvirtd
    编辑文件/etc/rc.local
    在exit 0之前添加
    sudo libvirtd &
/********************************************************/
/********************************************************/
三、安装Virtual Machine Manager (这不是必要的)
   sudo  apt-get install virt-manager

posted @ 2012-09-12 21:16 BIG森林 阅读(1423) | 评论 (0)编辑 收藏

ubuntu下查看进程端口

nmap localhost

(第一次使用时要安装nmap,命令如下:

 apt-get install nmap

# 查看哪些进程打开了指定端口port(对于守护进程必须以root用户执行才能查看到)

lsof -i:port

# 查看哪些进程打开了指定端口port,最后一列是进程ID(此方法对于守护进程作用不大)

netstat -nap|grep port

# 查看端口号对应的系统服务名称

cat /etc/services

# 启动|停止|重启系统服务

sudo /etc/init.d/service start|stop|restart

 

常见端口详细说明

服务及对应端口          服务及对应端口   
Echo(7)                 FTP(21)
Ssh(22)                 Telnet(23)
SMTP(25)                 DNS(53)
HTTP(80)                 MTA-X.400 over TCP/IP(102)
pop3(110)                NETBIOS Name Service(137、
138、139)
IMAP v2(143)               SNMP(161)
LDAP、ILS(389)              Https(443)
IMAP(993)                                SQL(1433)
NetMeeting T.120(1503)                   NetMeeting(1720)
NetMeeting Audio Call Control(1731)      超级终端(3389) 
QQ客户端(4000)                            pcAnywere(5631)
RealAudio(6970)                           Sygate (7323)
OICQ(8000)                               Wingate(8010)
代理端口(8080)
1、端口:7
服务:Echo
说明:能看到许多人搜索Fraggle放大器时,发送到X.X.X.0和X.X.X.255的信息。
2、端口:21
服务:FTP
说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木 马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。
3、端口:22
服务:Ssh
说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞
存在。
4、端口:23
服务:Telnet
说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。
5、端口:25
服务:SMTP
说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E- MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。
6、端口:53
服务:Domain Name Server(DNS)
说明:DNS服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。
7、端口:80
服务:HTTP
说明:用于网页浏览。木马Executor开放此端口。
8、端口:102
服务:Message transfer agent(MTA)-X.400 over TCP/IP
说明:消息传输代理。
9、端口:110
服务:pop3
说明:POP3(Post Office Protocol 3)服务器开放此端口,用于接收邮件,客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20 个,这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。
10、端口:137、138、139
服务:NETBIOS Name Service
说明:其中137、138是UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation也用它。
11、端口:143
服务:Interim Mail Access Protocol v2
说明:和POP3的安全问题一样,许多IMAP服务器存在有缓冲区溢出漏洞。记住:
一种LINUX蠕虫(admv0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后,这些漏洞变的很流行。这一端口还被用于IMAP2,但并不流行。
12、端口:161
服务:SNMP
说明:SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中,通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。
SNMP包可能会被错误的指向用户的网络。
13、端口:389
服务:LDAP、ILS
说明:轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口 。
14、端口:443
服务:Https
说明:网页浏览端口,能提供加密和通过安全端口传输的另一种HTTP。
15、端口:993
服务:IMAP
说明:SSL(Secure Sockets layer)
16、端口:1433
服务:SQL
说明:Microsoft的SQL服务开放的端口。
17、端口:1503
服务:NetMeeting T.120
说明:NetMeeting T.120
18、端口:1720
服务:NetMeeting
说明:NetMeeting H.233 call Setup。
19、端口:1731
服务:NetMeeting Audio Call Control
说明:NetMeeting音频调用控制。
20、端口:3389
服务:超级终端
说明:WINDOWS 2000终端开放此端口。
21、端口:4000
服务:QQ客户端
说明:腾讯QQ客户端开放此端口。
22、端口:5631
服务:pcAnywere
说明:有时会看到很多这个端口的扫描,这依赖于用户所在的位置。当用户打开pcAnywere时,它会自动扫描局域网C类网以寻找可能的代理(这里的代理 是指agent而不是proxy)。入侵者也会寻找开放这种服务的计算机。,所以应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描包常含端口 22的UDP数据包。
23、端口:6970
服务:RealAudio
说明:RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP-7070端口外向控制连接设置的。
24、端口:7323
服务:[NULL]
说明:Sygate服务器端。
25、端口:8000
服务:OICQ
说明:腾讯QQ服务器端开放此端口。
26、端口:8010
服务:Wingate
说明:Wingate代理开放此端口。
27、端口:8080
服务:代理端口
说明:WWW代理开放此端口。

转自:
http://blog.csdn.net/adparking/article/details/6947394

posted @ 2012-09-12 20:58 BIG森林 阅读(617) | 评论 (0)编辑 收藏

ubuntu12.04 开启root

sudo gedit /etc/lightdm/lightdm.conf

 
greeter-show-manual-login=true  
 
 
allow-guest=false  
 
 
 
修改完的整个配置文件是
 
 
[SeatDefaults]
 
greeter-session=unity-greeter
 
user-session=ubuntu
 
greeter-show-manual-login=true
 
allow-guest=false
 
 
 
之后重启 ubuntu,登录窗口会有“登录”选项,这时候我们就可以通过root登录了。

ubuntu12.04  更新后似乎这样设置不行了,要在安装完系统后就首先这样设置,然后在更新系统。

posted @ 2012-09-11 20:25 BIG森林 阅读(297) | 评论 (0)编辑 收藏

JTree添加图片

1.首先定义根节点和叶节点

DefaultMutableTreeNode root = new DefaultMutableTreeNode("根节点");

DefaultMutableTreeNode leafNode1 = new DefaultMutableTreeNode("叶节点1");

DefaultMutableTreeNode leafNode2 = new DefaultMutableTreeNode("叶节点2");


root.add(leafNode1);

root.add(leafNode2);

 

2.设置树的显示风格

UIManager.getDefaults().put("Tree.lineTypeDashed", true);// 设置连接线为虚线


UIManager.getDefaults().put("Tree.lineTypeDashed",false); //设置连接线为直线

 

JTree tree = new JTree(root);//建树

 

tree.putClientProperty("JTree.lineStyle","None");//去掉连接线
tree.putClientProperty("JTree.lineStyle","Horizontal");//将树设为水平分隔风格
tree.putClientProperty("JTree.lineStyle","Angled");//默认

 

3.给树上节点添加图片

 

首先要获得树的DefaultTreeCellRenderer

DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree.getCellRenderer();

 

Icon rootIcon = new ImageIcon("rootIcon路径");
Icon leafIcon = new ImageIcon("leafIcon路径");

添加图片

rend.setLeafIcon(leafIcon);//叶节点图片
rend.setOpenIcon(rootIcon);//树打开时显示的图片
rend.setClosedIcon(collIcon);//树关闭时显示的图片

 

若要隐藏根节点

tree.setRootVisible(false);

 

 

setBounds(int x, int y, int width, int height)方法的应用

很早以前就看到了这个方法,其说明:(x,y)为组件显示的坐标,(width,height)为组件的宽和高

但无论我怎么设置都没有用,知道前天看到了一个具体实例才豁然开朗,只需要加上一行代码:

this.setLayout(null);

posted @ 2012-08-31 21:31 BIG森林 阅读(436) | 评论 (0)编辑 收藏

仅列出标题
共9页: 1 2 3 4 5 6 7 8 9 
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(2)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜