iftop 监控网卡流量

按照惯例,我们需要安装一下软件所需软件包:

yum install libpcap ncurses ncurses-devel libpcap-devel

下载iftop,当前最新版为0.9

wget http://www.ex-parrot.com/%7Epdw/iftop/download/iftop-0.9.tar.gz

解压后查看一下INSTALL文件,得知可以修改Makefile中的prefix=安装目录,默认不需要修改

cd iftop-0.9

make

make install

然后就可以使用 iftop -i eth0  查看某网卡流量分布。

白色阴影部分可以理解为流量刻度尺,上面为单个连接数流量刻度,下面为网卡总流量刻度。

类别: CentOS, 配置详解  |  发表评论

find mtime atime ctime

我对 find . -mtime +-N 后面的参数困惑了一下,于是查了点资料,总结总结。
-mtime   文件内容最后一次被修改的时间
-ctime    文件的i节点最后一次被修改的时间(例如修改文件的权限属主等信息会影响到ctime)
-atime    文件内容的最后访问时间
当前时间:
[root@project test]# date
2011年 12月 05日 星期一 16:06:01 CST
创建三个时间点文件:
[root@project test]# touch -t 1112040100.00 1204
[root@project test]# touch -t 1112050100.00 1205
[root@project test]# touch -t 1112030100.00 1203
[root@project test]# ll
总计 0
-rw-r--r-- 1 root root 0 12-03 01:00 1203
-rw-r--r-- 1 root root 0 12-04 01:00 1204
-rw-r--r-- 1 root root 0 12-05 01:00 1205
现在开始测试:
[root@project test]# find . -mtime 1
./1204
[root@project test]# find . -mtime +1
./1203
[root@project test]# find . -mtime -1
./1205
神马意思呢?
-N  表示:当前时间向前(N*24)小时   至   当前时间。 例如 -1 就代表 过去24小时修改的文件(当然穿件的也算)
+N 表示:当前时间起,(N*24+24)小时这个时间点以前。例如 +1 就代表48小时以前修改的文件
N 表示:当前时间起(N*24)小时以前   至(N+1)*24小时以前   之间的时间。
希望你没晕,看看时间轴表达:
|------------1203------1204------1205----->
|-------(+1)---|----(1)----|---(-1)----|-------->
类别: 命令小记  |  1 Comment

开启 sftp 操作日志

通过SFTP上传、删除文件,怎样记录日志呢,可以如此如此:
1.修改SSH配置:

vim /etc/ssh/sshd_config

# 修改
Subsystem       sftp    /usr/lib64/ssh/sftp-server -l INFO -f AUTH
2. 修改syslog
vim /etc/syslog.conf
# 增加一行
auth,authpriv.*                                         /var/log/sftp.log
3. 重启后查看/var/log/sftp.log
/etc/init.d/syslog restart
/etc/init.d/sshd restart
cat /var/log/sftp.log
类别: 配置详解  |  发表评论

sshfs Linux磁盘映射

这是个神奇的工具。

sshfs 是基于 FUSE 构建的 SSH 文件系统客户端程序,可以把远程主机的文件系统映射到本地主机上,透过 SSH 把远程文件系统挂载到本机上,当然你需要有SSH和文件系统的权限。

他一般使用在通过跳板机访问内网主机的情况。注意当使用完了以后记得umount。

#  看清你是64位还是32位,地址有变化
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

yum install sshfs

用法:sshfs 用户名@远程主机IP:远程主机路径 本地挂载点

# 将202.123.123.123主机的/data/www映射到本地/mnt目录,需要SSH密码

sshfs root@202.123.123.123:/data/www /mnt

卸载:umount 本地挂载点

umount /mnt

类别: 命令小记  |  发表评论

前段时间购书两本

《C++ Primer 第四版》和《Python 核心编程》

目前它们还在家里晒太阳……

类别: 心情日记  |  发表评论

开源协议BSD/Apache/GPL/LGPL

这是个转帖,出处困惑的不知在哪。

BSD开源协议

BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。   但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
3.不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对 商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

Apache Licence 2.0

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

  1. 需要给代码的用户一份Apache Licence
  2. 如果你修改了代码,需要再被修改的文件中说明。
  3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

GPL

我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商 业软件公司开发的免费软件了。

GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。

其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。

LGPL

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并 发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品

MIT

MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.

类别: Linux  |  发表评论

试试 CactiEZ

服务器集群监控类软件看来看去也就是Nagios和Cacti。

Nagios配置起来真可谓又臭又长,一大堆的配置,即时是yum安装也丝毫没感觉到便捷之处,Cacti还算可以,有好看的图表,不过配置起来也是OMG。

或许可以试试CactiEZ。

CactiEZ是一个基于 CentOS 的 Linux 发行版,主要的目的是为了简化 Cacti 监控系统的安装和配置,装好了就可以直接使用 Cacti。

软件下载:http://www.oschina.net/action/project/go?id=14083&p=download

软件文档:http://cactiez.cactiusers.org/docs/

一个集成Cacti的CentOS,您可以单独部署在一台服务器上。(既然都集群了,也不必吝啬再弄台低配置机器吧)

类别: CentOS  |  发表评论

InnoDB 引擎独立表空间 innodb_file_per_table

使用过MySQL的同学,刚开始接触最多的莫过于MyISAM表引擎了,这种引擎的数据库会分别创建三个文件:表结构、表索引、表数据空间。我们可以将某个数据库目录直接迁移到其他数据库也可以正常工作。然而当你使用InnoDB的时候,一切都变了。

InnoDB 默认会将所有的数据库InnoDB引擎的表数据存储在一个共享空间中:ibdata1,这样就感觉不爽,增删数据库的时候,ibdata1文件不会自动收缩,单个数据库的备份也将成为问题。通常只能将数据使用mysqldump 导出,然后再导入解决这个问题。

在MySQL的配置文件[mysqld]部分,增加innodb_file_per_table参数。

可以修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间。

独立表空间:

优点:

1.  每个表都有自已独立的表空间。
2.  每个表的数据和索引都会存在自已的表空间中。
3.  可以实现单表在不同的数据库中移动。
4.  空间可以回收(除drop table操作处,表空不能自已回收)

a)         Drop table操作自动回收表空间,如果对于统计分析或是日值表,删除大量数据后可以通过:alter table TableName engine=innodb;回缩不用的空间。

b)         对于使innodb-plugin的Innodb使用turncate table也会使空间收缩。

c)         对于使用独立表空间的表,不管怎么删除,表空间的碎片不会太严重的影响性能,而且还有机会处理。

缺点:

单表增加过大,如超过100个G。

结论:

共享表空间在Insert操作上少有优势。其它都没独立表空间表现好。当启用独立表空间时,请合理调整一 下:innodb_open_files 。

InnoDB Hot Backup(冷备)的表空间cp不会面对很多无用的copy了。而且利用innodb hot backup及表空间的管理命令可以实现单现移动。

类别: MySQL  |  1 Comment