分类目录归档:LINUX

web压力测试工具ab

ab是apache自带的一款压力测试工具,安装完apache后就有了,一般在/usr/bin目录下。系统为CentOS。

1、安装apache

yum install httpd

2、ab使用方法形如

ab -c 20 -n 1000 http://www.example.com/

-c:并发数
-n:总请求数

===我蛋疼的看了源代码,这段可以跳过===
ab是如何分配并发和请求数的呢?
在test函数中,先给连接数和请求数分配内存,组http报文头、组http请求报文默认使用GET方法(最大2048个字节)
进入for循环
for (i = 0; i < concurrency; i++) {
        con[i].socknum = i;
        start_connect(&con[i]);
    }
start_connect函数里,concurrency有几个并发,就创建几个socket连接
apr_socket_create 继续阅读web压力测试工具ab 

Linux nmap命令

nmap是Linux下常用的网络工具之一,主要作用是扫描主机端口、探测操作系统和版本。这里系统是CentOS6.3。

安装非常简单:

yum install nmap

检查本机打开的端口:

nmap -v localhost

普通用户扫描主机使用如:

nmap -A -T4 scanme.nmap.org

root用户扫描主机使用如:

nmap -sT -Pn scanme.nmap.org

注:不知道为什么root用户不能使用-A选项,会报错

Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 0.79 seconds

常用选项:
-v:表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节
-A:激烈扫描模式,包括打开操作系统探测、版本探测、脚本扫描、路径跟踪
-T:设置时间模板,总有6个级别(0-5),级别越高,扫描速度越快
-sT:TCP扫描
-sU:UDP扫描
-Pn:将所有指定的主机视作开启的,跳过主机发现的过程

更多选项请参考nmap中文参考手册:http://nmap.org/man/zh/index.html

CentOS Linux安装aria2多线程下载工具

aria2是一个Linux下的多线程下载工具,支持HTTP/HTTPS、FTP、BitTorrent、Metalink协议。平时在linux上下载http上的东西常用如wget、curl命令,但是他们都是单线程下载的。这里系统是CentOS6.3 32bit。

aria2官方项目页面:http://aria2.sourceforge.net/

安装aria2:

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm
yum -y install aria2

下载举例:
1)http、ftp下载

aria2c -c -s 5 http://www.example.com/file.tar.gz

-c:断点续传
-s:使用线程数

2)bt下载

aria2c /tmp/CentOS-6.3-i386-bin-DVD1to2.torrent

Linux fsck命令

电脑的文件系统遇到不正常关机或硬件错误容易遭到破坏。Linux下可以使用fsck命令检查、修复文件系统。
使用fsck必须是超级用户。fsck检查所有在柱面群组的数据块映像中被标识为未使用的数据块,即空闲数据块。fsck检查合计空闲数据块的数目,加上被文件节点使用的数据块的数目,这个结果是否等于文件系统中所有数据块的总和。如果fsck发现数据块分配映像有错时,它会自动重建。概要信息中和超级数据块相联系的信息包含在文件系统中所有空闲数据块的数目。fsck将它检查所得到的空闲数据块数目和上面概要信息中的空闲数据块数目进行比较,如果两者不一致,fsck就将实际检查得到的空闲数据块覆盖概要信息中的空闲数据块信息。对空闲文件节点的检查也会做同样的处理。

注:由于fsck对磁盘的文件系统进行修复,直接在系统下运行容易把硬盘搞挂,最好用超级用户开机时在修复模式下使用

执行命令:

fsck

fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
/dev/sda1 is mounted.  

WARNING!!!  Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? yes

/dev/sda1: recovering journal
Clearing orphaned inode 1230664 (uid=0, gid=0, mode=0100755, size=1296064)
Clearing orphaned inode 1230632 (uid=0, gid=0, mode=0100755, size=6364)
Clearing orphaned inode 349170 (uid=0, gid=0, mode=0100755, size=119460)
Clearing orphaned inode 349168 (uid=0, gid=0, mode=0100755, size=1203060)
Clearing orphaned inode 349166 (uid=0, gid=0, mode=0100755, size=9944)
/dev/sda1: clean, 24365/1310720 files, 229945/2621440 blocks

继续阅读Linux fsck命令

Linux文件类型

Linux中的文件分为:普通文件、目录文件、链接文件和设备文件。

1、普通文件
普通文件分为文本文件和二进制文件。

文本文件:以文本的ASCII码形式存储在计算机中。

二进制文件:以二进制形式存储在计算机中。

通过file命令可以用来判断文件类型。

举例:

file /bin/cp
/bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

2、目录文件
目录文件主要的目的是用于管理和组织系统中的大量文件。它存储一组相关文件的位置、大小等与文件有关的信息。

3、链接文件
链接文件分为软链接和硬链接。
继续阅读Linux文件类型

Linux文件描述符

在Linux操作系统上,把一切都看作是文件。Linux中的文件分为:普通文件、目录文件、链接文件和设备文件。

标准输入输出设备是一种设备文件,分别为:标准输入STDIN_FILENO(0),标准输出STDOUT_FILENO(1),出错处理STDERR_FILENO(2)。为了使用这个文件需要得到它的文件描述符,后面的0、1、2就是标准输入、标准输出、出错处理的文件描述符,程序通过标准输出的文件描述符,从中写入内容,可以达到屏幕显示功能。

