苹果相关

浏览模式: 标准 | 列表 | 图文
crontab 脚本中结尾的 "2>&1"含义

crontab 脚本中结尾的 "2>&1"含义

本文不是我写的。纯复制粘贴,主要我也只是准备做个笔记。

知其然要知其所以然,平时只是这么写习惯了,也没有去深究过,当然这次也不准备深究,只是先copy一下。


脚本是:
nohup /mnt/Nand3/H2000G >/dev/null 2>&1 &
对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面。
command >out.file 2>&1 &
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个& , 是让该命令在后台执行。

试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

你可以用
ls 2>1测试一下,不会报没有2文件的错误,但会输出一个空的文件1;
ls xxx 2>1测试,没有xxx这个文件的错误输出到了1中;
ls xxx 2>&1测试,不会生成1这个文件了,不过错误跑到标准输出了;
ls xxx >out.txt 2>&1, 实际上可换成 ls xxx 1>out.txt 2>&1;重定向符号>默认是1,错误和输出都传到out.txt了。
为何2>&1要写在后面?
command > file 2>&1
首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。
command 2>&1 >file
2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。

用strace可以看到:
1. command > file 2>&1
这个命令中实现重定向的关键系统调用序列是:
open(file) == 3
dup2(3,1)
dup2(1,2)

2. command 2>&1 >file
这个命令中实现重定向的关键系统调用序列是:
dup2(1,2)
open(file) == 3
dup2(3,1)

可以考虑一下不同的dup2()调用序列会产生怎样的文件共享结构。请参考APUE 3.10, 3.12
linux下vim中文乱码的解决方法

linux下vim中文乱码的解决方法

新初装服务器的时候,有时候打开vim后中文是乱码,怎么处理呢?

最简单的办法:
编辑~/.vimrc文件,加上如下几行:

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
OK,重新打开,搞定
apache 2.2升到2.4的小坑

apache 2.2升到2.4的小坑

2.2升到2.4的小坑应该就出在权限上了

具体查看:https://httpd.apache.org/docs/current/upgrading.html
即,凡是遇到Order allow,deny allow from all等与Order相关的,最好看一下上面的链接。
比如我们用rewrite的时候,都是
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all

在2.4下面,上面的代码不报错,但不起作用。如果你的目录下面有.htaccess文件,那么,网站是打不开的,上面的代码改成

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
OK,再次打开就正常了
利用find和sed批量替换文件内容

利用find和sed批量替换文件内容

find的用法太多了。比如:

1、find . -name "*.php"|grep xxxx 这是判断文件名
2、find . -name "*.php"|xargs -n 50 grep "eval" 这是判断文件中是否有eval字符串,并列出来
还有更多,比如:
====================================================
$find ~ -name "*.txt" -print #在$HOME中查.txt文件并显示
$find . -name "*.txt" -print
$find . -name "[A-Z]*" -pri26nbsp; #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录

=====================================================
$find ~ -name "*.txt" -print #在$HOME中查.txt文件并显示
$find . -name "*.txt" -print
$find . -name "[A-Z]*" -print #查以大写字母开头的文件
$find /etc -name "host*" -print #查以host开头的文件
$find . -name "[a-z][a-z][0–9][0–9].txt" -print #查以两个小写字母和两个数字开头的txt文件
$find . -perm 755 -print
$find . -perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同-perm 777
$find . -type d -print
$find . ! -type d -print
$find . -type l -print

$find . -size +1000000c -print #查长度大于1Mb的文件
$find . -size 100c -print # 查长度为100c的文件
$find . -size +10 -print #查长度超过期作废10块的文件(1块=512字节)

$cd /
$find etc home apps -depth -print | clio -ivcdC65536 -o /dev/rmt0
$find /etc -name "passwd*" -exec grep "cnscn" {} \; #看是否存在cnscn用户
$find . -name "yao*" | xargs file
$find . -name "yao*" | xargs echo "" > /tmp/core.log
$find . -name "yao*" | xargs chmod o-w
如果用find + sed就可以很方便的修改文件。比如:
find ./ -exec grep "xxx:80" '{}' \; -exec sed -i 's/xxx:80/\*:80/g' {} \;

