Archive for the Category » Linux / BSD «

昨晚服务器意外出现Directory not empty故障

昨晚在编写一个用于自动抓取一些域名到期信息并进行过滤整理的shell脚本时,不甚操作不当,导致出现服务器上一个目录无法删除,使用rm -rf也无效,目录中原有文件和新创建的文件均无法查看,使用ls -al也无任何显示,有点“黑洞”的感觉,明明里面有东西,却无法显示,新创建文件也看不到,想删除目录还无法删除,以前没有遇到过这样的故障,于是尝试若干办法还是未能收到效果,反倒搞得该目录的上级目录出现混乱,部分其他目录也出现了类似情况,大呼不妙,迫不得已进行远程重启,无奈重启失败,今天一早到了机房,从错误日志上一看,明白了故障所在。
more »

SSH权威指南

注意:由于openssh是开源软件,各版间的配置方法和设置参数可能会不同,所以设置时要以最新版的手册为准,不要硬套本文的设置。

第一章 SSH简介
ssh(secure shell)是一种通用,功能强大的基于软件的网络安全解决方案,计算机每次向网络发送数据时,SSH都会自动对其进行加密。数据到达目的地时,SSH自动对加密数据进行解密。整个过程都是透明的。它使用了现代的安全加密算法,足以胜任大型公司的任务繁重的应用程序的要求。
more »

Tcpdump 的详细用法(收集)

第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.

第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。
more »

收集整理的awk用法小结

提示:其实 man awk 提供的文档也很详细,不过整理加上中文估计还是可以对初学者有一定帮助的。

awk 用法:awk ‘ pattern {action} ‘

变量名 含义
ARGC 命令行变元个数
ARGV 命令行变元数组
FILENAME 当前输入文件名
FNR 当前文件中的记录号
FS 输入域分隔符,默认为一个空格
RS 输入记录分隔符
NF 当前记录里域个数
NR 到目前为止记录数
OFS 输出域分隔符
ORS 输出记录分隔符
more »

Linux/FreeBSD下用C语言开发PHP的so扩展模块例解

引用本文请注明出处:Just Do IT (http://www.toplee.com) < Michael Lee @ toplee.com >

我从97年接触互联网的web开发,至今已经过去9年了,从最初的frontpage做html页面到学会ASP+access+IIS开始,就跟web开发干上了,后来又依次使用了ASP+SQLServer+IIS、JSP+Oracle+Jrun(Resin/Tomcat)、PHP+Syabse(MySQL)+Apache … 最后我定格到了 PHP+MySQL+Apache+Linux(BSD) 的架构上,也就是大家常说的LAMP架构,这说来有很多理由,网上也有很多人讨论各种架构和开发语言之间的优劣,我就不多说了,简单说一下我喜欢LAMP的几个主要原因:
more »

djbdns 真是个好东西,困扰好久的sendmail发信速度慢的问题解决!

引用本文请注明出处:Just Do IT (http://www.toplee.com) < Michael Lee @ toplee.com >

前几天服务器更换了电信的ip和dns之后,速度有了很大提高,系统发信的速度也基本达到了正常可以接受的水平,但是如果要应付大量的邮件列表功能,还是感觉有些吃力,于是考虑进一步提高dns解析速度,因为sendmail响应慢很大程度跟dns反向解析解析有关,在网上查了很多资料都提到受sendmail发信慢的困扰,但是都没有看到好的解决办法。
more »

喜欢FreeBSD的原因很简单,她就像个纯洁的少女!

引用本文请注明出处:Just Do IT (http://www.toplee.com) lee@toplee.com
从98年左右开始接触到Linux,记得是TurboLinux和Redhat的3.0(好像是)版本,那个时候Linux都是英文版的,而且对硬件支持非常差,能够成功安装上就算是非常有成就感的事情了,那时在大学宿舍的床上抱着键盘折腾了一个通宵,进行了若干次重装和分区才最终看到了root登录提示符,刚从习惯了的windows98一下子接触到Linux真感觉什么都是陌生的,面对辛苦装上的Linux不知道能干些啥。好不容易找了本Unix基本命令介绍,一个一个命令跟着练习,逐渐的对Linux有了些最初级的认识。。。
more »

FreeBSD/Linux 下各种查找替换字符串的办法

在Freebsd下我们常常要进行字符串的查找替换,有在vim编辑器里面进行的,也有在shell下进行的,这样的事情常遇到,但是每次都会感到有些概念模糊,尤其对类似awk、sed、grep、find等命令的具体参数使用问题上老是糊涂,下面收集几个常用的方法,实在不能理解就死记算了!

1、在vi中使用的查找替换方法
利用 :s 命令可以实现字符串的替换。具体的用法包括:
:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g 功能同上从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

2、在shell中使用find结合grep进行文件的替换
# find ./ -exec grep str1 ‘{}’ \; -exec sed -i.bak s/str1/str2/g ‘{}’ \;
上面命令可以在当前目录下(包括子目录)查找包含str1的文件,自动替换成str2,并且生成源文件的bak文件

更多方法正在不断收集更新中。。。

简单全面的vi使用指南

目录
·vi 的工作模式
·编辑模式
·插入模式
·命令模式
·shell 切换
·选项设置
·vim 和 gvim 的高级特色
more »

搞了一个礼拜Sendmail SMTP认证,在濒临崩溃之际居然莫名其妙的搞定了!晕

从上周末安装好Sendmail之后,toplee.com和hmei.cn,以及9tmd.com的邮箱都可以使用了,但是刚高兴了没一天,就发现系统日志里面有大量的垃圾邮件通过系统的Sendmail进行发送,不得不佩服网上那些垃圾,这么快就探测到这个新配置的无验证的smtp服务器。

刚开始还基本可以忍受,后来发现系统有些时候居然会多达上千封的信等着发送,同时还有几十个sendmail的进程运行,严重影响了系统的性能,忍无可忍,决心配置sendmail的SMTP AUTH。
more »