关于 ulimit -SHn 65535 的含义
星期一, 三月 28th, 2011linux下用ulimit设置连接数最大值,默认是1024.
在高负载下要设置为更高,但最高只能为65535.
ulimit只能做临时修改,重启后失效。
可以加入
ulimit -SHn 65535
到/etc/rc.local 每次启动启用。
终极解除 Linux 系统的最大进程数和最大文件打开数限制:
vim /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100
linux下vim函数原型快速定位的方法
星期四, 三月 24th, 2011当然是借用ctags。
cent os 使用下面命令安装ctags
yum install ctags
然后进入到源码目录,执行以下命令:
ctags -R
然后编辑~/.vimrc加入
set tags=/opt/abc/tags
done…
使用方法:
在vim中光标移动在函数上,用 ctrl+] 或者 g] 跳转到函数原型。ctrl+t 返回。
enjoy!
红帽中出现”This system is not registered with RHN”的解决方案
星期日, 三月 6th, 2011原因是你的linux没有在红帽网络上注册,所以无法下载上面的软件包,替代方案可以使用centos。
下面介绍下使用centos 的流程
1.卸载rhel的默认安装的yum包
查看yum包
卸载之
2.下载新的yum包
wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-14.el5.centos.1.noarch.rpm
wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm
并且安装之
注意:yum和yum-fastestmirror相互依赖,所以同时安装即可。
3.下载yum的配置源
下载到 /etc/yum.repos.d/ 目录下面
4.运行yum makecache生成缓存
linux下sed与grep联合完成替换功能
星期六, 十月 16th, 2010通常我们会遇到这样的需求:把文件夹下文件中的某个字符串统一替换为指定字符串。
用vim编辑文件,使用命令::%s/old/new/g 即可完成某个文件,编辑每个文件执行同样动作即可。
当然,若文件数量庞大,这个显然是不够的,那可以使用这个命令:sed -i “s/old/new/g” `grep old -rl ./` 在当前文件夹下首先搜索所有含有old字符串的文件,然后再对每个文件执行sed替换命令。
fms+nginx打造高带宽利用率的流媒体(音频+视频)环境
星期一, 八月 9th, 2010fms自身已经拥有了httpd,用来给客户端访问用,例如通过http的音频播放。众所周知,非专业的httpd自然有不专业之处,例如我遇到的情况就是经常http服务假死,或者在访问量庞大的时候会无缘无故down掉。
于是尝试通过apache进行http服务,停掉fms的httpd。效果还不错,没有假死、donw机,但是带宽利用率就是达不到顶峰,基本停留在80-90%之间。
再次改进,利用nginx进行http服务,停掉fms的httpd,解决了以上问题。带宽利用率几乎接近100%,如图:

