Linux
[原创] log4cxx在Linux下的安装、使用
简单地说,log4cxx就是一个记录日志的C++库(程序运行的时候要保存一些日志到文件,以供将来查看),它是从著名的Java日志库log4j移植而来的,并且它是Apache的一个项目,质量有保证,不用犹豫了,就用它吧!
补一句:Apache声称log4cxx的速度快、灵活性好,但是,速度快是第一位的,灵活性是第二位的("Log4cxx claims to be fast and flexible: speed first, flexibility second."),所以,担心日志记录性能的同学更可以选择log4cxx啦。
但是,这玩意的安装、编译稍微有点麻烦,如果遇到了问题,没耐心的人可能就没兴趣折腾了,我在这里把自己遇到的问题记一下。
系统环境:RHEL 5.3,64位
[原创]安装RHEL 5.3时加载自定义的Raid卡驱动
一台装有Raid卡的服务器要安装RHEL 5.3,而RHEL 5.3并不自带该服务器的Raid卡驱动,于是,在图形化界面的安装过程中,当要选择磁盘空间分配的时候,找不到磁盘。于是可知,应该是RHEL 5.3没有自带这块Raid卡的驱动,所以要在安装过程中加载它。
[原创]后台运行的shell脚本对文件锁的影响
假设shell脚本A中的一段代码设置有文件锁,在此文件锁的后面(外部)以后台运行的方式调用了脚本B(此脚本中也有文件锁,但是与脚本A的锁文件不是同一个文件),并且脚本B执行时间相当之长,那么,在后台运行的脚本B在结束之后,是否会导致脚本A无法启动第二个进程呢?
下面就来做一个简单的试验,以确定上面的问题。
脚本A(parent.sh)内容如下:
#!/bin/sh SHELL_DIR="/root/" LOCKFILE_1=$SHELL_DIR".lock1" { echo "Go into lock1." if ! flock -n 4; then echo "*** Shell is running, quit." exit 1 fi } 4<>$LOCKFILE_1 $SHELL_DIR"child.sh" & # run shell B on background
[原创]Nagios安装、配置、问题记录(1)
本文描述了我在使用Nagios的过程中遇到的一些问题、解决办法以及总结的注意事项。文章很长,请使用Ctrl+F定位到你需要的部分。
Nagios是一套强大的监控报警系统,但是你不花一些时间,是绝对不可能很好地配置它的。除非你只需要监控主机的alive等简单的情况(例如ping),否则请放弃幻想,以极大的耐心去研究它吧。
(1)默认安装情况下,Nagios的主配置文件为:/usr/local/nagios/etc/nagios.cfg
打开这个文件,可以清楚地看到它指定了其他的配置文件:
shell脚本因文件编码问题不能正确执行的问题
遇到一例因shell文件的编码问题导致执行后不能得到正确结果的问题。一般来说脚本中不会带有中文,不过有时候例外,例如你要查找一个文本中的字符串,cat test.txt | grep "汽车" 这样的命令,如果文件编码不对,就可能得不到正确结果。
用shell删除一个文件的前N行
假设你想删除一个文本文件的前N行,并且你不想先将后面要保留的内容先保存到其他临时文件中,那么可以在shell中这样写(此处假设要删除的是 /root/file.txt 的前10行):
用shell将时间字符串与时间戳互转
date -d "2010-10-18 00:00:00" +%s
date -d "2010-10-18" +%s
1287331200
[原创]rsync同步时,只同步指定的文件类型
使用rsync来同步文件时,如果想要只同步指定的文件类型,怎么做?
我的环境:rsync客户端将文件推送到rsync服务器端。搜了一下网络,看了一下rsync help,似乎是要用exclude参数和include参数配合来实现规则,从而达到只同步指定类型文件的效果,但是我试了一下没成功,于是最终采用了一种可以实现的方法:排除其他所有文件类型。虽然比较麻烦,但是能做到就行
[原创] 用shell判断一个字符串是不是全为数字 & 截取字符串的若干示例
(1)判断一个字符串是不是全为数字
#!/bin/sh # 该变量就是要判断的变量 VAR="1234908" RET=`expr match $VAR "[0-9]*$"` if [ ${RET} -gt 0 ]; then echo "It is a Number!" else echo "Not a Number!" fi
另外要注意:用这种方式来判断负数的时候,也认为不是全为数字的,因为负数中带了一个负号,就不是数字。
SHELL下的数字比较及计算
比较:
方法一: if [ ${A} -lt ${B} ]; then …
这是最基本的比较方法,使用lt(小于),gt(大于),le(小于等于),ge(大于等于),优点:还没发现;缺点:只能比较整数,使用lt,gt等不直观
方法二: if ((${A} < ${B})) then …
[原创]在Linux下进行文件“粉碎”/擦除
众所周知Windows下的文件删除之后是有可能恢复的,对重要文件,为了增加恢复的难度,我们可以用文件粉碎工具进行文件粉碎。我最常用的是集成到资源管理器中的Eraser。那么在Linux下有没有类似的软件呢?我在一台只有Ubuntu系统的主机上,安装了一个文件粉碎工具wipe,有些想法,记下来。
安装:apt-get install wipe
wipe有没有GUI我不知道,命令行也不难用: