Posts Tagged ‘linux’

linux编译po文件为mo

三月 22nd, 2010

centos

msgfmt --statistics --verbose -o django.mo django.po

Popularity: 3%

用RCS把httpd.conf版本管理起来

一月 17th, 2010

apache或者其他的配置文件经常会修改。每次改了什么有时候会忘掉。或者没有备份。
用RCS 版本控制系统,Revision Control System(很古老的UNIX应用程序)的ci,co来管理,很是方便。简单的就三个命令。
checkout出来httpd.conf
co -l httpd.conf
修改后,看看都修改了什么
rcsdiff httpd.conf
如果确认,并且好用,就checkin
ci -u -wjuhui httpd.conf
目录里会有一个 httpd.conf,v 文件,是文本文件,可以打开看看。

感谢asong。

Popularity: 3%

freebsd linux如何更换默认的shell

一月 13th, 2010

linux等的shell很多,一个人不太可能全部都熟悉。我用bash比较多。有个新的环境是csh。没有ctrl+r的功能,不爽。想改成bash。
安装bash的方法不谈。
查看一下当前的shell

[phpbird@host3 ~]$ echo $SHELL
/usr/local/bin/bash

当然,这是修改后的。
修改缺省的shell可以修改 /etc/passwd
这个文件是用:分割的多行文件,找到需要修改的用户。把最后一行的shell路径替换掉就可以。当然如果不让登录,就修改成一个不存在的shell。
如果改错了,就会麻烦点了。

还有一个是用命令来
chsh
很优雅的方法
chsh -s /path/to/shell {user-name}
我这里就是
chsh -s /usr/local/bin/bash juhui
不是root用户,需要输入密码。

Popularity: 3%

apache目录密码保护错误

一月 12th, 2010

apache的.htaccess有个可以保护目录的功能。当用户访问这个目录里资源的时候,会弹出对话框,让输入用户名和口令。在设置的时候有一些关必要条件。比如启用.htaccess文件等。
这2天在freebsd里面想这么做一次,但是遇到了问题,一直报错
configuration error: couldn’t check user. No user file?
后来经过调整,还有
configuration error: couldn’t check access. No groups file?

Invalid command ‘AuthUserFile’, perhaps misspelled or defined by a module not included in the server configuration
等错误信息。

后来经过n多个小时。。n>3,最后准备投降的时候,看到httpd.conf里面有一些注释掉名字里面有auth字样的module。一狠心,全去掉注释,好了!
又经过一番测试。
需要启用下面的三个module

  1. LoadModule authn_file_module libexec/apache22/mod_authn_file.so
  2. LoadModule authz_user_module libexec/apache22/mod_authz_user.so
  3. LoadModule auth_basic_module libexec/apache22/mod_auth_basic.so

当然我用的是
AuthType Basic
.htaccess的内容如下

  1. AuthType Basic
  2. AuthName "admin"
  3. AuthUserFile /usr/local/etc/apache22/.htpasswd
  4. Require user admin

Popularity: 3%

find grep perl配合查找替换内容

一月 5th, 2010

有时候需要对一个目录或者一批文件进行内容的替换。
可以用find配合sed或者perl来完成
查找当前目录下,把

  1. </title>

替换成

  1. </title><meta http-equiv="Content-Type" content="text\/html; charset=utf-8" />
  1. find ./ -type f -exec sed -i "s/<\/title>/<\/title><meta http-equiv=\"Content-Type\" content=\"text\/html; charset=utf-8\" \/>/g" {} \;

上边是在linux,好像centos也可以,但是FreeBSD上不行,懒得查语法了。搞了个find+perl的版本
把abc换成def

  1. find ./ -type f | xargs perl -pi -e "s/abc/def/g"

FreeBSD不行,可能是shell不对。切换到bash,没报错了

Popularity: 4%

linux服务器上端口映射

九月 20th, 2008

不一定最好+正确,但是可用
1,清空原有规则,不是必须的。

#!/bin/sh
#accept-all policy
IPT=’/sbin/iptables’
$IPT -t nat -F
$IPT -t nat -X
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -F
$IPT -t mangle -X
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P INPUT ACCEPT
$IPT -t mangle -P FORWARD ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
$IPT -t mangle -P POSTROUTING ACCEPT
$IPT -F
$IPT -X
$IPT -P FORWARD ACCEPT
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -t raw -F
$IPT -t raw -X
$IPT -t raw -P PREROUTING ACCEPT
$IPT -t raw -P OUTPUT ACCEPT

