Linux使用小知識(轉)
Linux使用小知識(轉)[@more@] 都很實用的,可能比較古典.但對於我這樣一個初學者還是有用的~~~
從軟盤啟動grub
製作啟動盤後可以用軟盤啟動引導硬碟上的作業系統 插入製作好的啟動軟盤,進入BIOS設定軟盤啟動。軟盤啟動成功後就會進入grub的命令列模式
grub>
要啟動一個作業系統,首先指定引導哪個分割槽上的系統,例如要引導指第一個硬碟上的第一個分割槽的作業系統,先鍵入
grub>root (hd0,0)
接著如果要啟動的是Windows系統,鍵入
grub>chainloader (hd0,0)+1
注意(hd0,0)要隨著硬碟和分割槽的不同而改變數字。 如果要引導Linux或其他系統,應鍵入
grub>kernel (hd0,0)/boot/vmlinuz root=/dev/hda1
注意hda1引數也要隨著硬碟和分割槽的不同而改變,如從第二個硬碟的第一個分割槽引導則用hdb1。
最後敲入boot就可以啟動系統了。
在任何時候不能確定命令或者命令的引數都可以按Tab獲得相關的幫助。用上下鍵可以獲得命令的歷史記錄。
其實這些命令就是menu.lst的啟動描述,您也可以根據那些描述來自己鍵入啟動命令,最後敲入boot就可以引導系統了。
如何實現多網路卡bonding
使用多塊網路卡虛擬成為一塊網路卡,具有相同的IP地址。這項技術其實在sun和cisco中已經存在,分別稱為Trunking和etherchannel技術,在Linux中,這種技術稱為bonding。
??因為bonding在核心2.4.x中已經包含了,只需要在編譯的時候把網路裝置選項中的Bonding driver support選中就可以了。
??然後,重新編譯核心,重新起動計算機,執行如下命令:
??ismod bonding
??ifconfig eth0 down
??ifconfig eth1 down
??ifconfig bond0 ipaddress
??ifenslave bond0 eth0
??ifenslave bond0 eth1
??現在兩塊網路卡已經象一塊一樣工作了.這樣可以提高叢集節點間的資料傳輸.
??你最好把這幾句寫成一個指令碼,再由/etc/rc.d/rc.local呼叫,以便一開機就生效.
??bonding對於伺服器來是個比較好的選擇,在沒有千兆網路卡時,用兩三塊100兆網路卡作bonding,可大大提高伺服器到交換機之間的頻寬.但是需要在交換機上設定連線bonding網路卡的兩個口子對映為同一個虛擬介面。
如何實現為一個網路卡繫結多個IP地址?
Linux的網路裝置配置檔案存放在/etc/sysconfig/network-scripts裡面,對於乙太網的第一個網路裝置,配置檔名一般為 ifcfg-eth0 如果需要為第一個網路裝置繫結多一個IP地址,只需要在/etc/sysconfig/network-scripts目錄裡面建立一個名為ifcfg-eth0:0的檔案,內容樣例為: DEVICE="eth0:0"
IPADDR="211.100.10.119"
NETMASK="255.255.255.0"
ONBOOT="yes"
其中的DEVICE為裝置的名稱,IPADDR為此裝置的IP地址,NETMASK為子網掩碼,ONBOOT表示在系統啟動時自動啟動。
如果需要再繫結多一個IP地址,只需要把檔名和檔案內的DEVICE中的eth0:x加一即可。LINUX最多可以支援255個IP別名。
如何根據NETBIOS名字查詢計算機IP
使用nmblookup test可以查詢到同個網路內NETBIOS名字為test的機器的IP,如果這個機器有多個IP,也會一併列出。
如何知道某個埠現在執行什麼監聽程式
當我們用netstat -an的時候,我們有時候可以看到類似的輸出: udp 0 0 0.0.0.0:32768 0.0.0.0:*
但是查詢/etc/services又沒有這個埠的相關說明,怎麼辦呢?這個是不是駭客程式?有沒有辦法檢視究竟什麼程式監聽在這個埠?
使用lsof -i :32768就可以看到:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
rpc.statd 603 root 4u IPv4 953 UDP *:32768
rpc.statd 603 root 6u IPv4 956 TCP *:32768 (LISTEN)
原來是rpc的程式。
使用lsof -i :port就能看見所指定埠執行的程式,同時還有當前連線。
如何監視某個tty
你可以把 /etc/inetd.conf中 ??# Use this one instead if you want to snoop on telnet users (try to use this
??# for ethical purposes, ok folks?) :
??telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetsnoopd
??1.把原本的in.telnetd換成上述的in.telnetsnoopd,
??2.然後啟用 ttysnoops &
?3.mkdir /var/spool/ttysnoop
??4.重新啟用 inetd
??用法就是 ttysnoop tty*,這時它會要你輸入root的密碼,按 ctrl+7可以終止,不過監視人家時要小心不要被發現了喲。這兩個視窗是一樣的,你還可以控制他的鍵盤 (自己先練習一下,呵呵...)
如何恢復iptables的預設設定
/usr/local/sbin/iptables -P INPUT ACCEPT /usr/local/sbin/iptables -P FORWARD ACCEPT
/usr/local/sbin/iptables -P OUTPUT ACCEPT
#
# reset the default policies in the nat table.
#
/usr/local/sbin/iptables -t nat -P PREROUTING ACCEPT
/usr/local/sbin/iptables -t nat -P POSTROUTING ACCEPT
/usr/local/sbin/iptables -t nat -P OUTPUT ACCEPT
#
# flush all the rules in the filter and nat tables.
#
/usr/local/sbin/iptables -F
/usr/local/sbin/iptables -t nat -F
#
# erase all chains that's not default in filter and nat table.
#
/usr/local/sbin/iptables -X
/usr/local/sbin/iptables -t nat -X'
GRUB多重啟動管理器
什麼是grub
grub 是一個多重啟動管理器。grub是GRand Unified
Bootloader的縮寫,它可以在多個作業系統共存時選擇引導哪個系統。它可以引導的作業系統包括Linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows
NT,Windows2000。它可以載入作業系統的核心和初始化作業系統(如Linux,FreeBSD),或者把引導權交給作業系統(如Windows 98)來完成引導。
如何允許非root使用者mount光碟和軟盤
可以透過修改檔案系統配置檔案:/etc/fstab來使非root使用者使用光碟和軟盤,將/etc/fstab中關於fd0及cdrom的內容修改為如下所示: /dev/fd0 /mnt/floppy auto noauto,user 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro,user,unhide 0 0
你可以透過察看/etc/mtab或使用不帶引數的mount命令來察看哪些檔案系統被載入及它們的載入引數是什麼。
如何限制某個使用者只能FTP不能TELNET?
很簡單,修改此使用者的shell即可。開啟/etc/password,查詢要修改的使用者所對應的記錄,如: floatboat:x:500:500::/home/floatboat:/bin/bash
要禁止floatboat使用者登入,只需要把此行中的“/bin/bash”改為/usr/bin/passwd即可。這樣使用者telnet上伺服器只能修改密碼,而無法直接控制檯。
當然,如果你希望連密碼都不允許此使用者修改,只要把shell改為“/sbin/nologin”即可。
怎麼樣做到限時登入
透過以下三個指令碼程式呼叫at和系統維護功能即可實現限時登入: 在指定的時間執行該指令碼,將在/etc下生成一名為nologin的檔案,登入程式在執行時會自動判斷此檔案是否存,如果存在將不允許使用者登入,內容為:
vi /sbin/login.denied
echo " Login Denied " > /etc/nologin
chmod 700 login.denied
在指定的時間執行該指令碼,刪除/etc/下的nologin檔案以允許使用者登入,內容為:
vi /sbin/login.allowed
if [ -f /etc/nologin ]; then
rm /etc/nologin
fi
chmod 700 login.allowed
編寫一個限制時間的指令碼,內容為:
vi /sbin/login.rollback
if [ -f /sbin/login.denied ]; then
at -f /sbin/login.denid 22:00
fi
if [ -f /sbin/login.allowed ]; then
at -f /sbin/login.allowed 8:00
if
chmod 744 /sbin/login.rollback
建立完成以後,把/sbin/login.rollback指令碼放進crontab中,在每天凌晨執行:
crontab -e
# roll login script
00 1 * * * /sbin/login.rollback
此種設定的功能是:從晚上10:00到第二天早上8:00靜止非root使用者登入,顯示為系統維護狀態。
lilo.conf配置例項
有了這些基礎知識,我們可以很容易地按照自己的意圖配置LILO。請看一個lilo.conf檔案的例子:
boot=/dev/hda #將LILO安裝在MBR。LILO作為主引導管理器
message=/boot/message #註釋為/boot/message
compact #產生一個更小的“map”檔案
map=/boot/map #指定“map”檔案為/boot/map
install=/boot/boot.b
password=zhoudi #設定口令
vga=normal #80x25文字模式
linear #使用“linear”地址
prompt #提示使用者鍵盤輸入
timeout=50 #超時時長為5秒
default=dos #預設引導label為dos的作業系統
#設定Linux
image=/boot/vmlinuz-2.0.34-1
#設定Linux核心引導映像
label=linux #標識為linux
root=/dev/hda1 #設定根檔案系統
read-only #LILO以只讀方式載入根檔案系統
#設定MS-DOS或Windows 95
other=/dev/hda2 #DOS分割槽為第一個IDE硬碟的第二分割槽
label=dos #標識為dos
table=/dev/hda #主裝置為第一個IDE硬碟
#設定SCO UNIX
注意:SCO分割槽必須設為活動(active)分割槽並將LILO安裝在MBR上。
other=/dev/hda3
label=sco
table=/dev/hda
這個例子中,LILO是作為主引導管理器來管理機器上所有作業系統的。LILO也可作為二
級引導管理器,這隻要將“boot”引數改為根分割槽就可做到。例如:
boot=/dev/hda1
以這種方式使用LILO時,Linux根分割槽必須用DOS或Linux的fdisk程式將其設定為活動分割槽,
並且這種方式只對硬碟主分割槽(不是擴充套件或邏輯分割槽)有效。
LILO還可以啟動第二個以上的作業系統。在我的機器上有兩塊希捷硬碟,一塊硬碟為8.4GB,
另一塊為1.2GB,都以LBA模式接在主IDE口上。8.4GB跳線為主盤,1.2GB跳線為從盤,Linux
核心很容易地就將它們辨認出來並能正常使用,1.2GB的硬碟上安裝了MS-DOS 6.22。筆者是
這樣設定lilo.conf的:
disk=/dev/hda
bios=0x80
#由於IDE硬碟存在雙硬碟問題,所以當啟動DOS系統時,會提示“無系統盤或系統盤錯!”,需修改程式如下。
disk=/dev/hdb
bios=0x81
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
linear
prompt
timeout=50
default=dos
image=/boot/vmlinuz-2.2.11-1
label=linux
root=/dev/hda1
read-only
other=/dev/hdb1
label=dos
map-drive = 0x80
to = 0x81
map-drive = 0x81
to = 0x80
#交換兩硬碟主、從順序
table=/dev/hdb
配置好lilo.conf檔案後,在root賬戶下執行lilo命令,新的LILO就被載入系統。
上面第一個例子執行結果如下:
#lilo
Added linux
Added dos*
Added sco
(注:帶*號的表示其為預設作業系統)
為Linux系統設定備份
備份是一項重要的工作,但是很多人沒有去做。一旦由於使用不當造成資料丟失,備份就成了真正的救命者。本文將討論設定備份的策略和如何選擇備份介質,並介紹用於備份的tar和cpio工具。 設定備份策略
設定備份策略和計劃可以增加進行備份的可能性。備份開始前,要確定備份哪些資料、備份的頻率和使用什麼樣的介質進行備份。備份的時候,應該進行完全備份。
備份通常安排在空閒時間進行。在大多數系統中,由於此時使用者數量最少,所以開啟的檔案也最少。由於備份要佔用一些系統資源,執行備份時使用者會發現系統反應遲鈍。
如果Linux計算機只有一個使用者,可以一個星期或一個月對整個系統備份一次。如果有關鍵性的檔案,就應該有計劃地把這些檔案複製到一個可移動的磁碟中。
備份之前,首先要確保正確地設定備份裝置。大多數磁帶備份系統在安裝時可以發現是否正確。系統啟動後,開啟一個終端視窗並且輸入下面的命令:
$dmeg | less
滾動列表,並從中尋找你的磁帶系統的驅動。如果沒有發現,就需要載入一個元件驅動程式。
如果執行Linux伺服器,就要制定一個備份計劃,但這並不意味著每天要對所有的東西都備份。系統中只有一部分東西需要每天備份,下面列出需要備份的專案:
使用者檔案 每天都要對/home目錄中的使用者檔案進行備份。
配置檔案 /etc和/var目錄中的配置檔案不需要頻繁備份,每個星期或每月備份一次即可,主要取決於配置更改的頻繁程度。
程式檔案 /usr和/opt目錄中的程式檔案很少發生變化,安裝後做一次備份即可。通常情況下,程式檔案可方便地從原始安裝盤中恢復。
選擇備份介質
把備份存到哪裡有多種選擇。下面介紹一些可選擇的備份介質:
軟盤 如果要把重要檔案快速備份,或者將其帶到家中,這時軟盤仍舊是一種可選的備份介質。
光碟寫入器 隨著光碟寫入器變得越來越可靠,價格也越來越低,光碟本身也非常便宜。選用此項的一個好處是光碟不容易被損壞,它備份的可靠性很高。
使用光碟寫入器有兩點不利因素:它們速度較慢,並且只能儲存大約650MB。
可重寫的光碟 可重寫光碟驅動器比光碟寫入器要貴得多,工作方式與其類似。但是,這些光碟是可被重寫的,並且它比只能寫一次的光碟貴許多。可重寫光碟其它的特性都與光碟寫入器類似。
Jaz和Zip Zip驅動器很流行,已經成為許多PC機的標準配置,同時它的磁碟和驅動器也都不貴。它一張磁碟可容納100MB的資料,是一種用於快速、可移動備份的很好選擇。
Jaz磁碟可以容納上G位元組的資料,並且使用更先進的技術以獲得更好的表現。Jaz驅動器和Jaz磁碟都比較貴。
Jaz和Zip的缺陷是都容易損壞,並且保持時間相對要短。
磁帶機 磁帶備份裝置是大多數Linux伺服器的標準配置。磁帶是可靠的,並且很少出現錯誤,它幾乎比其它介質儲存時間都要長。
對於點對點工作組網路和中型網路,Travan和高階數字音訊磁帶(DAT)通常是最好的選擇。Travan驅動器經過壓縮可以處理8GB資料,這對於具有5-10個PC機的小型網路來說足夠了。DAT驅動器有更好的表現,可以處理24GB的資料。DAT驅動器比Travan驅動器昂貴,但它磁帶的價格要比Travan QIC磁帶卷便宜。
高階磁帶 選擇高階磁帶可能是相當貴的。與Travan或DAT相比,這種驅動器有更大的容量和更高的速度。三種廣泛使用的驅動器型別是:Sony Advanced Intelliget Tape ( AIT ) 、Quantum Digital Linear Ta p e ( DLT )和Exabyte Mammoth 8mm。它們最少可以容納20GB的不壓縮資料,並且具有更高的資料傳輸能力。
用於備份的tar
tar工具是以前備份檔案的可靠方法,幾乎可以工作於任何環境中,Linux老使用者一般都信賴它。
Linux中以.tar結尾的檔案都是用tar建立的。它的使用超出了單純的備份,可用來把許多不同檔案放到一起組成一個易於分開的檔案。tar是從Tape ARchiver備份工具起步的。
包含在Linux中的GNU tar工具簡便易用,包含了一個用來壓縮的選項,且支援不斷增加的備份。
tar是一個命令列的工具,沒有圖形介面。使用Konsole或Kvt開啟一個終端視窗,接下來是一個簡單的備份命令:
$tar cvf - /home > /temp/backup.tar
這個命令在/tmp目錄中建立一個backup.tar的檔案,/home目錄中所有內容都包含在其中。
接下來可以把tar檔案複製到備份磁碟中。使用簡單備份時,如果要使用壓縮功能,改為下面命令:
$tar czvf - /home > /tmp/backup.tgz
上面副檔名. tgz指出這是一個壓縮檔案。
下一個例子可以用來直接備份到一個安裝好的Jaz驅動器中,但這樣做要確定有足夠的空間:
$tar czvf /mnt/jaz/backup.tgz - /home
對於一個磁帶驅動器,使用裝置名稱:
$tar czvf /dev/st0/backup.tgz - /home
如果有一個備份非常大,可以使用多卷選項。但是,這樣做就不能使用壓縮。當第一個磁碟或磁帶填滿後,tar將提示插入另一張:
$tar cvMf /dev/st0/5mar2000.tar -home
要恢復備份使用下面的命令,以Jaz磁碟為例:
$tar xzvf /mnt/jaz/5mar2000.tgz /home
表1列出了tar主要功能引數。此外還有很多可選引數,本文不再詳述。
表1 tar主要功能引數
引數 描述
-A 附加到另一個tar存檔的後面
-C 建立一個新的tar存檔
-d 找出tar存檔和檔案間的差別,用於一個文件的驗證
--delete 從存檔刪除檔案,磁碟備份不能選用
-r 把檔案附加到tar存檔的後面
-t 列出tar存檔的內容
-u 只把比tar文件中的檔案新的檔案附加到存檔中
-x 解開一個tar存檔
tar備份可以用crontab工具設定成基於時間的有規律地執行。例如,每晚2點把/home目錄備份到SCSI磁帶驅動器中,只要將下面語句新增到root的crontab中即可:
00 02 * * * tar cvf /dev/st0/homefiles.tar - /home
用於備份的cpio
GNU cpio工具像tar一樣從命令提示行啟動程式。與tar相比cpio更復雜,但是也更為可靠。因為如果一個tar檔案中某處有一個壞塊,就不能對備份檔案的其它部分進行訪問,而使用cpio,只有壞塊不能被訪問。
cpio建立一個稱為copy-out mode的備份,備份存檔中包含了檔案和所有者、時間及訪問許可等資訊。cpio需要一個假定要備份的檔案列表。建立列表的一個最方便的方法就是使用ls命令。例如,要把/home目錄備份到SCSI磁帶裝置中,輸入下面的命令:
$ls /home | cpio -o > /dev/st0
也可以使用find命令。它包括許多選項可以用來消減被存檔檔案的數量。例如,下面的命令對所有在上一個2 4小時內修改過的檔案進行存檔:
$find /home -mtime 1 -type f -print | cpio -o > /dev/st0
copy - in模式把檔案從備份存檔中解出來。下面的命令會恢復前兩個備份例子中的所有檔案:
$cpio -i < /dev/st0
你也可以對cpio的備份進行計劃,用crontab工具設定成基於任何時間的有規律地執行。例如,要在每晚2點把/ home目錄備份到SCSI磁帶驅動器中,把下面的語句新增到root的crontab檔案中即可:
00 02 * * * ls /home | cpio -o > /dev/st0
從軟盤啟動grub
製作啟動盤後可以用軟盤啟動引導硬碟上的作業系統 插入製作好的啟動軟盤,進入BIOS設定軟盤啟動。軟盤啟動成功後就會進入grub的命令列模式
grub>
要啟動一個作業系統,首先指定引導哪個分割槽上的系統,例如要引導指第一個硬碟上的第一個分割槽的作業系統,先鍵入
grub>root (hd0,0)
接著如果要啟動的是Windows系統,鍵入
grub>chainloader (hd0,0)+1
注意(hd0,0)要隨著硬碟和分割槽的不同而改變數字。 如果要引導Linux或其他系統,應鍵入
grub>kernel (hd0,0)/boot/vmlinuz root=/dev/hda1
注意hda1引數也要隨著硬碟和分割槽的不同而改變,如從第二個硬碟的第一個分割槽引導則用hdb1。
最後敲入boot就可以啟動系統了。
在任何時候不能確定命令或者命令的引數都可以按Tab獲得相關的幫助。用上下鍵可以獲得命令的歷史記錄。
其實這些命令就是menu.lst的啟動描述,您也可以根據那些描述來自己鍵入啟動命令,最後敲入boot就可以引導系統了。
如何實現多網路卡bonding
使用多塊網路卡虛擬成為一塊網路卡,具有相同的IP地址。這項技術其實在sun和cisco中已經存在,分別稱為Trunking和etherchannel技術,在Linux中,這種技術稱為bonding。
??因為bonding在核心2.4.x中已經包含了,只需要在編譯的時候把網路裝置選項中的Bonding driver support選中就可以了。
??然後,重新編譯核心,重新起動計算機,執行如下命令:
??ismod bonding
??ifconfig eth0 down
??ifconfig eth1 down
??ifconfig bond0 ipaddress
??ifenslave bond0 eth0
??ifenslave bond0 eth1
??現在兩塊網路卡已經象一塊一樣工作了.這樣可以提高叢集節點間的資料傳輸.
??你最好把這幾句寫成一個指令碼,再由/etc/rc.d/rc.local呼叫,以便一開機就生效.
??bonding對於伺服器來是個比較好的選擇,在沒有千兆網路卡時,用兩三塊100兆網路卡作bonding,可大大提高伺服器到交換機之間的頻寬.但是需要在交換機上設定連線bonding網路卡的兩個口子對映為同一個虛擬介面。
如何實現為一個網路卡繫結多個IP地址?
Linux的網路裝置配置檔案存放在/etc/sysconfig/network-scripts裡面,對於乙太網的第一個網路裝置,配置檔名一般為 ifcfg-eth0 如果需要為第一個網路裝置繫結多一個IP地址,只需要在/etc/sysconfig/network-scripts目錄裡面建立一個名為ifcfg-eth0:0的檔案,內容樣例為: DEVICE="eth0:0"
IPADDR="211.100.10.119"
NETMASK="255.255.255.0"
ONBOOT="yes"
其中的DEVICE為裝置的名稱,IPADDR為此裝置的IP地址,NETMASK為子網掩碼,ONBOOT表示在系統啟動時自動啟動。
如果需要再繫結多一個IP地址,只需要把檔名和檔案內的DEVICE中的eth0:x加一即可。LINUX最多可以支援255個IP別名。
如何根據NETBIOS名字查詢計算機IP
使用nmblookup test可以查詢到同個網路內NETBIOS名字為test的機器的IP,如果這個機器有多個IP,也會一併列出。
如何知道某個埠現在執行什麼監聽程式
當我們用netstat -an的時候,我們有時候可以看到類似的輸出: udp 0 0 0.0.0.0:32768 0.0.0.0:*
但是查詢/etc/services又沒有這個埠的相關說明,怎麼辦呢?這個是不是駭客程式?有沒有辦法檢視究竟什麼程式監聽在這個埠?
使用lsof -i :32768就可以看到:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
rpc.statd 603 root 4u IPv4 953 UDP *:32768
rpc.statd 603 root 6u IPv4 956 TCP *:32768 (LISTEN)
原來是rpc的程式。
使用lsof -i :port就能看見所指定埠執行的程式,同時還有當前連線。
如何監視某個tty
你可以把 /etc/inetd.conf中 ??# Use this one instead if you want to snoop on telnet users (try to use this
??# for ethical purposes, ok folks?) :
??telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetsnoopd
??1.把原本的in.telnetd換成上述的in.telnetsnoopd,
??2.然後啟用 ttysnoops &
?3.mkdir /var/spool/ttysnoop
??4.重新啟用 inetd
??用法就是 ttysnoop tty*,這時它會要你輸入root的密碼,按 ctrl+7可以終止,不過監視人家時要小心不要被發現了喲。這兩個視窗是一樣的,你還可以控制他的鍵盤 (自己先練習一下,呵呵...)
如何恢復iptables的預設設定
/usr/local/sbin/iptables -P INPUT ACCEPT /usr/local/sbin/iptables -P FORWARD ACCEPT
/usr/local/sbin/iptables -P OUTPUT ACCEPT
#
# reset the default policies in the nat table.
#
/usr/local/sbin/iptables -t nat -P PREROUTING ACCEPT
/usr/local/sbin/iptables -t nat -P POSTROUTING ACCEPT
/usr/local/sbin/iptables -t nat -P OUTPUT ACCEPT
#
# flush all the rules in the filter and nat tables.
#
/usr/local/sbin/iptables -F
/usr/local/sbin/iptables -t nat -F
#
# erase all chains that's not default in filter and nat table.
#
/usr/local/sbin/iptables -X
/usr/local/sbin/iptables -t nat -X'
GRUB多重啟動管理器
什麼是grub
grub 是一個多重啟動管理器。grub是GRand Unified
Bootloader的縮寫,它可以在多個作業系統共存時選擇引導哪個系統。它可以引導的作業系統包括Linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows
NT,Windows2000。它可以載入作業系統的核心和初始化作業系統(如Linux,FreeBSD),或者把引導權交給作業系統(如Windows 98)來完成引導。
如何允許非root使用者mount光碟和軟盤
可以透過修改檔案系統配置檔案:/etc/fstab來使非root使用者使用光碟和軟盤,將/etc/fstab中關於fd0及cdrom的內容修改為如下所示: /dev/fd0 /mnt/floppy auto noauto,user 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro,user,unhide 0 0
你可以透過察看/etc/mtab或使用不帶引數的mount命令來察看哪些檔案系統被載入及它們的載入引數是什麼。
如何限制某個使用者只能FTP不能TELNET?
很簡單,修改此使用者的shell即可。開啟/etc/password,查詢要修改的使用者所對應的記錄,如: floatboat:x:500:500::/home/floatboat:/bin/bash
要禁止floatboat使用者登入,只需要把此行中的“/bin/bash”改為/usr/bin/passwd即可。這樣使用者telnet上伺服器只能修改密碼,而無法直接控制檯。
當然,如果你希望連密碼都不允許此使用者修改,只要把shell改為“/sbin/nologin”即可。
怎麼樣做到限時登入
透過以下三個指令碼程式呼叫at和系統維護功能即可實現限時登入: 在指定的時間執行該指令碼,將在/etc下生成一名為nologin的檔案,登入程式在執行時會自動判斷此檔案是否存,如果存在將不允許使用者登入,內容為:
vi /sbin/login.denied
echo " Login Denied " > /etc/nologin
chmod 700 login.denied
在指定的時間執行該指令碼,刪除/etc/下的nologin檔案以允許使用者登入,內容為:
vi /sbin/login.allowed
if [ -f /etc/nologin ]; then
rm /etc/nologin
fi
chmod 700 login.allowed
編寫一個限制時間的指令碼,內容為:
vi /sbin/login.rollback
if [ -f /sbin/login.denied ]; then
at -f /sbin/login.denid 22:00
fi
if [ -f /sbin/login.allowed ]; then
at -f /sbin/login.allowed 8:00
if
chmod 744 /sbin/login.rollback
建立完成以後,把/sbin/login.rollback指令碼放進crontab中,在每天凌晨執行:
crontab -e
# roll login script
00 1 * * * /sbin/login.rollback
此種設定的功能是:從晚上10:00到第二天早上8:00靜止非root使用者登入,顯示為系統維護狀態。
lilo.conf配置例項
有了這些基礎知識,我們可以很容易地按照自己的意圖配置LILO。請看一個lilo.conf檔案的例子:
boot=/dev/hda #將LILO安裝在MBR。LILO作為主引導管理器
message=/boot/message #註釋為/boot/message
compact #產生一個更小的“map”檔案
map=/boot/map #指定“map”檔案為/boot/map
install=/boot/boot.b
password=zhoudi #設定口令
vga=normal #80x25文字模式
linear #使用“linear”地址
prompt #提示使用者鍵盤輸入
timeout=50 #超時時長為5秒
default=dos #預設引導label為dos的作業系統
#設定Linux
image=/boot/vmlinuz-2.0.34-1
#設定Linux核心引導映像
label=linux #標識為linux
root=/dev/hda1 #設定根檔案系統
read-only #LILO以只讀方式載入根檔案系統
#設定MS-DOS或Windows 95
other=/dev/hda2 #DOS分割槽為第一個IDE硬碟的第二分割槽
label=dos #標識為dos
table=/dev/hda #主裝置為第一個IDE硬碟
#設定SCO UNIX
注意:SCO分割槽必須設為活動(active)分割槽並將LILO安裝在MBR上。
other=/dev/hda3
label=sco
table=/dev/hda
這個例子中,LILO是作為主引導管理器來管理機器上所有作業系統的。LILO也可作為二
級引導管理器,這隻要將“boot”引數改為根分割槽就可做到。例如:
boot=/dev/hda1
以這種方式使用LILO時,Linux根分割槽必須用DOS或Linux的fdisk程式將其設定為活動分割槽,
並且這種方式只對硬碟主分割槽(不是擴充套件或邏輯分割槽)有效。
LILO還可以啟動第二個以上的作業系統。在我的機器上有兩塊希捷硬碟,一塊硬碟為8.4GB,
另一塊為1.2GB,都以LBA模式接在主IDE口上。8.4GB跳線為主盤,1.2GB跳線為從盤,Linux
核心很容易地就將它們辨認出來並能正常使用,1.2GB的硬碟上安裝了MS-DOS 6.22。筆者是
這樣設定lilo.conf的:
disk=/dev/hda
bios=0x80
#由於IDE硬碟存在雙硬碟問題,所以當啟動DOS系統時,會提示“無系統盤或系統盤錯!”,需修改程式如下。
disk=/dev/hdb
bios=0x81
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
linear
prompt
timeout=50
default=dos
image=/boot/vmlinuz-2.2.11-1
label=linux
root=/dev/hda1
read-only
other=/dev/hdb1
label=dos
map-drive = 0x80
to = 0x81
map-drive = 0x81
to = 0x80
#交換兩硬碟主、從順序
table=/dev/hdb
配置好lilo.conf檔案後,在root賬戶下執行lilo命令,新的LILO就被載入系統。
上面第一個例子執行結果如下:
#lilo
Added linux
Added dos*
Added sco
(注:帶*號的表示其為預設作業系統)
為Linux系統設定備份
備份是一項重要的工作,但是很多人沒有去做。一旦由於使用不當造成資料丟失,備份就成了真正的救命者。本文將討論設定備份的策略和如何選擇備份介質,並介紹用於備份的tar和cpio工具。 設定備份策略
設定備份策略和計劃可以增加進行備份的可能性。備份開始前,要確定備份哪些資料、備份的頻率和使用什麼樣的介質進行備份。備份的時候,應該進行完全備份。
備份通常安排在空閒時間進行。在大多數系統中,由於此時使用者數量最少,所以開啟的檔案也最少。由於備份要佔用一些系統資源,執行備份時使用者會發現系統反應遲鈍。
如果Linux計算機只有一個使用者,可以一個星期或一個月對整個系統備份一次。如果有關鍵性的檔案,就應該有計劃地把這些檔案複製到一個可移動的磁碟中。
備份之前,首先要確保正確地設定備份裝置。大多數磁帶備份系統在安裝時可以發現是否正確。系統啟動後,開啟一個終端視窗並且輸入下面的命令:
$dmeg | less
滾動列表,並從中尋找你的磁帶系統的驅動。如果沒有發現,就需要載入一個元件驅動程式。
如果執行Linux伺服器,就要制定一個備份計劃,但這並不意味著每天要對所有的東西都備份。系統中只有一部分東西需要每天備份,下面列出需要備份的專案:
使用者檔案 每天都要對/home目錄中的使用者檔案進行備份。
配置檔案 /etc和/var目錄中的配置檔案不需要頻繁備份,每個星期或每月備份一次即可,主要取決於配置更改的頻繁程度。
程式檔案 /usr和/opt目錄中的程式檔案很少發生變化,安裝後做一次備份即可。通常情況下,程式檔案可方便地從原始安裝盤中恢復。
選擇備份介質
把備份存到哪裡有多種選擇。下面介紹一些可選擇的備份介質:
軟盤 如果要把重要檔案快速備份,或者將其帶到家中,這時軟盤仍舊是一種可選的備份介質。
光碟寫入器 隨著光碟寫入器變得越來越可靠,價格也越來越低,光碟本身也非常便宜。選用此項的一個好處是光碟不容易被損壞,它備份的可靠性很高。
使用光碟寫入器有兩點不利因素:它們速度較慢,並且只能儲存大約650MB。
可重寫的光碟 可重寫光碟驅動器比光碟寫入器要貴得多,工作方式與其類似。但是,這些光碟是可被重寫的,並且它比只能寫一次的光碟貴許多。可重寫光碟其它的特性都與光碟寫入器類似。
Jaz和Zip Zip驅動器很流行,已經成為許多PC機的標準配置,同時它的磁碟和驅動器也都不貴。它一張磁碟可容納100MB的資料,是一種用於快速、可移動備份的很好選擇。
Jaz磁碟可以容納上G位元組的資料,並且使用更先進的技術以獲得更好的表現。Jaz驅動器和Jaz磁碟都比較貴。
Jaz和Zip的缺陷是都容易損壞,並且保持時間相對要短。
磁帶機 磁帶備份裝置是大多數Linux伺服器的標準配置。磁帶是可靠的,並且很少出現錯誤,它幾乎比其它介質儲存時間都要長。
對於點對點工作組網路和中型網路,Travan和高階數字音訊磁帶(DAT)通常是最好的選擇。Travan驅動器經過壓縮可以處理8GB資料,這對於具有5-10個PC機的小型網路來說足夠了。DAT驅動器有更好的表現,可以處理24GB的資料。DAT驅動器比Travan驅動器昂貴,但它磁帶的價格要比Travan QIC磁帶卷便宜。
高階磁帶 選擇高階磁帶可能是相當貴的。與Travan或DAT相比,這種驅動器有更大的容量和更高的速度。三種廣泛使用的驅動器型別是:Sony Advanced Intelliget Tape ( AIT ) 、Quantum Digital Linear Ta p e ( DLT )和Exabyte Mammoth 8mm。它們最少可以容納20GB的不壓縮資料,並且具有更高的資料傳輸能力。
用於備份的tar
tar工具是以前備份檔案的可靠方法,幾乎可以工作於任何環境中,Linux老使用者一般都信賴它。
Linux中以.tar結尾的檔案都是用tar建立的。它的使用超出了單純的備份,可用來把許多不同檔案放到一起組成一個易於分開的檔案。tar是從Tape ARchiver備份工具起步的。
包含在Linux中的GNU tar工具簡便易用,包含了一個用來壓縮的選項,且支援不斷增加的備份。
tar是一個命令列的工具,沒有圖形介面。使用Konsole或Kvt開啟一個終端視窗,接下來是一個簡單的備份命令:
$tar cvf - /home > /temp/backup.tar
這個命令在/tmp目錄中建立一個backup.tar的檔案,/home目錄中所有內容都包含在其中。
接下來可以把tar檔案複製到備份磁碟中。使用簡單備份時,如果要使用壓縮功能,改為下面命令:
$tar czvf - /home > /tmp/backup.tgz
上面副檔名. tgz指出這是一個壓縮檔案。
下一個例子可以用來直接備份到一個安裝好的Jaz驅動器中,但這樣做要確定有足夠的空間:
$tar czvf /mnt/jaz/backup.tgz - /home
對於一個磁帶驅動器,使用裝置名稱:
$tar czvf /dev/st0/backup.tgz - /home
如果有一個備份非常大,可以使用多卷選項。但是,這樣做就不能使用壓縮。當第一個磁碟或磁帶填滿後,tar將提示插入另一張:
$tar cvMf /dev/st0/5mar2000.tar -home
要恢復備份使用下面的命令,以Jaz磁碟為例:
$tar xzvf /mnt/jaz/5mar2000.tgz /home
表1列出了tar主要功能引數。此外還有很多可選引數,本文不再詳述。
表1 tar主要功能引數
引數 描述
-A 附加到另一個tar存檔的後面
-C 建立一個新的tar存檔
-d 找出tar存檔和檔案間的差別,用於一個文件的驗證
--delete 從存檔刪除檔案,磁碟備份不能選用
-r 把檔案附加到tar存檔的後面
-t 列出tar存檔的內容
-u 只把比tar文件中的檔案新的檔案附加到存檔中
-x 解開一個tar存檔
tar備份可以用crontab工具設定成基於時間的有規律地執行。例如,每晚2點把/home目錄備份到SCSI磁帶驅動器中,只要將下面語句新增到root的crontab中即可:
00 02 * * * tar cvf /dev/st0/homefiles.tar - /home
用於備份的cpio
GNU cpio工具像tar一樣從命令提示行啟動程式。與tar相比cpio更復雜,但是也更為可靠。因為如果一個tar檔案中某處有一個壞塊,就不能對備份檔案的其它部分進行訪問,而使用cpio,只有壞塊不能被訪問。
cpio建立一個稱為copy-out mode的備份,備份存檔中包含了檔案和所有者、時間及訪問許可等資訊。cpio需要一個假定要備份的檔案列表。建立列表的一個最方便的方法就是使用ls命令。例如,要把/home目錄備份到SCSI磁帶裝置中,輸入下面的命令:
$ls /home | cpio -o > /dev/st0
也可以使用find命令。它包括許多選項可以用來消減被存檔檔案的數量。例如,下面的命令對所有在上一個2 4小時內修改過的檔案進行存檔:
$find /home -mtime 1 -type f -print | cpio -o > /dev/st0
copy - in模式把檔案從備份存檔中解出來。下面的命令會恢復前兩個備份例子中的所有檔案:
$cpio -i < /dev/st0
你也可以對cpio的備份進行計劃,用crontab工具設定成基於任何時間的有規律地執行。例如,要在每晚2點把/ home目錄備份到SCSI磁帶驅動器中,把下面的語句新增到root的crontab檔案中即可:
00 02 * * * ls /home | cpio -o > /dev/st0
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-962238/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux使用基本知識:CORE檔案(轉)Linux
- 儲存_硬碟_小知識_轉硬碟
- 關於SFV的小知識(轉)
- [轉]Linux基礎知識Linux
- gcc編譯器小知識FAQ(轉)GC編譯
- 知識小匯
- iOS小知識iOS
- canvas小知識Canvas
- IPC小知識
- 感冒小知識
- baota小知識
- 小知識:使用errorstack定位特定問題Error
- UNICODE、DBCS的一點小知識 (轉)Unicode
- 幾個shell程式設計小知識(轉)程式設計
- Linux小知識翻譯-「路徑設定」Linux
- pcl常用小知識
- java小知識點Java
- Python小知識Python
- js小知識點JS
- Spring小知識Spring
- Flex知識小結Flex
- 小知識點1
- JavaSE小知識(二)Java
- 前端小知識點前端
- mongo 小知識點Go
- javascript小知識點JavaScript
- PHP小知識點PHP
- Oracle知識小記Oracle
- 小知識總結
- SAP GUI小知識GUI
- linux知識知識點總結Linux
- linux 知識Linux
- 運營知識與管理知識(轉)
- 新手知識:認識(轉)
- 【JAVA】- 知識點小結Java
- promise知識點小結Promise
- Flutter小知識--what is key?Flutter
- Vue重要知識小結Vue