寻觅生命中的那一片浅草......

每月存档 十二月, 2009

ejabberd安装错误

./configure
报以下错

checking for XML_ParserCreate in -lexpat… no
configure: error: Could not find development files of Expat library

解决:
安装expat-devel
yum -y install expat-devel

comp.unix.shell FAQ 阅读笔记

最近在阅读一个比较经典的关于shell的faq,全文链接在这里http://home.comcast.net/~j.p.h/

作者将comp.unix.shell新闻组上的常见问题总结了一下,做成faq的形式,对学习很有帮助。

不打算全文翻译了,仅把认为比较重要的部分总结一下,做个备案吧

1.UUOC(useless use of cat)

避免 cat file | tr -d ‘xyz’ ,因为这样实际上跑了两个进程cat 和 tr

应该采用输入重定向 tr -d ‘xyz’ <file

2.shebang

脚本第一行是告诉操作系统解释器路径的,如果用解释器显式调用脚本文件,

那么第一行只是注释而已,可有可无。

3.echo 在不同的shell里的解释方式可能不同,要熟悉你的shell是如何做的。

优先采用cat输出变量

cat<<EOF

$a

EOF

4.随机数生成方法

最portable的方法是利用awk内置的srand和rand函数

awk ‘BEGIN {srand();print rand()}’

5.dos和unix文本文件之间转换

dos格式的文本文件,行末尾是
(CR LF)

unix格式的文本文件,行末尾是

所以dos格式文本在unix下显式的时候,尾部会多一个^M

二者转换方式是

dos—unix : sed ’s/^M$//’ dos.txt > unix.txt或者tr -d ‘
‘ <dosfile >unixfile

unix—dos: sed ’s/$/^M/’ unix.txt >dos.txt

另外,也可以用dos2unix unix2dos等现成工具

6.改变term窗口的标题

两种方法

$ echo -en “33]2;XXX07″

$ printf ‘%b’ ‘e]2;XXXa’

7.如何设定用户输入超时

bash里面可以用read的参数-t 设置超时

也可以利用终端属性完成

{

s=$(stty -g)

stty -icanon min 0 time 100

var=$(head -n 1)

stty “$s”

}

8. bash脚本一定要注意空格的使用

$ [ -f xxx ] isn’t the same as

$ [-f xxx ]

9.如何从路径中分离目录和文件

pathname=’/path/to/some/file’

dir=`dirname “$pathname”`

file=`basename “$pathname”`

缺点是,fork出了新进程

可以使用shell内置的字符串处理机制

pathname=/path/to/some/file

file=${pathname##*/}

case $pathname in

*/*) dir=${pathname%/*};;

*) dir=”

esac

10.如何删除特殊字符开头的文件

例如删除 -foo,有三种方法

rm -foo

rm — -foo

rm -i — * (进入交互模式,提示动作)

转载自:http://www.oolec.com/compunixshell-faq-study-note/

在linux下如何判断cpu是双核还是单核

linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。
但是对于双核的cpu,在cpuinfo中会看到两个cpu。
常常会让人误以为是两个单核的cpu。

其实应该通过Physical Processor ID来区分单核和双核。
而Physical Processor ID可以从cpuinfo或者dmesg中找到

例如
root@debian:~:0# dmesg | grep CPU | grep ID
CPU0: Initial APIC ID: 0, Physical Processor ID: 0
CPU1: Initial APIC ID: 1, Physical Processor ID: 0
CPU2: Initial APIC ID: 6, Physical Processor ID: 3
CPU3: Initial APIC ID: 7, Physical Processor ID: 3

可以看到,这台机器有两个双核的CPU,ID分别是0和3

转载自:http://www.oolec.com/detect-cpu-on-linux/

30分钟配置好-Puppet: 强大的中心化配置管理系统

制作:高进波
时间:2009-09-15

介绍:
不管是管理1台,或者是上万台机器,puppet都能轻松搞定。让你的所有配置工作整齐划一。
所谓配置管理系统,就是管理机器里面诸如文件,用户,进程,软件包这些资源。传统的方法要管理1千台相同的机器,可以选择cfengine,或者是for 循环,其实for循环是用的最多的方法。用puppet,可以运行一个服务器端,然后每个客户端通过ssl证书连接服务器,得到本机器的配置列表,然后更 加列表的来完成配置工作。所以如果硬件配置好了,你在一天之内配置好上万台机器是很轻松的事情。前提是大部分机器配置类似。google用puppet管 理了6000多台mac桌面机器。
这个是puppet的官方主页:
http://reductivelabs.com/
个人用户也很有用,可以把你常用的配置记录成puppet格式的配置文件,下次重装系统,只需要运行这个配置就能配置到你指定的状态。

1.环境
puppet server
192.168.1.50 puppet

puppet client
192.168.1.51 pc01

vi /etc/hosts
192.168.1.50 puppet
192.168.1.51 pc01

====================================================
2.puppet服务安装配置
1)安装
apt-get install puppet puppetmaster rdoc

2)配置
mkdir /etc/puppet/manifests/classes/

vi /etc/puppet/manifests/classes/sudo.pp
class sudo {
file { “/etc/sudoers”:
owner => “root”,
group => “root”,
mode => 440,
}
}

vi /etc/puppet/manifests/site.pp

import “classes/*”
node default {
include sudo
}

3)启动服务
/etc/init.d/puppetmasterd stop
puppetmasterd –certname puppet

====================================================
3.client安装配置
1)安装
apt-get install puppet rdoc

2)配置
puppetd –server puppet –waitforcert 60 –test

运行这步时需要到puppet server上添加验证
查看证书
puppetca –list –all

添加客户机签名
puppetca –sign pc01

3)测试
修改/etc/sudoers文件权限为777
chmow 777 /etc/sudoers
ls -ltr /etc/sudoers

自动修改puppet服务器设置的权限
puppetd –server puppet –waitforcert 60 –test
ls -ltr /etc/sudoers

====================================================
注:本文件适合于任何LINUX系统,主要是基于ubuntu 8.04制作

完成!

转载自:http://www.gaojinbo.com/30%E5%88%86%E9%92%9F%E9%85%8D%E7%BD%AE%E5%A5%BD-puppet-%E5%BC%BA%E5%A4%A7%E7%9A%84%E4%B8%AD%E5%BF%83%E5%8C%96%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F.html

Linux下md5加密一串字符

echo -n ‘test’ |openssl dgst -md5

2009年十二月
« 11月   1月 »
 123456
78910111213
14151617181920
21222324252627
28293031