如何使用yum下载一个rpm包

1. 首选要安装 yum-downloadonly
# yum install -y yum-downloadonly.noarch
2. 下载一个rpm包而不安装
# yum install test.rpm -y --downloadonly   //这样虽然下载了,但是并没有保存到我们想要的目录下,那么如何指定目录呢,请看3
3.   下载到指定目录
# yum install test.rpm -y --downloadonly   --downloaddir=/usr/local/src

Linux与Windows文本格式之间的转换

在Linux中,文本文件用"\n"表示回车换行,而Windows用"\r\n"表示回车换行。所以在Linux中使用Windows的文本文件常常会出现错误
因为装了双系统,所以有时一些文件在两个系统之间共享,不过之前一直没有很在意这个问题.在windows系统中用Word或者Notepad++打开文件,在linux系统中一直用的是vim编辑器,不过昨天在命令行界面就只能用vi了..郁闷!! 中文支持都是个头痛的问题,在windows编辑过的文本文件每行末尾都会以^M以结尾...

Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把"\r\n"转化成"\n",unix2dos把"\n"转化成"\r\n"。

在CentOS/Redhat  linux下,这两个命令默认都是安装的,如果没有,请使用
yum  install dos2unix  unix2dos
安装即可

unix  转换成 windows:
unix2dos   filename
windows  转换成 unix
dos2unix  filename

在linux下如何增大swap空间

# dd if=/dev/zero of=/.swapf bs=1024 count=102400  #bs默认为512,count默认单位是KB;
# mkswap /.swapf
# swapon /.swapf
# swapon -s  #显示swap挂载情况;
编辑/etc/fstab:
/.swapf swap swap defaults 0 0       如果有剩余空间的话,就更简单了:
比如,已经划分/dev/sda7为512M
# mkswap /dev/sda7
# swapon /dev/sda7
编辑/etc/fstab:
/dev/sda7    swap    swap    defaults 0 0

让wordpress tag 字体大小一致

1.打开wp-includes/category-template.php;

2.找到function wp_tag_cloud ( $args = ” );

3.修改。

参数说明:smallest是最小字号,largest是最大字号,两个数字设置成一样标签字号就大小一致了。unit是单位,number是显示数量,orderby是排序依据,orderby设置为name是按名称排序,设置为count是按使用频率排序。order后面的参数,ASC是指升序排列,若DESC则是指降序排列。

什么是etag工作原理及配置

Etag 是URL的Entity Tag,用于标示URL对象是否改变,区分不同语言和Session等等。具体内部含义是使服务器控制的,就像Cookie那样。
HTTP协议规格说明定义ETag为“被请求变量的实体值” 。另一种说法是,ETag是一个可以与Web资源关联的记号(token)。典型的Web资源可以一个Web页,但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义,并在HTTP响应头中将其传送到客户端。
Etag在HTTP1.1中有介绍,主要的作用就是在(css file, image, javascript file)文件后面添加一个唯一的参数(相当于查询参数字符串),Etag有服务器端生成,并且随着文件的改变而改变,这样浏览器端就会只重新请求获取 Etag发生变化的文件,减少浏览器端数据的流量,加快浏览器的反应速度,重要的是减轻服务器端的压力,所以服务器端Etag的实现就比较重要了。
现在我们有个问题为什么要使用Etag呢?
Etag主要为了解决Last-Modified无法解决的一些问题.他能比Last_Modified更加精确的知道文件是否被修改过.如果有个 文件修改非常频繁,比如在秒以下的时间内进行修改,比如1秒内修改了10次,If-Modified-Since能检查只能秒级的修改,所以这种修改无法 判断.原因是UNIX记录MTIME只能精确到秒.所以我们选择生成Etag,因为Etag可以综合Inode,MTime和Size,可以避免这个问题.

使用 screen 管理你的远程会话


你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。有了screen,它会给你一个惊喜!

我最常用的是输入screen后,在2个终端间使用快捷键ctrl+a(连续2次),这样这2个界面就轮回切换
下载地址:http://ftp.gnu.org/pub/gnu/screen/screen-4.0.2.tar.gz

常用浏览器(电脑以及手机)useragent 汇总

Windows操作系统浏览器系列:


IE浏览器系列:
特征表现:均以 "mozilla/" 开头,"msie x.0;" 中的x表示其版本;
判断方法:粗略判断可以只检索 "msie x.0;" 字符串即可,严格判断可检索 "mozilla/x.0 (compatibal; msie x.0; windows nt",不过一般没有这个必要
Windows版Firefox:
特征表现:以"mozilla/x.0"开头,包含"windows nt","gecko/"和"firefox/" ;
判断方法:粗略判断可以只检索 "firefox/"和"windows nt" 字符串,严格判断可以检索"mozilla/" ,"windows nt","gecko/"和"firefox/" 四个字符串;
Windows版Chrome:
特征表现: 以"mozilla/x.0"开头,包含"windows nt","chrome/",同时包含"applewebkit/","safari/";
判断方法:粗略判断可以只检索 "windows nt"和"chrome/"字符串,严格判断可以同时检索 "mozilla/" ,"windows nt","applewebkit/","safari/","chrome/" 五个字符串;
Windows版Opera:
特征表现:以"opera/"开头,含有"windows nt","presto/" 字符串;
判断方法:粗略判断只检索 "windows nt"和"opera/"字符串,严格判断同时检索 "opera/","windows nt" 和 "presto/";
Windows版Safari:
特征表现:以"mozilla/"开头,同时含有"windows nt","applewebkit/","safari/";
判断方法:粗略判断可以检索含有 "windows nt","safari/" 同时不包含 "chrome/",严格判断需要同时含有"mozilla/","windows nt","applewebkit/","safari/"但是不包含"chrome/";   
小结:Windows操作系统上的浏览器userAgent均包含"windows nt"字符串来表征windows操作系统。