由于以前是直接写死IP的,文件也比较多,所以用find直接全文处理一下,轻松好多。

git将最后一次更新打包

git将最后一次更新打包,这个命令在网上都是这样写的:

git archive -o update.zip HEAD $(git diff --name-only HEAD^)

看起来没有什么问题,但事实上,如果你有一些unversion的文件,它也会打包进去,所以我是这样处理的:

git archive -o update.zip HEAD $(git diff $(git log --pretty=format:"%h" -1) --name-only HEAD^)

嗯,将最后一次提交的内容进行打包。为什么会有这样的需求?是因为自己有git,客户那边没有,所以需要将最后一次,或者最后几次的内容进行打包输出

参考 :

1、https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2

2、http://netkiller.github.io/project/git/ch13s02.html 导出指定版本区间的文件

3、http://blog.sae.sina.com.cn/archives/3003

scp 远程拷贝ssh非22端口的服务器文件的使用方法

OpenOpenSSH是openBSD项目组开发的,基于BSD协议。一般linux发行版自带Openssh。2008年7月出了5.1版。 openssh包含一套程序。scp替换rcp,sftp替换了ftp. 包含sshd和sftp server端。
如果远程为22端口,一切都好说。如果不是那就得看文档了
scp: 远程文件拷贝(scp指定了远端的非默认22端口):
scp -P 20022 src.tar.gz
scp -P 20022 .
scp -o port=60066 .
scp -P 60066 -r /home/zhouhh/src/.*
拷贝目录,-r是将目录下的目录递归拷贝。".*"是将隐藏文件也拷贝过去。需要先在远端创建好相应的目录。
scp -P 60066 -r *
最 后一个命令存在一个问题,就是如果172.16.22.30不是默认22端口,无法指定端口。即-P 指定非缺省的ssh端口时,对远程的拷贝,无法指定两个不同的端口。这应该是scp的命令缺陷。如果谁知道怎么指定两个远端的非缺省22端口的语法,请告 诉我。联系地址ablozhou[at]gmail.com。
scp的优点是使用简单,缺点是无法列出远端目录和改变目录。复杂一点的用法是用sftp。
sftp:
sftp -o port=60066
其中-o port选项指定非缺省的ssh端口。
Connecting to 192.168.12.12...
password:
Changing to: /home/zhouhh
sftp> pwd
Remote working directory: /home/zhouhh
在命令行模式下可以执行一系列命令
ls,cd,pwd,mkdir,rmdir,rm 等远端文件操作
lls,lcd,lpwd等本地操作。
!command 执行本地shell命令
!进入本地shell,exit再进入sftp的命令提示。
可以用help或"?"来查询所有的sftp支持的命令。
get 从远端下载文件
put 将本地文件上传到远程。
sftp配置,需要在/etc/ssh/sshd_config
配置文件增加sftp子系统:
Subsystem sftp /usr/libexec/openssh/sftp-server
然后重启sshd:
service sshd restart
更新:composer 源

更新:composer 源

之前有发过一篇博客:几个常见的 Composer 国内镜像 ,经过长期的测试,发现这些源不是少内容就是速度慢,这不再推荐一个新的,用了它之后,我就腰不酸腿不疼了:http://packagist.phpcomposer.com 【其实这个就是原来的:http://pkg.phpcomposer.com/repo/packagist/,只是换个名字,但这个好象确实快了一点】

具体的操作方法查看上文的博客内容。

备份:不使用ssh_config实现git指定私钥

备份:不使用ssh_config实现git指定私钥

这是一个备份,起因是由于我现在使用的gogs不能使用ssh的方式连接,主要是不方便,所以目前我是使用了HTTP的方式。

看了这篇文章后对我有启发,但是我没有使用,所以只是先做个备份。原文在:http://www.luxingmin.com/archives/278.html
一直想实现指定git访问的私钥,网上资料给出来的都是通过ssh_config来实现,这种方法很繁琐,另外想实现git webhook部署时,使用这种方法也比较不灵活。

切入正题

建立git_ssh文件,内容如下

#!/bin/bash
ssh -i $SSH_KEY_FILE $1 $2
然后增加执行权限

chmod 755 git_ssh
然后就可以通过如下命令指定git访问时使用的ssh私钥

SSH_KEY_FILE=/root/git/id_rsa GIT_SSH=/root/git/git_ssh git clone git@xxx
---EOF---
转:Vagrant下共享目录静态文件(js/jpg/png等)“缓存”问题

转:Vagrant下共享目录静态文件(js/jpg/png等)“缓存”问题

转一篇Vargrant的相关文章【Vagrant下共享目录静态文件(js/jpg/png等)“缓存”问题】,原文来自:http://blog.smdcn.net/article/1325.html,主要是问题在于使用了sendfile可能会导致部会内容不会刷新。

原文如下:

之前提到说通过Vagrant部署开发环境,使用目录共享模式,在本地磁盘进行开发,而通过虚拟机环境运行开发的页面。

是的,一切看起来都是那么的顺利,首先基于VirtualBox安装了Vagrant,接下来,按照以往部署环境的习惯,在VM中安装了nginx作为开发运行环境,并且将本地的共享目录作为nginx的web目录,然后打开页面,看上去似乎都很正常,但接下来,你发现了一个神奇的事情,你修改替换了一个css,一张图片,然后刷新浏览器,发现什么都没有变,然后你有非常猛烈、使劲的F5,依旧还是没有改变,是的,你看看编辑器,似乎替换是正常的,在看看VM上的文件,也都是对的,是的,尝试重启nginx,依旧没有任何变化,你开始怀疑php5-fpm甚至于毫不相干的memcached和mysql,但都无济于事。也不知道是什么让这些文件被“缓存”了呢。

当你尝试修改一个js,并且用同样的方法更新之后,会遇到类似的问题,是的,就算重启VM上任何服务,甚至重启VM,依旧没有用,当然,比起其他资源文件,浏览器的反应会强烈一些,因为浏览器会提示未知错误,而你通过浏览器查看你修改的JS文件,会看到文件尾巴有下面奇怪的随机字符:

�����������������

这到底是什么东西呢?编码错误?缓存异常?又或是其他什么?

是的,你尝试花费很多时间,试验各种各样的方法去解决这个问题,其实对于nginx来说,你只需要修改配置文件(nginx.conf)中的一行重启就能简单的解决这个问题:

sendfile off;
找到 nginx.conf ,把里面的 “sendfile on” 修改为 “sendfile off”。

当然,如果你使用Apache也可能遇到类似的问题,那么同样也有类似的配置需要修改:

EnableSendfile off
关于这个问题的参照:
https://github.com/mitchellh/vagrant/issues/351#issuecomment-1339640

http://stackoverflow.com/questions/9479117/vagrant-virtualbox-apache2-strange-cache-behaviour

----转载完毕---

关于这个sendfile,还有人做了个测试:记vagrant nginx sendfile问题,然后居然没有人评论。。。

从今年开始,一直在vagrant虚拟机上做开发

因前段时间一个项目需要调试静态文件,出现静态文件修改后,浏览器刷新不生效。

最后追踪到是nginx开启了sendfile这一项。。

具体sendfile原理可以查下,,网上写的都很详细,这里就不复述了。

一开始一直认为是nginx某个地方配置有问题。。但后来干脆自己写下,做下测试

具体代码如下(tcp那几步连接这里就不写了。网上很多):


/**
* @connect tcp 连接句柄
*/
int sendClient(int connect)
{
int fd;
struct stat fileStat;
off_t offset = 0;
fd = open("/data/web/test.com/index.html", O_RDONLY|O_NONBLOCK);
if (fd < 0) {
perror("open file.");
return 0;
}
//获取文件信息
fstat(fd, &fileStat);
char buffer[fileStat.st_size];
// read(fd, buffer, fileStat.st_size);
//write(connect, buffer, fileStat.st_size);
sendfile(connect, fd, &offset, fileStat.st_size);
close(fd);
return 1;
}

至些我测了下,得到的还是不生效,由此可以断定,与nginx无关,与系统调度有关

至于问题,我现在的回答只能是vagrant的一个坑,具体是什么,我也无从得知,

当然, 这个我也是从表象猜测, 如果有人知道真正的原因, 还请不吝留言指教
Linux Network Statistics Tools / Commands

