1、進入單用戶模式
BOOT: /kernel -s
就進了單用戶了, 然後/sbin/mount -rw /把/設置成可寫
然後 vipw把root口令置空
2、開機自動fsck硬盤
fsck_y_enable="YES"
3、FreeBSD彈出光驅
cdcontol->Eject
4、OpenBSD彈出光驅
eject /dev/rcd0c
5、BSD下增加帳號
pw useradd hanyang -g wheel -s /usr/local/bin/bash
6、觀察網絡流量
systat -if 1
7、添加IP地址和網關
vi /etc/rc.conf
ifconfig_bge0="inet 61.135.152.35 netmask 255.255.255.0"
ifconfig_bge1="inet 172.16.152.35 netmask 255.255.255.0"
defaultrouter="61.135.152.1"
/sbin/ifconfig bce0 inet 192.168.0.1 netmask 255.255.255.255
8、手動添加默認網關
route add default new_gateway
route change default new_gateway
9、freebsd中設置時區命令為:
tzsetup
10、查看打開的端口
bsd下:sockstat -l
linux:netstat -anp|grep LISTEN
11、bsd 新內核無法啟動
你可以在系統啟動進行10計數的時候按Enter以外的任何鍵, 接著鍵入unload命令,再鍵入boot kernel.old
或是執行/boot/loader
12、查看硬件信息
cat /var/run/dmesg.boot |grep CPU
sysctl hw.model
13、關掉NFS服務
vi /etc/rc.conf
增加
nfs_server_enable="NO"
nfs_client_enable="NO"
portmap_enable="NO"
################################################
###### BSD 的防火牆ipfw語法 ######
################################################
ipfw show
ipfw add deny/allow all from 10.210.136.47 to any
ipfw -f flush
ipfw delete 表號
#Add by jinshuai to forbid IP 2006-01-26
# # # # # /data1/apache2/logs/forbid_bsd.pl
1 2 # # # /sbin/ipfw -f flush
1 8 # # # /sbin/ipfw -f flush
################################################
###### FreeBSD上使用磁盤命令行工具 #######
################################################
播客squid服務器( DELL 1950,4塊73G 2.5寸SAS盤,每塊盤單獨做raid0)bsd系統下更換硬盤步驟:
一、確認現場准備工作已經完成,可以隨時更換故障,然後通知服務器所屬負責人,確認服務器可以關機後,就遠程關機,然後通知現場更換硬盤
二、等現場更換好硬盤,並做完成riad後,執行下面操作:
1、#初始化新磁盤mfid3是指id=3的硬盤,可以根據實際情況做相應調整
dd if=/dev/zero of=/dev/mfid3 bs=1k count=1
fdisk -BI mfid3
2、#加上標簽
disklabel -B -w -r mfid3s1 auto
3、# 現在編輯您剛才創建的磁盤分區
disklabel -e mfid3s1
刪除這一行:
a: 142078781 16 unused 0 0
然後在文件最下面添加下面這行:
d: 142078797 0 4.2BSD 2048 16384 28552
4、創建文件系統
newfs /dev/mfid3s1d
5、修改fstab,mount新加的硬盤
vi /etc/fstab
/dev/mfid3s1d /data3 ufs rw 2 2
6、掛載硬盤
mount -a
################################################
###### 內核可使用的內存不足引起的自動重啟 ######
################################################
設置方法是減少接收和發送緩沖區的內存的大小,需要做如下設置:
vi /etc/sysctl.conf
net.inet.tcp.msl=2000
net.inet.tcp.sendspace=32768
net.inet.tcp.recvspace=8192
net.inet.tcp.recvbuf_max=32768
net.inet.tcp.sendbuf_max=131072
修改完後手工執行
sysctl net.inet.tcp.msl=2000
sysctl net.inet.tcp.sendspace=32768
sysctl net.inet.tcp.recvspace=8192
sysctl net.inet.tcp.recvbuf_max=32768
sysctl net.inet.tcp.sendbuf_max=131072
vi /boot/loader.conf (這兩個選項有可能已經設置)
kern.ipc.nmbclusters=0
vm.kmem_size_scale="2"
net.inet.tcp.sendspace="16384"
net.inet.tcp.recvspace="8192"
net.inet.tcp.sendbuf_max="131072"
刪除loader.conf與sysctl.conf重復的行
################################################
###### 添加ftp賬號 ######
################################################
which proftpd
修改proftpd.conf添加賬號
查看21端口是不是inetd啟動的
sockstat -l
vi /etc/inetd.conf
重啟inetd服務
killall -HUP inetd
################################################
###### BSD下關閉sendmail ######
################################################
sh /etc/rc.sendmail stop
killall -9 sendmail
chmod 0 /usr/libexec/sendmail/sendmail
mv /etc/rc.sendmail /etc/rc.sendmail.old
vi /etc/rc.conf
sendmail_enable="NONE"
sendmail_submit_enable="NONE"
sendmail_outbound_enable="NONE"
################################################
###### BSD安裝qmail ######
################################################
mkdir /var/qmail
mkdir /var/qmail/alias
pw groupadd nofiles
pw groupadd qmail
pw useradd alias -g nofiles -d /var/qmail/alias -s /sbin/nologin
pw useradd qmaild -g nofiles -d /var/qmail -s /sbin/nologin
pw useradd qmaill -g nofiles -d /var/qmail -s /sbin/nologin
pw useradd qmailp -g nofiles -d /var/qmail -s /sbin/nologin
pw useradd qmailq -g qmail -d /var/qmail -s /sbin/nologin
pw useradd qmailr -g qmail -d /var/qmail -s /sbin/nologin
pw useradd qmails -g qmail -d /var/qmail -s /sbin/nologin
pw useradd admin -g wheel
cd /home/hanyang
tar xvfz ./qmail-1.03.tar.gz
patch -d ./qmail-1.03 < qmail-103.patch
patch -d ./qmail-1.03 < qmail-maildir++.patch
tar zxvf qmail-smtpd-auth-0.31.tar.gz
cd qmail-smtpd-auth-0.31
cp base# README.auth ../qmail-1.03
patch -d ../qmail-1.03 < auth.patch
################################################
bsd下修改配置文件支持串口為 115200輸出
################################################
echo '-Dh -S115200' >/boot.config
echo 'kern.ipc.nmbclusters=0'>>/boot/loader.conf
echo 'comconsole_speed="115200"'>>/boot/loader.conf
echo 'console="comconsole"'>>/boot/loader.conf
echo 'boot_multicons="YES"'>>/boot/loader.conf
echo 'boot_serial="YES"'>>/boot/loader.conf
echo 'vm.kmem_size_scale="2"'>>/boot/loader.conf
echo 'net.inet.tcp.sendspace="16384"'>>/boot/loader.conf
echo 'net.inet.tcp.recvspace="8192"'>>/boot/loader.conf
echo 'net.inet.tcp.sendbuf_max="131072"'>>/boot/loader.conf
vi /etc/ttys
注釋掉ttyd0 /ttyd1,增加:
ttyd0 "/usr/libexec/getty std.115200" vt100 on secure
ttyd1 "/usr/libexec/getty std.115200" vt100 on secure
################################################
FreeBSD下的系統監控工具
################################################
1 使用SNP Watch監控用戶
參考How to Monitor Users with SNP Watch.
watch命令使用snp設備來監視某個tty的數據的輸入輸出, 因此首先要保證內核調入snp模塊, 所以, 在內核配置中加入
pseudo-device snp 4
watch常用使用方式如下
監視用戶的tty, 不需要使用任何參數, 只需要指定tty
# who
jerry ttyv4 5 18 13:40
# watch ttyv4
監視並控制用戶的tty, 需要加上參數`-W', 並指定tty
# who
jerry ttyv4 5 18 13:40
# watch -W ttyv4
watch的快捷鍵如下
CTRL+G = 退出
CTRL+W = 清屏
CTRL+X = 選擇需要監視tty
2 使用smartmontools監視硬盤狀態
SMART (SFF-8035i)是硬盤生產商們建立的一個工業標准, SFF-8035i工業標准經過ATA-3, ATA-4, 到了ATA-5, 加入了一個錯誤信息日志(error log)和一系列硬盤自測SMART命令. 這個標准就是在硬盤上保存一些跟執行情況, 可靠程度, 讀找錯誤率等屬性的數據, 所有屬性都有一個1字節(大小范圍 1-253)的標准化值, 還包含另一個1字節的關鍵階段值, 如果屬性中某個數據接近小於或達到關鍵階段值,那麼硬盤就很可能會在不久出現嚴重的讀寫問題, 至少也是超過它的設計使用極限了, 這時應該做系統完全備份了.
SMART適用於IDE和SCSI硬盤, 如果硬盤支持SMART標准, 就可以使用smartmontools來 監視硬盤的狀態, smartmontools的安裝如下
# cd /usr/ports/sysutils/smartmontools
# make all install clean
# echo 'smartd_enable="YES"' >> /etc/rc.conf
# echo '/dev/sda1 -H -m
mymailbox@mymachine' > /usr/local/etc/smartd.conf
# /usr/local/etc/rc.d/smartd.sh start
上面設置smartd在發現錯誤後發送郵件通知, 此外還可以根據需要定期測試硬盤, 查看其是否有錯誤,
具體設置可以參見/usr/local/etc/smartd.conf.sample
還可以通過smartctl來查看和測試硬盤, 常用命令如下:
查看硬盤是否支持SMART標准
# smartctl -i /dev/sda1
查看硬盤的健康狀況
# smartctl -H /dev/sda1
查看硬盤錯誤日志
# smartctl -l error /dev/sda1
進行硬盤自檢
# smartctl -l selftest /dev/sda1
終止硬盤自檢
# smartctl -X /dev/sda1
################################################
###### BSD的虛擬磁盤技術 ######
################################################
去掉開機自動加載虛擬磁盤並mount到/var,網上有資料說:
It seems that you have set "varmfs=YES" in you /etc/rc.conf or /var is not popular writable
然後按照下面的操作就可解決。
vi /etc/rc.conf
varmfs="NO"
populate_var="NO"
# mdconfig -a -t swap -s 30M
這就會在虛擬內存中申請30M空間,並創建虛擬磁盤,使用的虛擬設備為第 一個md設備md0,如果系統中的md0設備已經被占用,那麼mdconfig就依序向後尋找下一個空余的md設備,並創建它。由於mdconfig能自 動創建新的設備,這樣就解決了在內核配置文件指定偽設備數量的問題。
也可以使用-u指定使用的md偽設備的序號,例如下列命令將創建md10,並使用它作為虛擬磁盤設備:
# mdconfig -a -t swap -s 30M -u 10
上面的命令都是使用虛擬內存空間作為數據存儲空間,是由swap參數指定的。同樣,使用mdconfig也能從內核空間中創建虛擬磁盤,此時-t指定的存儲類型參數為malloc,這告訴內核使用內核的MALLOC方法申請內存。
# mdconfig -a -t malloc -s 30M
這種方法就相當於老的md設備的申請內存的方法,但顯然更為靈活,因為可以在具體使用過程中申請內存和設備,這是因為FreeBSD 5.0的內核允許更靈活的使用MALLOC內存申請方式。當然,一般還是主要使用swap申請虛擬空間的內存。
由於mdconfig和偽設備md將完全代替vnconfig和偽設備vn,那麼使用mdconfig也能創建使用文件作為虛擬磁盤的與vn兼容的方式,這需要指定存儲類型參數為vnode,並使用 -f指定具體的存儲數據的物理文件名字。
# mdconfig -a -t vnode -f imagefile -s 30M
在使用mdconfig配置好虛擬磁盤之後,就可以使用disklabel、newfs、mount等管理虛擬磁盤。而在不需要這些虛擬磁盤的時候,就可以卸載相應的文件系統,並使用mdconfig刪除指定的磁盤等。
# mdconfig -l
使用參數”-l”,則mdconfig列出系統中所有的虛擬磁盤設備。
# mdconfig -d -u 0
為了刪除指定了磁盤,需要使用”-d"參數,而使用"-u 0”則指定刪除序號為0的虛擬磁盤,即md0。