具体修改方法:
打开安装目录下的fms.ini和 Adaptor.xml 将SERVER.HTTPD_ENABLED设置为false,ADAPTOR.HOSTPORT = :1935, 80中的80去掉,重启FMS服务,OK了。
fms3.5在cent os5.4下的问题及解决方案:
1.fms录音无法保存
参考附件
2.fms录音在nginx下无法播放
在nginx编译的时候加上
./configure --user=nobody --group=nobody
注意这里nobody是fms安装时的用户和组,统一即可。
linux自动备份mysql并上传到远程ftp脚本
星期五, 七月 9th, 2010生产需要,在cent os 5.4下自动备份mysql数据库并上传到远程ftp,花了点时间,脚本如下:
#auto ftp bakup
#by xhat 2010.06.08
#要备份的数据库
DBName=wwwdbname
#ftp账号信息
ftphost="test.com"
ftpuser=username
ftppass=passwd
#mysql账号信息
DBUser=root
DBPasswd=123456
BackupPath=./
NewFile="$BackupPath"db$(date +%y%m%d).tar.gz
DumpFile="$BackupPath"db$(date +%y%m%d).sql
OldFile="$BackupPath"db$(date +%y%m%d --date='1 days ago').tar.gz
#LogFile="$BackupPath"db$(date +%y%m%d --date='1 days ago').txt
echo "---------------------------"
echo $(date +"%y-%m-%d %H:%M:%S")
echo "---------------------------"
#删除
if [ -f $OldFile ]; then
rm -f $OldFile
echo "[$OldFile]Delete Old File Success!"
fi
#新
if [ -f $NewFile ]; then
echo "[$NewFile] 已经存在,不再备份! "
else
/opt/mysql/mysqldump -u$DBUser -p$DBPasswd $DBName > $DumpFile
sleep 5
tar czvf $NewFile $DumpFile
rm $DumpFile -rf
echo "[$NewFile]备份成功"
fi
echo "打开ftp"
ftp -i -in <<!
open $ftphost 21
user $ftpuser $ftppass
cd /
mput *.tar.gz
bye
!
echo "备份完成"
完成上面脚本后,在crontab里面加入每天凌晨定时执行即可。
10 3 * * * /opt/bak/mybak
服务器更换为nginx
星期四, 六月 24th, 2010blog所在服务器更换成nginx,速度应该是快多了。感谢非凡
centos 5.5 错误修复方法:Will not restore a file with more than one hard link (/etc/resolv.conf) No such file or directory
星期四, 六月 10th, 2010CentOS5.5,今天刚遇到的问题总结一下。
症状:服务器ping不通,所有网络连接失效,重启后正常。此现象反复出现,解决办法:
查看日志:
vim /var/log/messages 出现以下情况:
Jun 9 09:00:10 localhost restorecond: Will not restore a file with more than one hard link (/etc/resolv.conf) No such file or directory
分析:hard link没有正常建立,重新建立即可。
解决办法:
1. $ ls -i /etc/resolv.conf #get inode
2. 8292064 /etc/resolv.conf
3. $ sudo find /etc -inum 8292064#find hard link
4. Password:
5. /etc/sysconfig/networking/profiles/default/resolv.conf
6. /etc/resolv.conf
7. $ sudo /usr/sbin/lsof|grep resolv.conf #make sure it is not open
8. $ sudo rm /etc/sysconfig/networking/profiles/default/resolv.conf #delete
9. $ sudo restorecon /etc/resolv.conf
10. $ sudo ln /etc/resolv.conf /etc/sysconfig/networking/profiles/default/resolv.conf #recreate hard link
linux下自动校准服务器时间
星期一, 十二月 1st, 2008服务器时间一直不准,只是没太注意,积累时间长了,才发现原来服务器时间与北京时间已经错了半个小时了。于是无论如何也要把这个问题搞定,查阅了相关资料,简单而完美解决。
在root下输入:crontab -e,在打开的窗口中输入以内容:
30 7 * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1
意思是每天的7点30分自动与ntp服务器同步,当然ntp服务器很多,可以自由选择。
2010.2.22更新:新发现教育网ntp服务器地址:time.edu.cn
把ssh做成sock代理的详细方法
星期六, 十一月 8th, 2008近几天为这事困扰了一阵子,终于找到资料,完美解决了这个问题。
假设你的ssh账号为username,密码为password,地址是server。
1.客户机为linux,很好办,打开终端:
#ssh -D 1080 Username@Server
然后在浏览器或相关软件配置socks5,地址为127.0.0.1,端口为1080即可,当然这里端口可以是随意没有被占用的。
2.客户机为windows,需要辅助的putty和plink。打开命令行到两个软件的目录:
plink -N Username@Server -pw Password -D 127.0.0.1:1080
请将Username Server Password三处改为您自己登陆服务器的用户名、服务器地址和密码。并保持该cmd窗口处于打开状态。然后配置浏览器或其他应用的socks5即可,地址127.0.0.1,端口1080。putty和plink下载地址
干什么用就不细说了,上网必备的瑞士军刀(良民一,需要穿墙的内容俺是不看的。体谅go.v)。