Linux Network Statistics Tools / Commands

不想多说啥,直接上原文地址:http://www.cyberciti.biz/faq/network-statistics-tools-rhel-centos-debian-linux/

以下内容有部分经过我的重新排版,但由于fck编辑器中有些内容会自动被code处理,所以,如果太乱,我也不想改了
1.
Type the following command:
# nstat

Sample outputs:

#kernel
IpInReceives 133243 0.0
IpInDelivers 133243 0.0
IpOutRequests 92904 0.0
IcmpOutErrors 97 0.0
IcmpOutTimeExcds 97 0.0
IcmpMsgOutType3 97 0.0
TcpActiveOpens 538 0.0
TcpEstabResets 56 0.0
TcpInSegs 129837 0.0
TcpOutSegs 89720 0.0
TcpRetransSegs 42 0.0
TcpOutRsts 704 0.0
UdpInDatagrams 3255 0.0
UdpNoPorts 97 0.0
UdpOutDatagrams 3270 0.0
Ip6OutNoRoutes 206 0.0
TcpExtTW 141 0.0
TcpExtDelayedACKs 508 0.0
TcpExtDelayedACKLocked 1 0.0
TcpExtDelayedACKLost 42 0.0
TcpExtTCPHPHits 117659 0.0
TcpExtTCPPureAcks 2158 0.0
TcpExtTCPHPAcks 605 0.0
TcpExtTCPSackRecovery 1 0.0
TcpExtTCPLossUndo 16 0.0
TcpExtTCPSackFailures 4 0.0
TcpExtTCPFastRetrans 1 0.0
TcpExtTCPSlowStartRetrans 3 0.0
TcpExtTCPTimeouts 33 0.0
TcpExtTCPDSACKOldSent 40 0.0
TcpExtTCPDSACKRecv 5 0.0
TcpExtTCPAbortOnData 120 0.0
TcpExtTCPAbortOnClose 55 0.0
TcpExtTCPSackShiftFallback 9 0.0
IpExtInOctets 180131682 0.0
IpExtOutOctets 7289106 0.0
2.
To see summary of stats, enter:
# ss -s

Sample outputs:

Total: 786 (kernel 804)
TCP: 65 (estab 40, closed 7, orphaned 0, synrecv 0, timewait 6/0), ports 56
Transport Total IP IPv6
* 804 - -
RAW 1 1 0
UDP 12 9 3
TCP 58 52 6
INET 71 62 9
FRAG 0 0 0
See ss command tutorial for more information.
3.
To see a table of all network interfaces and its summary, enter:
# netstat -i

Sample outputs:

Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 941022 0 0 0 688165 0 0 0 BMRU
lo 16436 0 9304 0 0 0 9304 0 0 0 LRU
ppp0 1496 0 3784 0 0 0 4177 0 0 0 MOPRU
more...
To see summary statistics for each protocol, enter:
# netstat -s

Sample outputs:

