<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[FreeBSD学习总结]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 11 Sep 2008 03:02:19 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	1、进入单用户模式<br/>BOOT: /kernel -s<br/>就进了单用户了, 然后/sbin/mount -rw /把/设置成可写<br/>然后 vipw把root口令置空<br/>2、开机自动fsck硬盘<br/>fsck_y_enable=&quot;YES&quot;<br/>3、FreeBSD弹出光驱<br/>cdcontol-&gt;Eject<br/>4、OpenBSD弹出光驱<br/>eject /dev/rcd0c<br/>5、BSD下增加帐号<br/>pw useradd hanyang -g wheel -s /usr/local/bin/bash<br/>6、观察网络流量<br/>systat -if 1<br/>7、添加IP地址和网关<br/>vi /etc/rc.conf<br/>ifconfig_bge0=&quot;inet 61.135.152.35 netmask 255.255.255.0&quot;<br/>ifconfig_bge1=&quot;inet 172.16.152.35 netmask 255.255.255.0&quot;<br/>defaultrouter=&quot;61.135.152.1&quot;<br/>/sbin/ifconfig bce0 inet 192.168.0.1 netmask 255.255.255.255<br/>8、手动添加默认网关 <br/>route add default new_gateway<br/>route change default new_gateway<br/>9、freebsd中设置时区命令为：<br/>tzsetup<br/>10、查看打开的端口<br/>bsd下：sockstat -l<br/>linux:netstat -anp&#124;grep LISTEN<br/>11、bsd 新内核无法启动<br/>你可以在系统启动进行10计数的时候按Enter以外的任何键， 接着键入unload命令，再键入boot kernel.old<br/>或是执行/boot/loader<br/>12、查看硬件信息<br/>cat /var/run/dmesg.boot &#124;grep CPU<br/>sysctl hw.model<br/>13、关掉NFS服务<br/>vi /etc/rc.conf<br/>增加<br/>nfs_server_enable=&quot;NO&quot; <br/>nfs_client_enable=&quot;NO&quot; <br/>portmap_enable=&quot;NO&quot; <br/>################################################<br/>######&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BSD 的防火墙ipfw语法&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;######<br/>################################################<br/>ipfw show<br/>ipfw add deny/allow all from 10.210.136.47 to any<br/>ipfw -f flush <br/>ipfw delete 表号<br/>#Add by jinshuai to forbid IP 2006-01-26<br/># # # # # /data1/apache2/logs/forbid_bsd.pl<br/>1 2 # # # /sbin/ipfw -f flush<br/>1 8 # # # /sbin/ipfw -f flush<br/>################################################<br/>######&nbsp;&nbsp;&nbsp;&nbsp; FreeBSD上使用磁盘命令行工具&nbsp;&nbsp;&nbsp;&nbsp;#######<br/>################################################<br/>播客squid服务器（ DELL 1950,4块73G 2.5寸SAS盘，每块盘单独做raid0）bsd系统下更换硬盘步骤：<br/>一、确认现场准备工作已经完成，可以随时更换故障，然后通知服务器所属负责人，确认服务器可以关机后，就远程关机，然后通知现场更换硬盘<br/>二、等现场更换好硬盘，并做完成riad后，执行下面操作：<br/>1、#初始化新磁盘mfid3是指id=3的硬盘，可以根据实际情况做相应调整<br/>&nbsp;&nbsp; dd if=/dev/zero of=/dev/mfid3 bs=1k count=1<br/>&nbsp;&nbsp; fdisk -BI mfid3<br/>2、#加上标签<br/>&nbsp;&nbsp; disklabel -B -w -r mfid3s1 auto<br/>3、# 现在编辑您刚才创建的磁盘分区<br/>&nbsp;&nbsp; disklabel -e mfid3s1<br/>&nbsp;&nbsp; 删除这一行：<br/>&nbsp;&nbsp; a: 142078781&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16&nbsp;&nbsp;&nbsp;&nbsp;unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp; 0<br/>&nbsp;&nbsp; 然后在文件最下面添加下面这行：<br/>&nbsp;&nbsp; d: 142078797&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;4.2BSD&nbsp;&nbsp;&nbsp;&nbsp; 2048 16384 28552<br/>4、创建文件系统<br/>&nbsp;&nbsp; newfs /dev/mfid3s1d<br/>5、修改fstab，mount新加的硬盘<br/>&nbsp;&nbsp; vi /etc/fstab<br/>&nbsp;&nbsp; /dev/mfid3s1d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /data3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ufs&nbsp;&nbsp;&nbsp;&nbsp; rw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2<br/>6、挂载硬盘<br/>&nbsp;&nbsp; mount -a<br/>################################################<br/>######&nbsp;&nbsp; 内核可使用的内存不足引起的自动重启 ######<br/>################################################<br/>设置方法是减少接收和发送缓冲区的内存的大小，需要做如下设置: <br/>vi /etc/sysctl.conf<br/>net.inet.tcp.msl=2000<br/>net.inet.tcp.sendspace=32768<br/>net.inet.tcp.recvspace=8192<br/>net.inet.tcp.recvbuf_max=32768<br/>net.inet.tcp.sendbuf_max=131072<br/>修改完后手工执行<br/>sysctl net.inet.tcp.msl=2000<br/>sysctl net.inet.tcp.sendspace=32768<br/>sysctl net.inet.tcp.recvspace=8192<br/>sysctl net.inet.tcp.recvbuf_max=32768<br/>sysctl net.inet.tcp.sendbuf_max=131072<br/>vi /boot/loader.conf&nbsp;&nbsp; （这两个选项有可能已经设置）<br/>kern.ipc.nmbclusters=0<br/>vm.kmem_size_scale=&quot;2&quot;<br/>net.inet.tcp.sendspace=&quot;16384&quot;<br/>net.inet.tcp.recvspace=&quot;8192&quot;<br/>net.inet.tcp.sendbuf_max=&quot;131072&quot;<br/>删除loader.conf与sysctl.conf重复的行<br/>################################################<br/>######&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加ftp账号&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;######<br/>################################################<br/>which proftpd<br/>修改proftpd.conf添加账号<br/>查看21端口是不是inetd启动的<br/>sockstat -l<br/>vi /etc/inetd.conf<br/>重启inetd服务<br/>killall -HUP inetd<br/>################################################<br/>######&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSD下关闭sendmail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;###### <br/>################################################<br/>sh /etc/rc.sendmail stop<br/>killall -9 sendmail<br/>chmod 0 /usr/libexec/sendmail/sendmail<br/>mv /etc/rc.sendmail /etc/rc.sendmail.old<br/>vi /etc/rc.conf<br/>sendmail_enable=&quot;NONE&quot;<br/>sendmail_submit_enable=&quot;NONE&quot;<br/>sendmail_outbound_enable=&quot;NONE&quot;<br/>################################################<br/>######&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSD安装qmail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;######<br/>################################################<br/>mkdir /var/qmail<br/>mkdir /var/qmail/alias<br/>pw groupadd nofiles<br/>pw groupadd qmail<br/>pw useradd alias -g nofiles -d /var/qmail/alias -s /sbin/nologin<br/>pw useradd qmaild -g nofiles -d /var/qmail -s /sbin/nologin<br/>pw useradd qmaill -g nofiles -d /var/qmail -s /sbin/nologin<br/>pw useradd qmailp -g nofiles -d /var/qmail -s /sbin/nologin<br/>pw useradd qmailq -g qmail -d /var/qmail -s /sbin/nologin<br/>pw useradd qmailr -g qmail -d /var/qmail -s /sbin/nologin<br/>pw useradd qmails -g qmail -d /var/qmail -s /sbin/nologin<br/>pw useradd admin -g wheel<br/>cd /home/hanyang<br/>tar xvfz ./qmail-1.03.tar.gz<br/>patch -d ./qmail-1.03 <br/>################################################<br/>bsd下修改配置文件支持串口为 115200输出<br/>################################################<br/>echo &#039;-Dh -S115200&#039; &gt;/boot.config <br/>echo &#039;kern.ipc.nmbclusters=0&#039;&gt;&gt;/boot/loader.conf<br/>echo &#039;comconsole_speed=&quot;115200&quot;&#039;&gt;&gt;/boot/loader.conf<br/>echo &#039;console=&quot;comconsole&quot;&#039;&gt;&gt;/boot/loader.conf<br/>echo &#039;boot_multicons=&quot;YES&quot;&#039;&gt;&gt;/boot/loader.conf<br/>echo &#039;boot_serial=&quot;YES&quot;&#039;&gt;&gt;/boot/loader.conf<br/>echo &#039;vm.kmem_size_scale=&quot;2&quot;&#039;&gt;&gt;/boot/loader.conf<br/>echo &#039;net.inet.tcp.sendspace=&quot;16384&quot;&#039;&gt;&gt;/boot/loader.conf<br/>echo &#039;net.inet.tcp.recvspace=&quot;8192&quot;&#039;&gt;&gt;/boot/loader.conf<br/>echo &#039;net.inet.tcp.sendbuf_max=&quot;131072&quot;&#039;&gt;&gt;/boot/loader.conf<br/>vi /etc/ttys<br/>注释掉ttyd0 /ttyd1,增加：<br/>ttyd0 &quot;/usr/libexec/getty std.115200&quot; vt100 on secure<br/>ttyd1 &quot;/usr/libexec/getty std.115200&quot; vt100 on secure<br/>################################################<br/>FreeBSD下的系统监控工具<br/>################################################<br/>1 使用SNP Watch监控用户 <br/>参考How to Monitor Users with SNP Watch.<br/>watch命令使用snp设备来监视某个tty的数据的输入输出, 因此首先要保证内核调入snp模块, 所以, 在内核配置中加入<br/>pseudo-device&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; snp 4 <br/>watch常用使用方式如下<br/>监视用户的tty, 不需要使用任何参数, 只需要指定tty<br/># who<br/>jerry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ttyv4&nbsp;&nbsp;&nbsp;&nbsp; 5 18 13:40 <br/># watch ttyv4&nbsp;&nbsp; <br/>监视并控制用户的tty, 需要加上参数`-W&#039;, 并指定tty<br/># who<br/>jerry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ttyv4&nbsp;&nbsp;&nbsp;&nbsp; 5 18 13:40 <br/># watch -W ttyv4 <br/>watch的快捷键如下<br/>CTRL+G = 退出<br/>CTRL+W = 清屏<br/>CTRL+X = 选择需要监视tty<br/>&nbsp;&nbsp; <br/>2 使用smartmontools监视硬盘状态<br/>SMART (SFF-8035i)是硬盘生产商们建立的一个工业标准, SFF-8035i工业标准经过ATA-3, ATA-4, 到了ATA-5, 加入了一个错误信息日志(error log)和一系列硬盘自测SMART命令. 这个标准就是在硬盘上保存一些跟执行情况, 可靠程度, 读找错误率等属性的数据, 所有属性都有一个1字节(大小范围 1-253)的标准化值, 还包含另一个1字节的关键阶段值, 如果属性中某个数据接近小于或达到关键阶段值,那么硬盘就很可能会在不久出现严重的读写问题, 至少也是超过它的设计使用极限了, 这时应该做系统完全备份了.<br/>SMART适用于IDE和SCSI硬盘, 如果硬盘支持SMART标准, 就可以使用smartmontools来 监视硬盘的状态, smartmontools的安装如下<br/># cd /usr/ports/sysutils/smartmontools<br/># make all install clean<br/># echo &#039;smartd_enable=&quot;YES&quot;&#039; &gt;&gt; /etc/rc.conf<br/># echo &#039;/dev/sda1 -H -m <br/>[email=mymailbox@mymachine%27]mymailbox@mymachine&#039;[/email]<br/>&gt; /usr/local/etc/smartd.conf<br/># /usr/local/etc/rc.d/smartd.sh start<br/>上面设置smartd在发现错误后发送邮件通知, 此外还可以根据需要定期测试硬盘, 查看其是否有错误, <br/>具体设置可以参见/usr/local/etc/smartd.conf.sample<br/>还可以通过smartctl来查看和测试硬盘, 常用命令如下:<br/>查看硬盘是否支持SMART标准<br/># smartctl -i /dev/sda1 <br/>查看硬盘的健康状况<br/># smartctl -H /dev/sda1 <br/>查看硬盘错误日志<br/># smartctl -l error /dev/sda1&nbsp;&nbsp; <br/>进行硬盘自检<br/># smartctl -l selftest /dev/sda1 <br/>终止硬盘自检<br/># smartctl -X /dev/sda1<br/>################################################<br/>######&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSD的虚拟磁盘技术&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;######<br/>################################################<br/>去掉开机自动加载虚拟磁盘并mount到/var,网上有资料说：<br/>It seems that you have set &quot;varmfs=YES&quot; in you /etc/rc.conf or /var is not popular writable<br/>然后按照下面的操作就可解决。<br/>vi /etc/rc.conf<br/>varmfs=&quot;NO&quot; <br/>populate_var=&quot;NO&quot;<br/># mdconfig -a -t swap -s 30M <br/>这就会在虚拟内存中申请30M空间，并创建虚拟磁盘，使用的虚拟设备为第 一个md设备md0，如果系统中的md0设备已经被占用，那么mdconfig就依序向后寻找下一个空余的md设备，并创建它。由于mdconfig能自 动创建新的设备，这样就解决了在内核配置文件指定伪设备数量的问题。 <br/>也可以使用-u指定使用的md伪设备的序号，例如下列命令将创建md10，并使用它作为虚拟磁盘设备：<br/># mdconfig -a -t swap -s 30M -u 10 <br/>上面的命令都是使用虚拟内存空间作为数据存储空间，是由swap参数指定的。同样，使用mdconfig也能从内核空间中创建虚拟磁盘，此时-t指定的存储类型参数为malloc，这告诉内核使用内核的MALLOC方法申请内存。 <br/># mdconfig -a -t malloc -s 30M <br/>这种方法就相当于老的md设备的申请内存的方法，但显然更为灵活，因为可以在具体使用过程中申请内存和设备，这是因为FreeBSD 5.0的内核允许更灵活的使用MALLOC内存申请方式。当然，一般还是主要使用swap申请虚拟空间的内存。 <br/>由于mdconfig和伪设备md将完全代替vnconfig和伪设备vn，那么使用mdconfig也能创建使用文件作为虚拟磁盘的与vn兼容的方式，这需要指定存储类型参数为vnode，并使用　-f指定具体的存储数据的物理文件名字。 <br/># mdconfig -a -t vnode -f imagefile -s 30M <br/>在使用mdconfig配置好虚拟磁盘之后，就可以使用disklabel、newfs、mount等管理虚拟磁盘。而在不需要这些虚拟磁盘的时候，就可以卸载相应的文件系统，并使用mdconfig删除指定的磁盘等。 <br/># mdconfig -l <br/>使用参数”-l”，则mdconfig列出系统中所有的虚拟磁盘设备。 <br/># mdconfig -d -u 0 <br/>为了删除指定了磁盘，需要使用”-d&quot;参数，而使用&quot;-u 0”则指定删除序号为0的虚拟磁盘，即md0。<br/>转自：http://blog.chinaunix.net/u1/55527/showart_1074803.html
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] FreeBSD学习总结]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>