对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时,用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或write。

文件描述符(file descriptor)在程序中定义为一个整型变量,相关操作有create、delete、open、close、read、wirte、seek,一般程序返回负数表示操作失败。例如将一个通用设备连接到Linux系统上,系统将它看作是一个文件,通过open函数(系统调用接口)和路径名获得它的文件描述符,在程序里使用相关函数对其进行操作。

在win32中有一个文件句柄(file handle)的概念,句柄用来管理不同的对象资源,比如窗口、对话框、画布、按钮、文件等等,应用程序能够通过句柄访问相应的对象的信息。它和Linux中的文件描述符还是有区别。

参考资料:
http://blog.csdn.net/linuxmichael/article/details/5156790
http://ciwnet.blog.sohu.com/48825936.html
http://blog.csdn.net/thefinals/article/details/7177720

CentOS Linux安装XODA文档管理系统

XODA是一个简单的文档管理系统,使用PHP和AJAX开发,不用数据库,可对包括文件和目录编辑附加的描述、标签和分类,并进行常规的操作,例如复制、移动、重命名、删除等。XODA官网:http://www.xoda.org。
它的作者在介绍里说,当初作者很喜欢的一个主机商DreamHost提供了50GB的备份空间,于是他传了很多个人的文件在上面。在远程主机运行着一个web server,然后,需要一个好的排序和查找工具。他找了很多的开源文档管理系统,但是都要有SQL在后端存储文档、文件的meta信息。没有一个是他想要的,所以他就开发了XODA。

1、安装apache和php

yum install httpd php php-bcmath php-gd php-mbstring php-xml php-process

apache要设置支持伪静态,php建议支持POSIX功能,安装php-process就可以了。具体配置apache和php的过程略过。

2、安装XODA
目前最新版为xoda-0.4.6。

cd /tmp
wget http://sourceforge.net/projects/xoda/files/xoda/xoda-0.4.6/xoda-0.4.6.tar.bz2/download
tar -jxvf xoda-0.4.6.tar.bz2
mv xoda-0.4.6 /var/www/html/xoda
chown -R apache:apache /var/www/html/xoda
cd /var/www/html/xoda/
cp config.sample.php config.php
继续阅读CentOS Linux安装XODA文档管理系统

使用gpg key加解密文件

gpg key除了在安装软件包时校验软件包签名,还可以用于加解密文件。这里系统为CentOS6.3。

1、首先创建gpg key

cd ~
gpg --gen-key

然后选择加密算法、加密强度、是否设置有效期,设置名称和邮箱,输入保护密码,最后在/root/.gnupg目录下生成公钥和私钥文件。
具体过程可参考:http://www.live-in.org/archives/1410.html中的创建过程。

创建结果:

要随时显示上列信息,执行:

gpg --fingerprint thomas@example.com

F24AC529是gpg key ID。
A443 76DF 2F35 1874 4F36 3FBA 5161 169D F24A C529是密钥指纹。
继续阅读使用gpg key加解密文件

从RPM包中提取文件

要从rpm包中提取一个配置文件可以使用rpm2cpio和cpio命令完成。系统为CentOS6.2。

rpm2cpio命令和cpio命令都是系统默认支持的命令。rpm2cpio命令是将一个rpm包转换成cpio档案格式显示在标准输出中(可保存为.cpio文件),cpio文件是UNIX系统下的一个打包格式,然后用cpio命令解压.cpio文件,最后提取出需要的文件。

以mytop-1.7-3.el6.noarch.rpm为例:

rpm2cpio mytop-1.7-3.el6.noarch.rpm > mytop.cpio
cpio -idmv < mytop.cpio

显示释放了usr目录:

./usr/bin/mytop
./usr/share/doc/mytop-1.7
./usr/share/doc/mytop-1.7/Changes
./usr/share/doc/mytop-1.7/README
./usr/share/man/man1/mytop.1.gz
137 blocks

参数说明:
-i:从文档中提取文件
-d:保持内部文件的目录
-m:创建文件时保持文件修改的时间(时间戳)
-v:显示处理进度

以上也可写成一句命令:
rpm2cpio mytop-1.7-3.el6.noarch.rpm | cpio -idmv

最后提取自己需要的文件就可以了。

CentOS Linux自建yum源

平时使用yum方式安装更新软件,可以自建一个yum源,同步官方更新源,这样如果本地有机器要升级的话就可以直接使用本地的更新源了。这里系统为CentOS 6.2。

一、服务端
1、安装需要的环境
自建yum本地更新源可以使用http服务或ftp服务,由于ftp服务器要考虑防火墙配置,主动、被动连接模式,这里使用http服务。

安装apache:

yum install httpd

配置apache过程略过。

2、安装createrepo软件包

yum install createrepo

3、建立存放软件包目录

mkdir -p /home/yum/centos/6/
chown -R apache:apache /home/yum/

4、apache创建虚拟目录

vim /etc/httpd/conf/httpd.conf
继续阅读CentOS Linux自建yum源