开始设置

/sbin/iptables -A INPUT -i eth0 -j ACCEPT
echo “1″ > /proc/sys/net/ipv4/ip_forward
#服务器公网ip
export AO=”6.1.1.3″
#服务器内网ip
export AI=”172.16.96.123″
#目标机器内网ip
export BI=”172.16.97.234″
#公网的端口
export PO=”7704″
#目标端口
export PI=”3389″

export AII=”eth1″

iptables -t nat -A PREROUTING -d $AO -p tcp –dport $PO -j DNAT –to-destination $BI:$PI
iptables -t nat -A POSTROUTING -d $BI -p tcp –dport $PI -j SNAT –to $AI
iptables -A FORWARD -o $AII -d $BI -p tcp –dport $PI -j ACCEPT
iptables -A FORWARD -i $AII -s $BI -p tcp –sport $PI -j ACCEPT

Popularity: 24%

linux查找特定文件里面包含特定字符的文件

五月 24th, 2008

find ./ -name ‘*.java’ -exec grep -i “ABCD” {} \; -print

在当前路径不区分大小写查找所有*.java的文件里面含有”ABCD”的内容行,并且print出来文件的路径。

Popularity: 30%

按文件扩展名grep字符串

二月 3rd, 2008

grep -r –include=*.php “customers_wb_list” ./

Popularity: 20%

清理svn的垃圾文件.svn文件夹

九月 6th, 2007

有时候把svn的代码传到服务器,会不小心传上svn的系统文件,这些文件都是用于版本控制的,在生产环境,总有点不爽。在linux下可以用一个命令删除,命令如下:
find . -name .svn | xargs rm -rf

上述命令要在代码所在目录运行哦。

svn的版本控制,也会有类似问题,方法类似,换一下名字,如下:

find . -name .cvs | xargs rm -rf

Popularity: 22%

在linux下安装activepython2.5 setuptools ClientCookie

六月 1st, 2007

activepython

http://www.activestate.com/products/activepython/

是ActiveState Software的一个python的分发包,带了一些python的扩展.
setuptools

http://cheeseshop.python.org/pypi/setuptools

是一个python的包,它可以简化python包的下载,build,安装升级和卸载
ClientCookie

http://wwwsearch.sourceforge.net/ClientCookie/

是一个python对cookie功能的扩展,从HTTP::Cookies而来。作者说以后不会再发布单独的模块,已经集成到了mechanize里面。

下载上述软件
wget http://downloads.activestate.com/ActivePython/linux/2.5/ActivePython-2.5.1.1-linux-x86.tar.gz
wget http://wwwsearch.sourceforge.net/ClientCookie/src/ClientCookie-1.3.0.tar.gz
wget http://cheeseshop.python.org/packages/2.5/s/setuptools/setuptools-0.6c6-py2.5.egg

先安装ActivePython
tar zxvf ActivePython-2.5.1.1-linux-x86.tar.gz
cd ActivePython-2.5.1.1-linux-x86
./install.sh
输入安装的目录,我输入了/usr/local/python25/
装好后看一下

[jym@jym jym]$ /usr/local/python25/bin/python
ActivePython 2.5.1.1 (ActiveState Software Inc.) based on
Python 2.5.1 (r251:54863, May  1 2007, 17:48:28)
[GCC 2.95.3 20010315 (SuSE)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
%3E%3E%3E%20

本来应该直接安装ClientCookie的,安装过程中要使用setuptools,它应该自动下载,安装的,但是由于ClientCookie用的url不对,用的是

http://cheeseshop.python.org/packages/2.5/s/setuptools/setuptools-0.6a11-py2.5.egg

所以不能自动下载,只好手工下载,安装
安装
setuptools
在setuptools-0.6c6-py2.5.egg所在的目录运行

ln -s  /usr/local/python25/bin/python2.5 python2.5
PATH=.:$PATH 
sh setuptools-0.6c6-py2.5.egg
rm python2.5

安装ClientCookie

tar zxvf ClientCookie-1.3.0.tar.gz
cd ClientCookie-1.3.0
/usr/local/python25/bin/python setup.py build
/usr/local/python25/bin/python setup.py install

至此,activepython2.5+setuptools+ClientCookie在linux的安装已经完成,ClientCookie的简单使用等俺下一篇再说:D
BTW:祝大家6.1快乐!

Popularity: 21%