iPhone平台浏览器系列:
iPhone自带safari:
特征表现:以"mozilla/"开头,含有"iphone"字符串,同时含有 "mobile/","safari/"字符串;
判断方法:粗略判断只检索 "iphone"和"safari/"字符串,严格判断则要同时包含 "mozilla/","iphone","mobile/","safari/"四个字符串
iPhone版Opera Mobile:
特征表现: 以"opera/"开头,含有"iphone"字符串,同时含有 "opera mini/","presto/"字符串;
判断方法:粗略判断只检索 "iphone"和"opera/"字符串,严格判断则要同时包含 "opera/","iphone","opera mini/","presto/"四个字符串
小结:iPhone手机上的浏览器userAgent均包含"iphone"字符串


Android平台浏览器系列:
Android自带浏览器(有人说其实是就chrome,但google自己未做表示,且还在开发一个Android上运行的Chrome to Phone):
特征表现: 以"mozilla/"开头,含有"android"和"linux" 字符串,同时含有 "applewebkit/","mobile safari/"字符串;
判断方法:因为还不知道Android上未来会不会有独立的safari(估计不会了),所以建议直接严格判断,检索 "mozilla/","android","linux","applewebkit/","mobile safari/"五个字符串
Android版Opera Mobile:
特征表现: 以"opera/"开头,含有"android"和"linux" 字符串,同时含有 "opera mobi/","presto/"字符串;
判断方法:粗略判断只检索 "android"和"opera/",严格判断则要同时包含"opera/","android","linux","opera mobi/","presto/"五个字符串
Android版Firefox:
特征表现:以"mozilla/"开头,含有"android"和"linux" 字符串,同时含有 "firefox/","gecko/","fennec/"字符串;
判断方法:粗略判断只检索 "android"和"firefox/",严格判断则要同时包含"mozilla/","android","linux","firefox/","gecko/","fennec/"六个字符串  
小结:Android平台上的浏览器userAgent均包含"android"和"linux"字符串

目前手机浏览器中比较火的是 UC浏览器,它的useragent 有一个特点。肯定是包含  UCWEB 这个字眼。

apt-get 的使用


1.修改source list文件
配置文件是/etc/apt/sources.list
在文件中添加如下的两行
deb ftp://ftp.iitm.ac.in/debian/ stable main
deb-src ftp://ftp.iitm.ac.in/debian/ stable main
这两个位于印度的服务器,下载的速度很快。
2.apt-get update用于获取最新的软件信息。

3.使用apt-get install package进行指定软件的安装
例如:apt-get install vim
4.apt-get remove package进行软件的移除
5.apt-get source package获取软件的源代码
6.apt-get clean清除下载的deb
来自: www.linuxsir.org

一基本配置

1. /etc/apt/sources.list文件的基本格式:

deb http://site.http.org/debian distribution section1 section2 section3
deb-src http://site.http.org/debian distribution section1 section2 section3

deb 二进制程序包 deb-src 原代码程序包
例如:

deb http://http.us.debian.org/debian stable main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable non-US

deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://http.us.debian.org/debian stable main contrib non-free

apt 会忽略以"#"开头的行

注意: 修改/etc/apt/sources.list后,应及时更新数据库列表

2.制作本地apt

# mkdir /root/debs
将自己收集的.deb包考入/root/debs目录
# dpkg-scanpackages debs| gzip > debs/Packages.gz
在/etc/apt/sources.listdeb 加入:
file:/root debs/

3.寻找速度最快的下载镜相:netselect, netselect-apt

安装netselect软件包
# apt-get install netselect
测试我使用的镜像
# netselect security.debian.org ftp.us.debian.org ftp.jp.debian.org non-us.debian.org people.debian.org gluck.debian.org
520 ftp.jp.debian.org
#
看到了我所使用的镜像中 ftp.jp.debian.org速度最快 得分为520 (得分越低越好)
你可以在这里查找debian的镜像列表 http://www.debian.org/mirror/mirrors_full
你也可以用netselect-apt下载列表
# ls sources.list
ls: sources.list: File or directory not found
# netselect-apt stable
(...)
# ls -l sources.list
sources.list
#
前提是你已经安装并运行了'wget'包

4.把CD-ROM加入到你的/etc/apt/sources.list文件

如果使用apt自动从CD-ROM上安装软件或升级系统,可以把它加入/etc/apt/sources.list文件
# apt-cdrom add

注: CD-ROM必须在/etc/fstab文件中已正确配置

二、管理包

1.apt系统使用一个数据库列表来记录系统已经安装了哪些软件,哪些没有安装,哪些软件可以通过apt系统自动安装 apt-get通过分析这个数据库来决定如何安装软件,
应该经常运行#apt-get update来更新此数据库

2.安装软件包
# apt-get install packagename
apt-get的参数
-h This help text.
-d Download only - do NOT install or unpack archives
-f Attempt to continue if the integrity check fails
-s No-act. Perform ordering simulation
-y Assume Yes to all queries and do not prompt
-u Show a list of upgraded packages as well

软件包会被下载到/var/cache/apt/archives 稍后进行安装
如果一个软件包坏了,或者你只是想重新安装一个软件的最新版本 ,可以使用--reinstall参数,如
# apt-get --reinstall install gdm
在安装软件时,可以用apt-get install package/distribution或apt-get install package=version来指定软件的安装版本,如
# apt-get install nautilus/unstable