Ip:
1092065 total packets received
0 forwarded
0 incoming packets discarded
1091681 incoming packets delivered
798913 requests sent out
895 dropped because of missing route
759 reassemblies required
375 packets reassembled ok
Icmp:
17 ICMP messages received
0 input ICMP message failed.
ICMP input histogram:
timeout in transit: 8
echo replies: 9
1747 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
destination unreachable: 1730
echo request: 17
IcmpMsg:
InType0: 9
InType11: 8
OutType3: 1730
OutType8: 17
Tcp:
4822 active connections openings
1129 passive connection openings
457 failed connection attempts
165 connection resets received
7 connections established
1062519 segments received
771394 segments send out
7158 segments retransmited
6 bad segments received.
2578 resets sent
Udp:
20846 packets received
1730 packets to unknown port received.
0 packet receive errors
19242 packets sent
UdpLite:
TcpExt:
71 invalid SYN cookies received
8 resets received for embryonic SYN_RECV sockets
142 packets pruned from receive queue because of socket buffer overrun
2109 TCP sockets finished time wait in fast timer
84 packets rejects in established connections because of timestamp
19454 delayed acks sent
6 delayed acks further delayed because of locked socket
Quick ack mode was activated 7306 times
1 packets directly queued to recvmsg prequeue.
1 bytes directly received in process context from prequeue
823921 packet headers predicted
24412 acknowledgments not containing data payload received
10150 predicted acknowledgments
242 times recovered from packet loss by selective acknowledgements
33 congestion windows recovered without slow start by DSACK
335 congestion windows recovered without slow start after partial ack
336 TCP data loss events
TCPLostRetransmit: 35
1 timeouts after reno fast retransmit
156 timeouts after SACK recovery
116 timeouts in loss state
461 fast retransmits
5 forward retransmits
608 retransmits in slow start
2073 other TCP timeouts
62 SACK retransmits failed
43074 packets collapsed in receive queue due to low socket buffer
8499 DSACKs sent for old packets
101 DSACKs sent for out of order packets
308 DSACKs received
9 DSACKs for out of order packets received
427 connections reset due to unexpected data
122 connections reset due to early user close
28 connections aborted due to timeout
TCPDSACKIgnoredOld: 3
TCPDSACKIgnoredNoUndo: 60
TCPSpuriousRTOs: 4
TCPSackShifted: 282
TCPSackMerged: 740
TCPSackShiftFallback: 1017
IpExt:
InMcastPkts: 47
OutMcastPkts: 51
InBcastPkts: 1
InOctets: 1341508973
OutOctets: 72525352
InMcastOctets: 8649
OutMcastOctets: 7519
InBcastOctets: 328
See netstat command tutorial for more information.
4.
Type the following command:
# ifconfig

OR
# /sbin/ifconfig

OR
# ifconfig eth0

