Posts tagged Linux
Linux下查看apache连接数
0Linux命令:
ps -ef | grep httpd | wc -l
查看Apache的并发请求数及其TCP连接状态:
Linux命令:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
返回结果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
说明:
SYN_RECV表示正在等待处理的请求数;
ESTABLISHED表示正常数据传输状态;
TIME_WAIT表示处理完毕,等待超时结束的请求数。
Linux下调节进程优先级
0命令:
nice(1): 以指定优先级运行程序
nice [OPTION] [COMMAND [ARG]…]
nice –n 1 ls
renice(8): 调整运行进程的优先级
renice priority [[-p] pid …] [[-g] pgrp …] [[-u] user …]
renice +1 987 -u daemon root -p 32
API:
nice(2): 改变进程优先级
int nice(int inc);
getpriority(2): 获取优先级
int getpriority(int which, int who);
setpriority(2): 设置优先级
int setpriority(int which, int who, int prio);
sed 关于换行符 “\n” 的处理
0我有一段文本有多行
如:
12
23
34
我想把它换成一行
结果如下: 122334
vi中 :%s/n//g 可以合并成一行
但是使用命令 sed ‘s/n//g’ 对于换行符不起作用。
因为sed是对行操作,所以没有换行。
解决方案:
tr -d ‘n’
真的需要sed
sed -nr ‘ H;
$ {
x;
s/n//g;
p
}’
SHELL之循环语句
01、if语句
2、交互选择
3、循环判断
4、数值运算符
5、…………
if语句格式:
if [ 条件 ]
then
command
else
command
fi
交互选择(N可以为*)
echo -e “提示语言,后边有光标提供输入”c
read VAR
case $VAR in
Y)
command
;;
N)
command
;;
esac
对条件进行循环检查,成立则处理,否则继续检查
a=1
while [ "$a" = "1" ]
do
fileno=`ls -l /list/filename* |wc -l`
if [ "$fileno" = "10" ]
then
a=10
command
else
a=1
sleep 300
fi
done
grep -v www filename 过滤不包含
grep www filename 过滤包含
uniq -u 过滤没有相同行
uniq -d 过滤具有相同行
sort 排序
paste -d”;” filename1 filename2 把文件并列合并并且以;间隔
if [ "a" = "10" ] #a=10
[ "a" -ne "10" ] 同上一行
[ -s filename ] 文件大小大于0
-s 文件大小大于0返回真
-d 是一个目录是返回真
-e 文件或目录存在返回真
-g 存在是SGID返回真
-h 文件是连接文件返回真
-k 文件是粘滞位返回真
-r 文件或目录存在并可读时返回真
-w 文件或目录存在并可写时返回真
-u 文件是SUID返回真
-x 文件是可执行的返回真
-eq 等于
-ne 不等于
-lt 小于
-le 小于等于
-gt 大于
-ge 大于等于
2*3+4|bc 计算前面的数据
ping -w 2 www.163.com 测试2两次
对上一次指令结果判断
$?=0 为真
$?=1 为假
给SHELL后边加参数
XXXX=`echo | wc -c`
cat $HOME/list/file.txt 1>/dev/null 2>/dev/null
OK=$?
if [ "" = "" ] || [ "$XXXX" -lt "4" ] || [ "$OK" -ne "0" ]
then
echo “参数没有输入,输入位数不等于3,file.txt不存在,请重新输入”
exit
fi
一个循环检查
line=1
for i in `cat bb`
do
qq=`echo “scale=2;$i*100″ | bc | awk -F. ”{print }”`
if [ "$qq" -ge "75" ]
then
sed -n “$line”p temp.1 >> bad.1
fi
line=`expr $line + 1` ###每次加1
在Linux Shell下将汉字转换为Url编码
1在linux 的shell环境下有一个od命令可以将文件按不同的进制的ascii码输出,该功能可以完成在linux shell下将汉字转换为url编码的任务。
url编码是十六进制的形如%E6%9C%8D%E5%8A%A1%E5的字符串,test是包含“数据库网络,”这几个字符的文件,以下命令输出:
#od -t x /test
0000000 ddbefdca f8cde2bf 0a2ce7c2
0000014
该字符串对应的url编码为 %CA%FD%BE%DD%BF%E2%CD%F8%C2%E7%2C。
可以看出编码的对应关系以下是转换的脚本:
#!/bin/sh
#make url code
od -t x /test |awk '{
w=split($0,linedata," ");
for (j=2;j<w+1;j++)
{
for (i=7;i>0;i=i-2)
{
if (substr(linedata[j],i,2) != "00") {printf "%" ;printf toupper(substr(linedata[j],i,2));}
}
}
}' >/testurl
testurl文件的内容就是转换结果。
还原编码:
echo '%CA%FD%BE%DD%BF%E2%CD%F8%C2%E7%2C'|
awk 'BEGIN {
for (i=0;i<=16;i++) hex[sprintf("%X",i)]=i;}
{ for (i=1;i<=length($0);i++)
{ c=substr($0,i,1)
if (c=="+") printf (" ");
else if (c=="%") {
printf ("%c",hex[substr($0,++i,1)]*16+hex[substr($0,++i,1)])
}
else printf (c);
}
} '
数据库网络
zlib安装
0在编译软件./configure时得到错误反馈
checking zlib.h usability… no
checking zlib.h presence… no
checking for zlib.h… no
zlib软件包所包含的库经常被一些软件的压缩或解压缩函数用到,所以如果编译软件时需要Zlib则说明这个软件正好含有压缩或解压缩函数,我们需要安装zlib软件包。
先到zlib官方网站:http://www.zlib.net 上下载源码来安装zlib软件包。
目前最新版本zlib是zlib1.2.3,安装开始;
wget http://www.zlib.net/zlib-1.2.3.tar.gz
tar -xvzf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
sudo make install
这就完成了zlib1.2.3的安装,由于安装zlib1.2.3需要编译,所以最基本的编译器是要安装好的。
Linux下的远程备份(镜像)工具rsync
00 简介
传统上,在Unix系统下使用的备份工具主要有tar、dump(rdump)、restore(rrestore)、dd、cpio、rcp等工具。这些工具中大多数适合于本地备份(native backup),倘若要执行远程备份(remote backup)的话,往往显得力不从心。在Linux系统下提供了一个工具——rsync,据其文档说明,它是rcp工具的一个替代品,但是更快捷、更灵活。rsync采用的remote-update协议允许rsync通过网络链路传输两组文件的增量,而是不是文件本身,据此rsync可以提高传输效率。
rsync所具有的功能特色主要有:
l 支持对连接、设备、用户、组、权限的拷贝;
l 支持类似GNU tar工具的exclude和exclude-from选项;
l 类似CVS的exclude模式:忽略相同的文件;
l 可以使用多种远程shell工具,比如rsh或者ssh;
l 不需要root权限即可运行;
l 将文件传输流水线化以减少延迟开销;
l rsync服务器允许以匿名或者认证方式登录(特别适合于做镜像)。
和大多数网络工具一样,rsync也是以服务器/客户端的方式工作的。但较为特别的一点是:rsync服务器和客户端都使用同一个程序——rsync(如果按常见的做法,则应该是服务器程序为rsyncd,客户端程序为rsync)。启动服务器的时候需要指明–daemon选项,以表明启动的是服务器。而在启动客户端程序的时候则不应开启–daemon选项。
在下文中,假设需要备份的主机为192.168.0.100,其上运行rsync服务器,将该主机称之为rsync-server;存放备份数据的主机为192.168.0.200,其上运行rsync客户端程序,将该主机称之为rsync-client。
linux /etc/hosts解说
0 1. 关于/etc/host,主机名和ip配置文件
hosts – The static table lookup for host name(主机名查询静态表)
linux 的/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。
不同的linux版本,这个配置文件也可能不同。比如Debian的对应文件是/etc/hostname。
2. 配置文件用途;
这个文件可以配置主机ip及对应的主机名,对于服务器类型的linux系统其作用还是不可忽略的。
在局域网或是INTERNET上,每台主机都有一个IP地址,它区分开每台主机,并可以根据ip进行通讯。但IP地址不方便记忆,所以又有了域名。
在一个局域网中,每台机器都有一个主机名,用于区分主机,便于相互访问。
linux主机名的相关配置文件就是/etc/hosts;这个文件告诉本主机哪些域名对应那些ip,那些主机名对应哪些ip:
比如文件中有这样的定义
(更多…)
Linux改变文件或目录的访问权限命令
0Linux改变文件或目录的访问权限命令 Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。
文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件 作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的 任何组合。
有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。例如:
$ ls -l sobsrc. tgz
-rw-r–r– 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
横线代表空许可。r代表只读,w代表写,x代表可执行。注意这里共有10个位置。第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。
例如:
- rw- r– r–
(更多…)
用rsync对网站进行镜像备份
0用rsync对网站进行镜像备份
by inburst<inburst@263.net>
http://xfocus.org
对系统管理员来说,平时的工作重心应该集中在维护系统正常运转,能够正常提供服务上,这里往往牵涉到一个数据备份的问题,在我所了解
的情况中,有80%的系统管理员不是太关心自己服务器的安全性,但往往对备分镜像的技术相当感兴趣,但由于商业产品的软硬件价格都相当高
昂,因此往往会选择自由软件。这里准备介绍的rsync就是这样的软件,它可以满足绝大多数要求不是特别高的备份需求。
一、特性简介
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:
1、可以镜像保存整个目录树和文件系统。
2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。
3、无须特殊权限即可安装。
4、优化的流程,文件传输效率高。
5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
6、支持匿名传输。