3.移除软件包
apt-get remove package
# apt-get remove gnome-panel
这样就会移除gnome-panel以及对gnome-panel有依赖性的软件包,无法使用apt系统仅仅移除此软件,而保留对它有依赖性的软件包。
apt-get remove package并不能移除这些软件的配置文件
# apt-get --purge remove gnome-panel
就可以一块把他的配置文件移除

4.升级软件包
apt-get upgrade

5.升级到一个新的版本
# apt-get -u dist-upgrade

6.移除无用的软件包
当安装软件时,软件包会被先下载到/var/cache/apt/archives/目录下,然后安装。这样这个目录所占空间会越来越大,幸运的是apt提供了相应的管理工具
apt-get clean删除/var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/目录下所有包(锁定的除外)。
apt-get autoclean仅删除不再能被下载的包

7.
8.如何维持一个混合的系统
鉴于testing版unstable版本比稳定,又比stable版本要新 ,很多人使用testing,可是有些人想运行某个软件的最新版,却又不愿把这个系统升级为unstable,即想使用一个混合的系统,那么可以这样做:
在 /etc/apt/apt.conf 加入:
APT::Default-Release "testing";
当要安装unstable软件时 加 -t 参数:
# apt-get -t unstable install packagename
注:不要忘记在/etc/apt/sources.list中加入相应的源

9.从一个特定的debian版本升级软
# apt-get install `apt-show-versions -u -b | grep unstable`件

10.如何在软件升级时避免特定软件不会被升级
如果你使用的bebian版本在2.2以上,仅仅需要修改/etc/apt/preferences 文件
格式非常简单:
Package: Pin: Priority:

例如我要保持gaim的0.58版本 只需加上:
Package: gaim
Pin: version 0.58*
统配符 * 指锁定以0.58开头的所有版本 这就是说即使存在0.58-1 或类似 也不会被安装
Priority(优先级)是可选项 默认 989
<0 此软件永不会被安装
0~100 软件不被安装,不是有效的版本
>100 此软件会被安装 即 如果有更新版本,软件会被升级
100~1000 软件不会被降级安装,例如:我安装的gaim 0.59 , 锁定gaim 0.58 ,优先级为999
那么0.58就不会被安装 ,如果要降级安装 则优先级许大于 1000

获取软件信息

1.搜寻软件名
# apt-cache search gaim
软件信息
# apt-cache show gaim
如果已经安装,并且又有了新版本,那么都会显示,安装版本在后
获取更多信息
# apt-cache showpkg gaim
查询软件的依赖性
# apt-cache depends gaim

2.用dpkg查询软件名
根据某一个文件查询软件名
# dpkg -S stdio.h

3.询问式安装
# auto-apt run command

4.查询文件的归属
# apt-file search filename
就象dpkg -S 但可以查询,但可以查未安装软件包
也可以查询一个包所含文件
# apt-file list packagename
它会用到数据库所以要及时更新
# apt-file update

程序源文件

1.下载程序源码
# apt-get source packagename
这样就会下载三个文件 a .orig.tar.gz, a .dsc 和 a .diff.gz
下载后自动打包
# apt-get -b source packagename

2.编译软件
# apt-get build-dep gmc
下载所编译包的依赖程序

sudo apt-get -f install 修复安装"-f = --fix-missing"

如果在运行apt-get install package时,你的系统报告如下信息:


Reading Package Lists... Done

Building Dependency Tree... Done

W: Couldn't stat source package list 'http://people.debian.org unstable/ Packages' (/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) - stat (2 No such file or directory)

W: You may want to run apt-get update to correct these missing files

E: Couldn't find package penguineyes

上次你修改/etc/apt/sources.list后,忘了运行apt-get update更新。

如果出现这样的信息:

E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)

E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

如果你没有root权限,运行除source外的其它apt-get命 令,如会出现上面的错误信息。这是因为你是普通用户。

当你同时运行两个apt-get进程,或者当你试图运行apt-get时已有一个的dpkg进程处于激活状态,系统也 会报告与上面相似的错误信息。唯一能与其它命令同时运行的只有source 命令。

如果在安装过程中出现中断,然后你发现该软件包既不能重装又不能删除,试试下 面两个命令:

# apt-get -f install

# dpkg --configure -a

再试着安装那个软件包,如果不行再次运行上述命令后再试。这两个命令对于那些 使用unstable的玩家非常有用。

如果你在运行apt-get update时看到“E: Dynamic MMap ran out of room”, 那么在/etc/apt/apt.conf加入如下内容:

APT::Cache-Limit 10000000;



另附:

常用的APT命令参数(转载) 作者: feng_li_82
关键字:
apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package - - reinstall 重新安装包
sudo apt-get -f install 修复安装"-f = --fix-missing"
sudo apt-get remove package 删除包
sudo apt-get remove package - - purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 是查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖

安装net-snmp