eth0 Link encap:Ethernet HWaddr b8:ac:6f:65:31:e5
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::baac:6fff:fe65:31e5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:966334 errors:0 dropped:0 overruns:0 frame:0
TX packets:703297 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1186255648 (1.1 GiB) TX bytes:73968238 (70.5 MiB)
Interrupt:17
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:9666 errors:0 dropped:0 overruns:0 frame:0
TX packets:9666 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1399578 (1.3 MiB) TX bytes:1399578 (1.3 MiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.1.11.70 P-t-P:10.0.31.18 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1496 Metric:1
RX packets:3784 errors:0 dropped:0 overruns:0 frame:0
TX packets:4177 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:2400265 (2.2 MiB) TX bytes:275983 (269.5 KiB)
To display network interface statistics, enter:
# ip -s link

Sample outputs:

1: lo: mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
1444187 9960 0 0 0 0
TX: bytes packets errors dropped carrier collsns
1444187 9960 0 0 0 0
2: eth0: mtu 1500 qdisc mq state UP qlen 1000
link/ether b8:ac:6f:65:31:e5 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
1221956483 991501 0 0 0 24
TX: bytes packets errors dropped carrier collsns
75623937 720272 0 0 0 0
3: wlan0: mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 00:21:6a:ca:9b:10 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
4: pan0: mtu 1500 qdisc noop state DOWN
link/ether 4a:c7:5f:0e:8e:d8 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
8: ppp0: mtu 1496 qdisc pfifo_fast state UNKNOWN qlen 3
link/ppp
RX: bytes packets errors dropped overrun mcast
2419881 3848 0 0 0 0
TX: bytes packets errors dropped carrier collsns
284151 4287 0 0 0 0
5.
Type the following command (you need to install and enable sar via sysstat package):
sar -n DEV

Linux 2.6.32-220.2.1.el6.x86_64 (www.cyberciti.biz) Tuesday 13 March 2012 _x86_64_ (2 CPU)
12:00:01 CDT IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
12:10:01 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 CDT eth0 127.13 121.32 95.45 18.34 0.00 0.00 0.00
12:10:01 CDT eth1 98.48 110.62 16.72 96.33 0.00 0.00 0.00
12:20:01 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:20:01 CDT eth0 139.95 133.41 106.30 19.95 0.00 0.00 0.00
12:20:01 CDT eth1 110.65 121.85 18.14 107.13 0.00 0.00 0.00
12:30:01 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:30:01 CDT eth0 147.85 132.49 115.78 20.45 0.00 0.00 0.00
12:30:01 CDT eth1 111.88 127.39 18.61 117.65 0.00 0.00 0.00
12:40:01 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:40:01 CDT eth0 136.75 124.64 105.24 19.48 0.00 0.00 0.00
12:40:01 CDT eth1 101.65 115.32 17.58 104.50 0.00 0.00 0.00
12:50:01 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:50:01 CDT eth0 131.45 125.69 96.49 19.58 0.00 0.00 0.00
12:50:01 CDT eth1 101.41 111.31 17.54 96.78 0.00 0.00 0.00
01:00:01 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:00:01 CDT eth0 140.30 133.27 102.17 20.75 0.00 0.00 0.00
01:00:01 CDT eth1 106.90 119.51 18.53 103.09 0.00 0.00 0.00
01:10:01 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:10:01 CDT eth0 152.03 127.74 125.56 19.85 0.00 0.00 0.00
01:10:01 CDT eth1 115.60 134.57 18.73 126.96 0.00 0.00 0.00
01:20:01 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:20:01 CDT eth0 138.55 130.55 103.03 20.20 0.00 0.00 0.00
....
..
....
..
.
01:00:01 CDT eth1 156.82 169.48 28.83 138.49 0.00 0.00 0.00
01:10:01 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:10:01 CDT eth0 215.19 194.82 163.11 30.99 0.00 0.00 0.00
01:10:01 CDT eth1 162.49 183.79 28.36 163.70 0.00 0.00 0.00
01:20:01 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:20:01 CDT eth0 200.20 192.23 140.64 30.93 0.00 0.00 0.00
01:20:01 CDT eth1 153.60 166.96 27.32 140.26 0.00 0.00 0.00
01:30:01 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:30:01 CDT eth0 111.98 103.58 79.12 16.52 0.00 0.00 0.48
01:30:01 CDT eth1 87.50 95.58 14.74 79.35 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 211.21 196.20 156.18 31.20 0.00 0.00 0.01
Average: eth1 159.10 174.52 28.00 149.95 0.00 0.00 0.00
Or type the following command:
# sar -n DEV 1 3

Sample outputs:

Linux 2.6.32-220.2.1.el6.x86_64 (www.cyberciti.biz) Tuesday 13 March 2012 _x86_64_ (2 CPU)
01:44:03 CDT IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:44:04 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:44:04 CDT eth0 161.70 154.26 105.20 26.63 0.00 0.00 0.00
01:44:04 CDT eth1 145.74 142.55 25.11 144.94 0.00 0.00 0.00
01:44:04 CDT IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:44:05 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:44:05 CDT eth0 162.14 156.31 107.46 42.18 0.00 0.00 0.00
01:44:05 CDT eth1 135.92 138.83 39.38 104.92 0.00 0.00 0.00
01:44:05 CDT IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:44:06 CDT lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:44:06 CDT eth0 303.92 293.14 272.91 37.40 0.00 0.00 0.00
01:44:06 CDT eth1 252.94 290.20 34.87 263.50 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 210.37 202.34 163.19 35.66 0.00 0.00 0.00
Average: eth1 178.93 191.64 33.36 171.60 0.00 0.00 0.00
-----
最后再附送两个
1、netstat -s TCP连接失败 相关统计 解释 (http://blog.sina.com.cn/s/blog_781b0c850101pu2q.html)
针对问题:TCP连接失败
分析:netstat -s输出中和连接失败相关的参数
202270382 invalid SYN cookies received --- 三次握手ack包,syncookies校验没通过;
13700572 resets received for embryonic SYN_RECV sockets ---syn_recv状态下,收到非重传的syn包,则返回reset
1123035 passive connections rejected because of time stamp ---开启sysctl_tw_recycle,syn包相应连接的时间戳 小于 路由中保存的时间戳;
14886782 failed connection attempts --- syn_recv状态下,socket被关闭; 或者 收到syn包(非重传)
438798 times the listen queue of a socket overflowed ---收到三次握手ack包,accept队列满
438798 SYNs to LISTEN sockets ignored ---收到三次握手ack包,因各种原因(包括accept队列满) 创建socket失败
2、Linux 2.6 - man page for nstat (linux section 8) (http://www.unix.com/man-page/linux/8/nstat/)
3、老王的监控Netstat数据 (http://huoding.com/2015/04/09/427)