September 2, 2011
linux下ssh使用rsa认证教程[原创]
"下面我们来对linux(centos)平台如何使用ssh的rsa认证功能来实现安全登录服务器的教程.为了安全我们一般不直接使用root这个用户,而使用其它用户来代替.如果需要root权限的时候,直接在服务器上进行su命令进行用户切换就可以了.\n一.配置/etc/ssh/ssh_config文件\nServerKeyBits 1024 //# 注释取消,将768改为1024 PermitRootLogin no //# 注释取消,将yes改为no 禁止root登录 RSAAuthentication yes //# 启用 RSA 认证 PubkeyAuthentication yes //# 启用公钥认证 AuthorizedKeysFile //# .ssh/authorized_keys # 验证公钥的存放路径 PermitEmptyPasswords no //# 取消注释,禁止空密码登录 PasswordAuthentication no //# 取消注释,禁止使用密码方式登录,有密钥谁还用密码啊 注意一下,在centos5.0之前SSH服务需要指明版本,#Protocol 2,1 …"
September 2, 2011
Nginx中的gzip模块简介
"gzip 语法: gzip on|off\n默认值: gzip off\n作用域: http, server, location, if (x) location\n开启或者关闭gzip模块\ngzip_buffers 语法: gzip_buffers number size\n默认值: gzip_buffers 4 4k/8k\n作用域: http, server, location 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。例如 4 4k 代表以4k为单位,按照原始数据大小以4k为单位的4倍申请内存。 4 8k 代表以8k为单位,按照原始数据大小以8k为单位的4倍申请内存。\n如果没有设置,默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。\ngzip_comp_level 语法: gzip_comp_level 1..9\n默认值: gzip_comp_level 1\n作用域: http, server, location\ngzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。\ngzip_min_length 语法: …"
September 2, 2011
Facebook是怎么做MySQL备份的?
"Facebook的用户每天创造大量的数据,为了确保数据可靠的存储,我们每天进行数据备份.我们通过将原来的逻辑备份改成定制化的物理备份,显著地提升了备份的速度(不增加体积的情况下).\n从mysqldump到Xtrabackup\n我们使用mysqldump来进行每日的数据库备份,mysqldump对数据进行逻辑备份,就像应用访问数据库那样,mysqldump以SQL语句的方式从数据库中读取一张张表,将表结构和数据转保存到文本文件.mysqldump最大的问题是速度太慢(对于我们的一些大的数据库,通常要花24小时,甚至更久),并且以SQL语句的方式读取数据可能造成磁盘的随机读,这就会造成主机的load增大,影响性能.对于时间太长,我们可以跑多个实例来并发的做备份,这能缩短备份的时间,但是会造成更多的load,更影响主机的性能.\n另外一个可行的备份方式是进行物理备份(我们称之为二进制备份,binary backup),通过操作系统层面,读取数据库磁盘文件,而非通过SQL语句.这样的话在备份的过程中,数据不能像SQL读取的时候保持事务上一致的.只有当备份的数据文件在数据库里复原了,他们才又一致 …"
September 1, 2011
Linux系统监控工具之vmstat详解
"vmstat是一个十分有用的Linux系统监控工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。\n一、前言\n很显然从名字中我们就可以知道vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,但是怎样通过vmstat来发现系统中的瓶颈呢?在回答这个问题前,还是让我们回顾一下Linux中关于虚拟内存相关内容。\n二、虚拟内存运行原理\n在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需要的进程使用。\n在Linux内存管理中,主要是通过“调页Paging”和“交换Swapping”来完成上述的内存调度。调页算法是将内存中最近不常使用的页面换到磁盘上,把活动页面保留在内存中供进程使用。交换技术是将整个进程,而不是部分页面,全部交换到磁盘上。\n分页(Page)写入磁盘的过程被称作Page-Out,分页(Page)从磁盘重新回到 …"
September 1, 2011
PHP-FPM高负载的解决办法
"这里只是介绍了php-fpm的优化方法的,但一般情况下和nginx组合使用的时候,单独优化其中一项的话,作用不是特别的大,同时还需要对nginx进行优化.nginx的做法方法参考:.上面的优化前和优化后的图,看得出前后差距还是特别的大的.\n导致nginx 502 bad gateway的PHP-CGI(FASTCGI)\nNGINX频爆502 BAD GATEWAY的错误,看了网上的教程,仍没有彻底解决。\n目前我总结的解决502 BAD GATEWAY的方式有:\n1.视服务器的性能,在php-fmp.conf里增加max_children的值,我目前用的15.\n2.用reload参数定时重载php-fpm。这个主要原因是php脚本执行时间过长造成的,重载php-fpm能杜绝这个问题。如何彻底解决php-cgi脚本占用大量内存从而导致502错误的产生还值得进一步探讨,目前该做法不失为一种好办法。\n具体的做法是,用crontab让php-fpm平滑重启,从而不影响PHP脚本的运行。\n*/10 * * * * /usr/local/php/sbin/php-fpm reload …"
September 1, 2011
Linux主分区,扩展分区,逻辑分区的联系和区别
"言归正传,在安装 CentOS5.3 的过程中,会遇到磁盘分区的界面,下拉式菜单中有 4 个选项,这时你不要选择默认,打开下拉式菜单,选择最后一项(翻译成中文意思是:建立自定义的分割模式)。然后选择右下角的确认,在下一个对话界面里依序建立 / 、 /home 及 swap ,完成后如图。确认设置后的分割区。\n为强调重点,把图中重要内容,再写一遍。\n/ 根目录 ext3 hda1\n/home 用户目录 ext3 hda2\nSwap 交换分区 swap hda3\n对 hda1 的解释:\nhd : IDE 硬盘。如果是 SCSI 硬盘,则为 sd ,这个只能记住,没有更好的办法。\na: : 第一块硬盘。如果是第二块硬盘,则为 b ,依此类推 c,d……\n1 : 主分区。其中 1 , 2 , 3 , 4 都是主分区,从第 5 开始为逻辑分区,最大到 16\n磁盘容量与主分区、扩展分区、逻辑分区的关系:\n硬盘的容量=主分区的容量+扩展分区的容量扩展分区的容量=各个逻辑分区的容量之和\n一块物理硬盘只能有 : 一到四个主分区 ( 但其中只能有一个是活动的主分区 ), 或一到三个主分区 , 和一个扩展分 …"
September 1, 2011
Linux(nginx)下安装awstats日志分析软件
"这里用的是centos的系统,linux上的安装方法基本上都一样的.\n一.下载awstats软件\n从地址可以下载,这里使用的是最新的7.0的版本\n#cd /usr/local #wget http://cdnetworks-kr-1.dl.sourceforge.net/project/awstats/AWStats/7.0/awstats-7.0.zip#unzip awstats-7.0.zip awstats #chmod +x /usr/local/awstats/tools/awstats_configure.pl #chmod +x /usr/local/awstats/wwwroot/cgi-bin/awstats.pl #chmod +x /usr/local/awstats/tools/awstats_buildstaticpages.pl #用来存放swstats的数据文件 #mkdir /var/lib/awstats\n二.创建配置文件\n#cd /usr/local/awstats/tools/ #perl ./awstats_configure.pl\n根据提示信 …"
September 1, 2011
Linux下如何查看 CPU 信息, 包括位数和多核信息
"查看当前操作系统内核信息 # uname -aLinux redcat 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux\n查看当前操作系统发行版信息\n#cat /etc/issue\nUbuntu 9.10 n l查看cpu型号# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c\n2 Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz\n(看到有2个逻辑CPU, 也知道了CPU型号)查看物理cpu颗数\n# cat /proc/cpuinfo | grep physical | uniq -c2 physical id : 0\n(说明实际上是1颗2核的CPU)查看cpu运行模式\ngetconf LONG_BIT32(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)查看cpu是否支持64bit# cat /proc/cpuinfo | grep flags | grep ‘ …"
September 1, 2011
linux 下如何查看和踢除正在登陆的其它用户
"如何在linux下查看当前登录的用户,并且踢掉你认为应该踢掉的用户? 请使用who这个命令来查看当前正在登录的用户\n[root@localhost http]# who root tty1 Apr 9 13:17 http pts/0 Apr 16 15:13 (192.168.8.235) http pts/1 Apr 16 15:13 (192.168.8.235)\n注意:可能有朋友马上要叫出来了:“什么?!有3个用户在登录!我被黑了!”,呵呵,开玩笑了~~上面的消息告诉我们:\ntty是指在任何一个虚拟控制台登录则产生一个tty,比如你插上显示器登录主机,就会增加一个tty.\npts是每一个远程连接都会产生的,比如我现在使用ftp客户端连接到主机上,主机就会产生一个pts,事实上上面的192.168.8.235就是我,那两个http就我的连接。 tty和pts详见:\n要踢出某个用户以及该用户运行的程序(很野蛮),请采用如下方法: 比如:想踢除http这个用户和他的所有开启的程序执行下面命令\npkill -u http\n注意:这个命令实际上很危险,要相当小心的执行!! 说他危险的原因 …"
September 1, 2011
LINUX下判断CPU和系统是32位还是64位
"判断操作系统是32位还是64位的方法:\n输入如下命令:\n$ uname -a\n输出:\nx86_64 GNU/Linux 表示64位内核\ni386/i486/i586/i686 表示32位内核\n判断Linux kernel是32位还是64位的方法:\n输入如下命令:\n$ cat /proc/cpuinfo |grep flags\n输出:\nlm(long mode) 表示64位CPU\nProtoected 表示32位CPU\nReal 表示16位CPU\n==================================================================\n在LINUX下怎样决断你的CPU是32位还是64位?\n打入下面的命令\ngrep flags /proc/cpuinfo\n输出\nflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm nx lm\n如果找到lm, 则说明你 …"