net-snmp 的安装和配置
从以下地址可以下载到最新的软件安装包:
http://nchc.dl.sourceforge.net/s ... snmp-5.4.2.1.tar.gz
http://mylinux.5d6d.com/userdirs/c/f/mylinux/attachments/month_1004/net-snmp-5.5.zip
1、解压源码包:
tar –zxvf net-snmp-5.4.2.1.tar.gz
2、进入解压后的文件目录:
cd net-snmp-5.4.2.1
3、执行文件目录下的configure可执行文件,如果想指定程序包的安装路径,那么您首先建立相应的文件夹来存放安装信息,您可以写成./configure –prefix=/您指定的路径名。参数—prefix用来告诉系统安装信息存放的路径,如果您没有指定路径,直接执行./configure,那么程序包都会安装在系统默认的目录下,通常为:/usr/local下。例如:
./configure --prefix=/usr/local/snmp //配置 指定安装目录,安装过程会询问您以下的信息:
注意:以下问题似乎不怎么重要,那好像仅仅是官方想了解使用本软件方的信息,可以直接回车而不用回答,系统会采用默认信息,其中日志文件默认安装在/var/log/snmpd.log.数据存贮目录默认存放在/var/net-snmp下。
default version of-snmp-version(3): 3(在这里版本通常有三种形式:1,2c,3)
Systemcontact information(配置该设备的联系信息): heaven(也可以是邮箱地址)
System location (该系统设备的地理位置):BEIJING P.R China
Location to write logfile (日志文件位置): /var/log/snmpd.log
Location to Write persistent(数据存储目录): /var/net-snmp
4、#make
编译源码包文件,通常只需要执行make命令,系统会根据Makefile层层进行编译,第一次编译这需要大约20分钟的时间哦,您需要有耐心等待(RedHat4系统通常会相继出现两个编译错误,您此时可以参考我在本页后面写的出错处理方式来解决). 如果make 成功的话,那么紧接着安装程序了,这一步一般不会出现怪异的错误,安装也比较费时,大约要花费10分钟呢.

