LINUX

Linux 系统查看流量的命令

事实上ifconfig 这个命令就提供了在启动网卡以来的总流量,是以B也就是位计算的。
结合watch命令即可看到某个时间间隔内的流量变化,很cool的。完整命令如下:
watch -n 1 ‘ifconfig |grep byte’

该命令会自动刷新,流量统计,非常好。可以在 保存到/root/liuliang.sh 。赋权 chmod  x+  /root/liuliang.sh
日后就可以通过 /root/liuliang.sh 来看流量了,爽!
效果图:

RX 就是接收数据,TX就是发送的数据。上面的图就是服务器接收了14.7G的数据包,发送了11.5G

Rewrite大全之DNS 负载均衡

DNS 负载均衡
一种成熟的基于DNS的负载均衡方法是使用http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html的lbnamed程序,它是一个Perl 5程序,带有若干辅助工具,实现了真正的基于DNS的负载均衡。
代理吞吐循环(Proxy Throughput Round-Robin)
这是一个使用mod_rewrite及其代理吞吐特性的方法。首先,在DNS记录中,将www0.foo.com固定为www.foo.com,如下:
代码:
www IN CNAME www0.foo.com.
其次,将www0.foo.com转换为一个专职代理服务器,即,由这个机器把所有到来的URL通过内部代理分散到另外5个服务器(www1-www5)。为此,必须建立一个规则集,对所有URL调用一个负载均衡脚本lb.pl。
代码:
RewriteEngine on
RewriteMap lb prg:/path/to/lb.pl
RewriteRule ^/(. )$ $ [P,L]
以下是lb.pl:
代码:
#!/path/to/perl
##
## lb.pl — load balancing script
##
$| = 1;
$name = “www”; # the hostname base
$first = 1; # the first server (not 0 here, because 0 is myself)
$last = 5; # the last server in the round-robin
$domain = “foo.dom”; # the domainname
$cnt [...]

Rewrite大全之虚拟用户主机

虚拟用户主机
说明:
如果需要为用户username支持一个www.username.host.domain.com的主页,但不是用在此机器上建虚拟主机的方法,而是用仅在此机器上增加一个DNS记录的方法实现。
方案:
对HTTP/1.0的请求,这是无法实现的;但是对HTTP/1.1的在HTTP头中包含有主机名的请求,可以用以下规则集来内部地重写http://www.username.host.com/anypath为/home/username/anypath:
代码:
RewriteEngine on
RewriteCond % ^www.[^.] .host.com$
RewriteRule ^(. ) % [C]
RewriteRule ^www.([^.] ).host.com(.*) /home/
为外来访问者重定向宿主目录
说明:
对不是来自本地域ourdomain.com的外来访问者的请求,重定向其宿主目录URL到另一个网站服务器www.somewhere.com,有时这种做法也会用在虚拟主机的上下文中。
方案:
只须一个重写条件:
代码:
RewriteEngine on
RewriteCond % !^. .ourdomain.com$
RewriteRule ^(/~. ) http://www.somewhere.com/ [R,L]
重定向失败的URL到其他网站服务器
说明:
如何重写URL以重定向对网站服务器A的失败请求到服务器B,是一个常见的问题。一般,可以用Perl写的CGI脚本通过ErrorDocument来解决,此外,还有mod_rewrite方案。但是须注意,这种方法的执行效率不如用ErrorDocument的CGI脚本!
方案:
第一种方案,有最好的性能而灵活性欠佳,出错概率小所以安全:
代码:
RewriteEngine on
RewriteCond /your/docroot/% !-f
RewriteRule ^(. ) http://webserverB.dom/
但是其问题在于,它只对位于DocumentRoot中的页面有效。虽然可以增加更多的条件(比如同时还处理宿主目录,等等),但是还有一个更好的方法:
代码:
RewriteEngine on
RewriteCond % !-U
RewriteRule ^(. ) http://webserverB.dom/
这种方法使用了mod_rewrite提供的“向前参照(look-ahead)”的功能,是一种对所有URL类型都有效而且安全的方法。但是,对网站服务器的性能会有影响,所以如果网站服务器有一个强大的CPU,那就用这个方法。而在慢速机器上,可以用第一种方法,或者用性能更好的 ErrorDocument CGI脚本。
扩展的重定向
说明:
有时候,我们会需要更多的对重定向URL的(有关字符转义机制方面的)控制。通常,Apache内核中的URL转义函数uri_escape()同时还会对anchor转义,即,类似”url#anchor”的URL,因此,你不能用mod_rewrite对此类URL直接重定向。那么如何实现呢?
方案:
必须用NPH-CGI脚本使它自己重定向,因为对NPH(non-parseable headers [无须解析的HTTP头])不会发生转义操作。首先,在针对服务器的配置中(应该位于所有重写规则的最后),引入一种新的URL类型xredirect::
代码:
RewriteRule ^xredirect. ) /path/to/nph-xredirect.cgi/
[T=application/x-httpd-cgi,L]
以强制所有带xredirect:前缀的URL被传送到如下的nph-xredirect.cgi程序:
代码:
#!/path/to/perl
##
## nph-xredirect.cgi — NPH/CGI script for extended redirects
## Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
##
$| [...]