#make install
5、在完成上面的步骤后紧接着制作配置文件  *.conf,在这里有两种方式,一种方式是用命令snmpconf -g basic_setup生成snmpd.conf文件,但需要回答很多没用的问题,比较费时,我这里用了一种较简便的方法生成配置文件,就是把解压后的那个文件目录下的EXAMPLE.conf文件拷在我们的安装路径下并修改,命令格式如下:
cp EXAMPLE.conf /usr/local/snmp/snmpd.conf //cp样例配置到安装目录下
6、vi /usr/local/snmp/snmpd.conf //编辑配置文件
把里面的NETWORK 改成需要查看snmp信息的主机ip 地址
把COMMUNITY改成你设定的值(自己起个字符串形式的名字)。
然后保存退出
7、/usr/local/sbin/snmpd –c /usr/local/snmp/snmpd.conf & //启动snmp
8、netstat -an  //查看snmp是否启动
9、在脚本里配置snmp,使其在开机时自启动snmpd服务。(也可以不写在脚本里,每次系统启动后执行一下第7步就行了)。在脚本里的编写:
vi /etc/rc.local
添加 usr/local/sbin/snmpd –c /usr/local/snmp/snmpd.conf &
10、关闭snmp服务
ps aux |grep snmp |grep -v grep |awk '{print $2}' |xargs kill
11出错处理机制
也许在执行第四不步make后,过了一会儿程序退出,并提示一下错误:
Grep /usr/lib/libbeecrypt.la: No such file or directory
/bin/sed: can't read /usr/lib/libbeecrypt.la: No such file or directory
libtool: link: `/usr/lib/libbeecrypt.la' is not a valid libtool archive
make[1]: *** [libnetsnmpmibs.la] Error 1
make[1]:Leavingdirectory /email/share/ceno_soft/net-snmp-5.4.1/agent'
make: *** [subdirs] Error 1
解决方法
说明缺少libbeecrypt.la ,libbeecrypt.so等共享库
如果确认系统中有libbeecrypt.la,也许他安装在/usr/local下面,可尝试:
ln -s /usr/local/lib/libbeecrypt.la /usr/lib/libbeecrypt.la
如果/usr/local下面没有,那么你必须安装beecrypt
下载路径
http://nchc.dl.sourceforge.net/s ... ecrypt-4.1.2.tar.gz
http://mylinux.5d6d.com/userdirs/c/f/mylinux/attachments/month_1004/beecrypt-4.1.2.tar.gz
解压并安装到/usr目录下:
tar -zxvf beecrypt-4.1.2.tar.gz
./configure -prefix=/usr
#默认是安装在/usr/local,我们需要安装在/usr目录下。如果没有加这个参数需要做连接
ln -s /usr/local/lib/libbeecrypt.la /usr/lib/libbeecrypt.la
编译并安装beecrypt库,先执行make编译源码包文件编译成功后执行安装命令make install,其命令如下:
#make
#make install
好,beecrypt安装完成后,我们继续NET-SNMP的编译,执行一下make 命令。
当我们继续make的时候,第一个错消逝了,但不幸的是出现了一个新的错误,错误提示如下:rpath -Wl,/usr/local/lib
/usr/bin/ld: cannot find –lelf
collect2: ld returned 1 exit status
make[1]: *** [snmpd] Error 1 make[1]: Leaving directory `/local/akazam/cacti/bak/net-snmp-5.4.2/agent'
make: *** [subdirs] Error 1
ke[1]: Leaving directory `/local/akazam/cacti/bak/net-snmp-5.4.2/agent
make: *** [subdirs] Error 1
解决方法
执行命令: ln -s /usr/lib/libelf.so.1  /usr/lib/libelf.so
现在估计该装的软件包都已经装上了,链接库也差不多了吧,我们现在可以大胆的回到net-snmp-5.4.2.1目录下,继续从第4步往下执行,这样就一路畅通了。

【转帖】2010年互联网发展盘点

2010年的互联网行业发生了不小变化,整个行业依然保持高速发展的势态,中国互联网界各巨头都已经在各自的领域占据了强势位置,同时又不断向邻近领域扩张。巨头之间的竞争进入白热化,各大公司在互联网行业的热点领域激烈交火,本期月光博客推出2010年终专稿,为大家盘点2010年IT科技互联网领域最引人注目的几大热点。  微博 - 关键字:社交网络,个人媒体,SNS
  如果说2008年是中国SNS网络兴起的元年,那么2010可以称之为中国微博元年。
  2006年Twitter带来的新兴的微博概念,2007年建立的饭否在中国市场形成一个不错的发展高潮,然而到了2009年7月,饭否等一大批微博网站因为政策问题而相继停止运营,微博在中国陷入一个低谷,直到2009年8月新浪启动微博测试,当时没有人知道新浪微博的未来发展会是什么样子。


  新浪微博采取了新浪博客推广的成功经验,以“名人”为突破点,逐步打造人气,经过长达一年的不懈努力,终于大获成功,在2010年在全国范围掀起了一场微博浪潮,截至2010年10月底,新浪微博用户数已高达5000万。
  新浪微博的成功引起各大门户网站对于微博产品的跟进,2010年搜狐、腾讯、网易、百度、天涯相继推出微博产品,微博成为各大网站的标配产品。微博的概念在2010年得到了空前的普及。
  根据百度指数和谷歌网站趋势显示,在2010年初,SNS的代表开心网面对新浪微博还具有明显的优势,然而随着时间的推移,开心网的用户关注度下降非常快,而新浪微博则呈现飞跃式地大幅上升,到了2010年11月份,新浪微博的用户关注度已经超过了开心网,并且逐渐和开心网拉大距离,开心网的下降颓势依旧没有停止的趋势,总体看来,SNS大势已去,微博方兴未艾。


百度指数对比新浪微博和开心网



谷歌网站趋势对比新浪微博和开心网


  Android -关键字:移动互联网,开放平台
  2010年,Android系统成为最为火热的手机操作系统之一,HTC、三星、摩托罗拉等各大厂商都纷纷投身到Android阵营中来,基于该平台的手机风靡市场。Android之所以能够取得如此惊艳的成绩,除了系统不断向更好的方向发展外,更多的还得益于它的免费且开源,这为Android赢得了大大小小的手机厂商和运营商的支持。


热门Android手机:三星i9000


  Android最早于2008年10月22日随着谷歌G1正式与用户见面,截至2008年底,Android的全球市场份额仅为0.5%,到了2009年,Android也仅仅发展成为第六大智能平台。然而到2010年,在众多手机厂商的支持下,Android的潜力完全被激发。先是于第二季度增长了851%之后,成为了美国第一大智能手机平台;其次在第三季度取代了黑莓平台,继而成为全球第二大智能操作系统;同样是在第三季度,Android还在亚洲击败了一直固守智能手机第一位的老牌Symbian,在欧洲智能手机市场晋升为第三大智能平台,Android在2010年的发展势头已经大大超过了所有人的预期,呈现“井喷”之势,一些研究机构开始预测,明年Android在智能手机平台争霸战中就会成为全球第一。Android的发展后劲十足,充满了潜力。
  iPad - 关键字:开放平台,电子书,应用商店,平板
  2010年,苹果的新产品“iPad”出尽了风头,据Google发布的2010年度全球热门搜索关键字排行榜显示,“iPad”成为第二大最热门的搜索关键字。iPad进入市场仅仅6个月的时间,销量已经超过700万部,而且iPad正在以超过过去十年间任何产品的速度改变着电脑产业。


苹果iPad


  iPad改变了人们对技术的观念,iPad的推出为新一代的电子设备铺平了道路,iPad这种侧重于网络和移动应用的娱乐终端,触摸屏的交互方式,也逐渐被消费者接受并采用。尽管iPad的主要应用还是电子阅读、上网、游戏、视频播放等娱乐应用,但iPad已经改变个人电脑的市场格局,各个大牌电脑厂商纷纷投入到平板电脑的争夺战中,推出基于Android的平板终端,可以预见,明年的平板市场将面临异常激烈的战争。
  iPhone4 -关键字:移动互联网,应用商店
  新一代苹果iPhone在2010年的登场万众瞩目,虽然有“信号门事件”以及谷歌Android的威胁,但iPhone4依然受到了媒体和大众的青睐,成为人们追捧的对象,更在推出前3天就预售170万部。而在中国,支持WiFi功能的iPhone4也得以在销售,更引发了人们疯狂抢购,导致iPhone4“一机难求”,目前苹果在国内的旗舰店以及网店均长期显示iPhone4缺货,其热门程度可见一斑。


苹果iPhone4


  iPhone做为全球最畅销的智能手机之一,其成功的一大关键就是“应用商店(App Store)”,苹果公司依靠iPhone的应用商店,不仅极大增加了手机的功能,而且也为苹果公司轻而易举地带来可观收入,因这些商店中的应用程序多数由第三方开发,苹果公司还可以与它们进行利润分成,成为一种新的商业赢利模式,使得苹果iPhone与各个手机软件供应商相互发展,实现共赢。
  Dropbox - 关键字:云计算,云存储
  云存储是在云计算概念上延伸和发展出来的一个新的概念,当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统。
  从某种意义上讲,大名鼎鼎的Gmail就是一个邮件云存储的典型案例,有了Gmail之后,用户不必将邮件存储在本地,而是放在海量的Gmail服务器上,随时随刻可以上网查看邮件。
  然而,Gmail仅仅用于邮件存储,做为通用型的文件存储服务,Dropbox无疑是最好用的文件同步工具之一。


Dropbox


  Dropbox提供的初始免费空间是2GB,可以通过邀请增大到10GB,可以实现多台电脑上文件共享和同步文件。
  Dropbox作为存储服务,主要专注于同步和共享,紧紧跟随用户的需求,将用户的使用体验做到近乎完美,文件同步速度稳定且快速,产品几乎无懈可击。
  自2010年5月份之后,Dropbox无法从中国访问,短时间内国内涌现出大量同类的复制产品,包括“金山快盘”、华为的“数据银行”、“新浪微盘”等等,加上国外早就有的SugarSync、Windows Live Mesh等服务,中国云存储服务市场空前活跃。
  未来趋势和发展
  从2010年的这些行业热点产品,大致可以看出未来整个行业的发展动向。
  移动互联网:2010年依然是中国移动互联网的概念年,但随着Android、iPhone等智能手机的普及,移动互联网在未来将出现一个突破点。目前移动互联网的几个主要的发展点是:以Foursquare为例的LBS位置和签到服务,以Instagram为例的手机社会化照片分享服务,以Pandora为例的手机社会化音乐服务,以Kik、WhatsApp为例的社交短信服务,以Viber为例的网络电话服务等等。
  电子商务:未来电子商务的发展将走向社会化、移动化、本地化等方向发展,在社会化电子商务中,使用类似豆瓣的机制来猜测用户的喜好,给用户推荐最适合其口味的商品,使用团购网的方式来提供简单易用而高黏度的本地化服务,使用移动手机来准确定位用户周围的商家和优惠信息等等,最终向社会化电子商务形态发展。
  应用商店和开放平台:通过开放平台让第三方开发者得以将其服务运行在统一的平台,通过开放平台自身服务和第三方应用的互利互惠,提高用户对平台网站的粘性和使用程度,进而提高获利,同时,通过利益分摊,达到平台自身和第三方应用循环刺激而产生的滚雪球式的增长。苹果公司“终端+应用”的模式让App Store大获成功,让各方都争先恐后地建立起自己的应用商店,其中谷歌的Android应用商店也获得不错的成绩,中国各个电信运营商也纷纷沿袭了苹果公司App Store的分成模式,打造属于自己的应用商店。
  结语
  2010年的科技发展令人眼花缭乱,一个个令人炫目的高新产品将人们的梦想变为现实。科技创造着新的生活,并影响着未来的发展,而“创新”正是科技发展的活力之源。展望2011年的互联网科技,相信会有一个更令人遐想和惊喜的新面貌。

session和cookie的区别是什么?

1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。   
   
2、session中保存的是对象,cookie中保存的是字符串。   
   
3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的

Linux服务器性能评估与优化

转载:http://www.517sou.net/Article/104.aspx

一、影响Linux服务器性能的因素

1. 操作系统级

&Oslash;       CPU

&Oslash;       内存

&Oslash;       磁盘I/O带宽

&Oslash;       网络I/O带宽

2.        程序应用级

二、系统性能评估标准

其中:

       %user:表示CPU处在用户模式下的时间百分比。

       %sys:表示CPU处在系统模式下的时间百分比。

       %iowait:表示CPU等待输入输出完成时间的百分比。

       swap in:即si,表示虚拟内存的页导入,即从SWAP DISK交换到RAM

       swap out:即so,表示虚拟内存的页导出,即从RAM交换到SWAP DISK。



三、系统性能分析工具

  

1.常用系统命令

Vmstat、sar、iostat、netstat、free、ps、top等

  

2.常用组合方式

•           用vmstat、sar、iostat检测是否是CPU瓶颈

•           用free、vmstat检测是否是内存瓶颈

•           用iostat检测是否是磁盘I/O瓶颈

•           用netstat检测是否是网络带宽瓶颈

  

四、Linux性能评估与优化



1. 系统整体性能评估(uptime命令)



[[email protected] ~]# uptime

16:38:00 up 118 days,  3:01,  5 users,  load average: 1.22, 1.02, 0.91

这里需要注意的是:load average这个输出值,这三个值的大小一般不能大于系统CPU的个数,例如,本输出中系统有8个CPU,如果load average的三个值长期大于8时,说明CPU很繁忙,负载很高,可能会影响系统性能,但是偶尔大于8时,倒不用担心,一般不会影响系统性能。相反,如果load average的输出值小于CPU的个数,则表示CPU还有空闲的时间片,比如本例中的输出,CPU是非常空闲的。



2. CPU性能评估



(1)利用vmstat命令监控系统CPU

   该命令可以显示关于系统各种资源之间相关性能的简要信息,这里我们主要用它来看CPU一个负载情况。

   下面是vmstat命令在某个系统的输出结果:

  

[[email protected] ~]# vmstat 2 3

procs -----------memory----------  ---swap--  -----io---- --system--  -----cpu------

r  b   swpd   free      buff  cache   si   so    bi    bo       in     cs     us sy  id   wa st

0  0    0    162240   8304  67032   0    0    13    21   1007   23     0  1   98   0   0

0  0    0    162240   8304  67032   0    0     1     0     1010   20     0  1   100 0   0

0  0    0    162240   8304  67032   0    0     1     1     1009   18     0  1    99  0   0

l        Procs

     r列表示运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU。

     b列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。

l        Cpu

    us列显示了用户进程消耗的CPU 时间百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法。

     sy列显示了内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多。

    根据经验,us+sy的参考值为80%,如果us+sy大于 80%说明可能存在CPU资源不足。



(2)利用sar命令监控系统CPU



sar功能很强大,可以对系统的每个方面进行单独的统计,但是使用sar命令会增加系统开销,不过这些开销是可以评估的,对系统的统计结果不会有很大影响。

下面是sar命令对某个系统的CPU统计输出:

[[email protected] ~]# sar -u 3 5

Linux 2.6.9-42.ELsmp (webserver)        11/28/2008      _i686_  (8 CPU)

11:41:24 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle

11:41:27 AM     all      0.88      0.00      0.29      0.00      0.00     98.83

11:41:30 AM     all      0.13      0.00      0.17      0.21      0.00     99.50

11:41:33 AM     all      0.04      0.00      0.04      0.00      0.00     99.92

11:41:36 AM     all      90.08     0.00      0.13      0.16      0.00     9.63

11:41:39 AM     all      0.38      0.00      0.17      0.04      0.00     99.41

Average:        all      0.34      0.00      0.16      0.05      0.00     99.45

                           

对上面每项的输出解释如下:

l        %user列显示了用户进程消耗的CPU 时间百分比。

l        %nice列显示了运行正常进程所消耗的CPU 时间百分比。

l        %system列显示了系统进程消耗的CPU时间百分比。

l        %iowait列显示了IO等待所占用的CPU时间百分比

l        %steal列显示了在内存相对紧张的环境下pagein强制对不同的页面进行的steal操作 。

l        %idle列显示了CPU处在空闲状态的时间百分比。



问题

1.你是否遇到过系统CPU整体利用率不高,而应用缓慢的现象?

       在一个多CPU的系统中,如果程序使用了单线程,会出现这么一个现象,CPU的整体使用率不高,但是系统应用却响应缓慢,这可能是由于程序使用单线程的原因,单线程只使用一个CPU,导致这个CPU占用率为100%,无法处理其它请求,而其它的CPU却闲置,这就导致了整体CPU使用率不高,而应用缓慢现象的发生。



3. 内存性能评估

(1)利用free指令监控内存

free是监控linux内存使用状况最常用的指令,看下面的一个输出:

[[email protected] ~]# free  -m

                total         used       free     shared    buffers     cached

Mem:       8111       7185        926          0        243           6299

-/+ buffers/cache:     643       7468

Swap:       8189          0         8189

     一般有这样一个经验公式:应用程序可用内存/系统物理内存>70%时,表示系统内存资源非常充足,不影响系统性能,应用程序可用内存/系统物理内存<20%时,表示系统内存资源紧缺,需要增加系统内存,20%<应用程序可用内存/系统物理内存<70%时,表示系统内存资源基本能满足应用需求,暂时不影响系统性能。

3.内存性能评估



(1)利用free指令监控内存

free是监控linux内存使用状况最常用的指令,看下面的一个输出:

[[email protected] ~]# free  -m

                total         used       free     shared    buffers     cached

Mem:       8111       7185        926          0        243           6299

-/+ buffers/cache:     643       7468

Swap:       8189          0         8189

     一般有这样一个经验公式:应用程序可用内存/系统物理内存>70%时,表示系统内存资源非常充足,不影响系统性能,应用程序可用内存/系统物理内存<20%时,表示系统内存资源紧缺,需要增加系统内存,20%<应用程序可用内存/系统物理内存<70%时,表示系统内存资源基本能满足应用需求,暂时不影响系统性能。

  

(2)利用vmstat命令监控内存

  

[[email protected] ~]# vmstat 2 3

procs -----------memory----------  ---swap--  -----io---- --system--  -----cpu------

r  b   swpd   free      buff  cache   si   so    bi    bo       in     cs     us sy  id  wa st

0  0    0    162240   8304  67032   0    0    13    21   1007   23     0  1  98   0  0

0  0    0    162240   8304  67032   0    0     1     0     1010   20     0  1  100 0  0

0  0    0    162240   8304  67032   0    0     1     1     1009   18     0  1  99   0  0

l        memory

         swpd列表示切换到内存交换区的内存数量(以k为单位)。如果swpd的值不为0,或者比较大,只要si、so的值长期为0,这种情况下一般不用担心,不会影响系统性能。

         free列表示当前空闲的物理内存数量(以k为单位)

         buff列表示buffers cache的内存数量,一般对块设备的读写才需要缓冲。

         cache列表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached,如果cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好。

l        swap

si列表示由磁盘调入内存,也就是内存进入内存交换区的数量。

so列表示由内存调入磁盘,也就是内存交换区进入内存的数量。

一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足。需要增加系统内存。



4.磁盘I/O性能评估  

(1)磁盘存储基础

l             熟悉RAID存储方式,可以根据应用的不同,选择不同的RAID方式。

l             尽可能用内存的读写代替直接磁盘I/O,使频繁访问的文件或数据放入内存中进行操作处理,因为内存读写操作比直接磁盘读写的效率要高千倍。

l             将经常进行读写的文件与长期不变的文件独立出来,分别放置到不同的磁盘设备上。

l              对于写操作频繁的数据,可以考虑使用裸设备代替文件系统。

         

       使用裸设备的优点有:

ü           数据可以直接读写,不需要经过操作系统级的缓存,节省了内存资源,避免了内存资源争用。

ü           避免了文件系统级的维护开销,比如文件系统需要维护超级块、I-node等。

ü           避免了操作系统的cache预读功能,减少了I/O请求。

       使用裸设备的缺点是:

ü            数据管理、空间管理不灵活,需要很专业的人来操作。

FastDFS源码包下载

http://fastdfs.googlecode.com/files/FastDFS_v1.22.tar.gz

http://fastdfs.googlecode.com/files/FastDFS_v1.23.tar.gz

http://fastdfs.googlecode.com/files/FastDFS_v1.24.tar.gz

生产环境中的NIS+NFS+AUTOFS服务器的配置


目前有这样一个需求,新来了一个同事,需要给他这200多台服务器的权限,我怎么分配给他呢,不可能登陆到每一台服务器然后给他建个登陆账户吧,这时候我们就需要用到NIS了,来集中管理和认证权限,网络信息服务(NIS)是集中控制几个系统管理数据库的网络用品。NIS简化了UNIX和LINUX桌面客户的管理工作,客户端利用它可以使用中心服务器的管理文件。桌面系统的用户无需建立他们自己的/etc/passwd,他们只简单的使用维护在NIS服务器的文件即可。

1首先确认关闭iptables
# /etc/init.d/iptables stop
# chkconfig iptables off

2安装ypbind包,确认你联网执行下面的命令
# yum install -y ypserv ypbind portmap yp-tools

3修改/etx/sysconfig/network加入以下配置
NISDOMAIN="nis-cmdi.com"

4 修改/etc/yp.conf加入下面的设置
ypserv 192.168.1.212
在配置文件 /etc/hosts 中添加 NIS 服务器的记录
192.168.1.212 nis-cmdi.com
修改/etc/ypserv.conf
把最后一行的注释去掉,也就是说通配所有的主机,加入所有的域,map所有的东西,none是表示没有安全性,这一项其实是个安全选项,可以通过这个控制权限
*                        : *       : *                : none
为了安全,你可以这样写:
127.0.0.0/255.255.255.0   : * : * : none
192.168.1.0/255.255.255.0 : * : * : none
*                         : * : * : deny

5 接下来执行下面的命令
# /etc/init.d/portmap start
# /etc/init.d/yppasswdd start
# /etc/init.d/ypserv start
# chkconfig portmap on
# chkconfig yppasswdd on
# chkconfig ypserv on

6 修改/var/yp/Makefile将
all: passwd group hosts rpc services netid protocols mail
修改为
all: passwd group hosts rpc services netid protocols mail auto.master auto.home

7 接下来添加我们需要的用户
#groupadd system
# useradd -g system -u 601 -d /home/rhome/liyi liyi
# useradd -g system -u 601 -d /home/rhome/lier lier

8 接下来,执行:
# /usr/lib/yp/ypinit -m
按下Ctrl-D和回答Y执行下一步操作
# cd /var/yp
# make
(以上两步为初始化数据库)

9 现在执行
authconfig --update --enablenis
如果这步出现问题,请重新执行上面步骤8

11 如果9顺利通过,现在执行下面的命令,并可以看到用户口令表
# getent passwd

通过NFS共享/home/rhome目录
1 首先禁用SeLinux,修改/etc/sysconfig/selinux
SELINUX=disabled
重启服务器

2 修改/etc/exports加入
/home/rhome  192.168.1.0/24(async,rw,no_root_squash)

3 然后重启NFS
# /etc/init.d/nfs restart

4 现在在本机执行exportfs命令,应该可以看到下面的输出
/home/rhome
如果执行完以上步骤一切正常,那么NIS服务器的NFS就配置好了

客户端的配置
1 在客户端上安装ypbind软件包
# yum install -y ypbind yp-tools

2 执行system-config-authentication.选择Enable NIS然后点Configure按照我们刚才的设置填入NIS 域和NIS服务器的地址然后点OK确定,并退出

3 现在在客户端执行
getent passwd
应该可以输出服务器上的口令表


4 修改/etc/auto.master,注释掉所有以前的配置,加入
/home/rhome auto.home

6 创建/etc/auto.home文件,加入
*  -rw,soft,intr  192.168.1.212:/home/rhome/&

7 现在执行
# ypcat auto.master应该可以看到
auto.home


8 重启ypbind服务
# /etc/init.d/ypbind restart
# chkconfig ypbind on

9重启autofs
# /etc/init.d/autofs restart
# chkconfig autofs on

到此,应该可以用服务器上用户名和密码登录客户端的系统了

possible SYN flooding on port 80 Sending cookies

转自互联网

possible SYN flooding on port 80. Sending cookies 开了syncookie之后经常会看到这个报警信息“possible SYN flooding on port 80. Sending cookies”

首先我们看看sysctl.txt对syncookie选项的注释:

tcp_syncookies - BOOLEAN
Only valid when the kernel was compiled with CONFIG_SYNCOOKIES
Send out syncookies when the syn backlog queue of a socket
overflows. This is to prevent against the common ’syn flood attack’
Default: FALSE

Note, that syncookies is fallback facility.
It MUST NOT be used to help highly loaded servers to stand
against legal connection rate. If you see synflood warnings
in your logs, but investigation shows that they occur
because of overload with legal connections, you should tune
another parameters until this warning disappear.
See: tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.

如果系统资源还没问题的话,应该多数不是受到syn flood,而是并发连接过多。

上面的说明建议我们修改tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.

net.ipv4.tcp_max_syn_backlog = 20480
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.core.netdev_max_backlog = 1000

net.core.netdev_max_backlog = 300000 # number of unprocessed input packets before kernel starts dropping them, default 300

tcp_max_syn_backlog - INTEGER
Maximal number of remembered connection requests, which are
still did not receive an acknowledgment from connecting client.
Default value is 1024 for systems with more than 128Mb of memory,
and 128 for low memory machines. If server suffers of overload,
try to increase this number.

tcp_abort_on_overflow - BOOLEAN
If listening service is too slow to accept new connections,
reset them. Default state is FALSE. It means that if overflow
occurred due to a burst, connection will recover. Enable this
option _only_ if you are really sure that listening daemon
cannot be tuned to accept connections faster. Enabling this
option can harm clients of your server. 这个我们还是别设置了。

最后,设置了net.ipv4.tcp_max_syn_backlog = 819200之后,没有报那个syncookie警告了。