1、IBM Linux 應用體驗營-RHEL 4,2005/11/28 IBM Taiwan 林彥明(Alex YM Lin),2,Agenda,kickstart 自動安裝檔案系統管理LVM管理軟體管理(rpm)系統及網路設定at及cron工作排程管理使用者管理及Quota,3,kickstart 自動安裝,4,kickstart自動安裝,建置Installation Server建置NFS、FTP、HTTP Server建置DHCP Server(Optional)測試網路安裝產生ks.cfg測試自動安裝,5,Installataion Server and share RHEL4 sourc
2、e,Installation Server 放入 RHEL4 CD1 mount /media/cdrom cp af /media/cdrom/images /var/ftp/pub cp af /media/cdrom/RedHat /var/ftp/pub 放入CD2CD4重複上述動作 ln s /var/ftp/pub /var/www/html/pub NFS Server vi /etc/exports /var/ftp/pub *(ro,sync) service nfs start FTP Server service vsftpd start HTTP Server serv
3、ice httpd start,6,DHCP Server,DHCP Server(Optional) rpm qa |grep dhcp rpm ql dhcp cp /usr/share/doc/dhcp-3*/dhcpd.conf.sample /etc/dhcpd.conf service dhcpd startTest Installation Server Install RHEL4 server put boot.iso boot: prompt and press Enter or put RHEL4 CD1boot: prompt and input linux askmet
4、hod,7,Network Installation,8,Installation Method,Choose a Language Keyboard Type- Installation Method-NFS image,9,NFS server and Directory,Configure TCP/IP DHCPChoose NFS server name and Red Hat Enterprise Linux directory,10,Create ks.cfg,法一:modify /root/ks.cfg.anacoda法二: ksconfig GUI Tool(system-co
5、nfig-kickstart)cp ks.cfg to /var/www/html/ks.cfg,11,測試kickstart自動安裝,Put boot.iso or RHEL4 CD1 boot: linux ks=http:/installation server ip address/ks.cfg,12,檔案系統管理,13,檔案系統管理,Linux檔案系統原理如何建立ext2/ext3檔案系統如何將ext2檔案系統轉換為ext3檔案系統增加Swap分割區增加Swap檔案,14,ext3 檔案系統,RedHat Enterprise 預設的檔案系統為日誌式的ext3檔案系統,ext3是所謂
6、的Journaling Filesystem(日誌式檔案系統),它的主要開發者是任職於RedHat的Dr. Stephen Tweedie,基本上ext3檔案系統是在傳統的ext2檔案系統中加上記錄磁碟活動的日誌機制,所以當系統有不正常關機的情況,它的恢復速度會比傳統的ext2檔案系統來得快。,15,Linux ext2檔案系統原理(1),Block:對分割區進行格式化的動作,可以想成其實是對分割區劃格子,每個格子就是檔案系統存取資料的最小單位,稱為Block。一個Block通常由一個或數個sector(sector是硬碟實際存取資料的最小單位)所構成,它的大小通常為 n*512 bytes,
7、而且每多個Block組成一個group。Super Block:那什麼是Super Block?各位想想看,Linux檔案系統一定得記錄這個分割區總共切成多少個Block,有多少個inode,巳用掉多少個Block、多少個inode.等資訊。Linux檔案系統將這些資訊存放於第一個Block,這個Block就稱為Super Block。因為這個Block存放檔案系統的重要資訊,如果損毀將導致檔案系統無法正常存取。所以系統每間隔某些block便會備份Super Blockinode: Linux檔案系統的目錄結構就像一個二維陣例,它會對應到相關的inode記錄。每個檔案系統有一定數量的inode
8、構成inode Table,inode數量是在格式化分割區時就巳決定了。常聽到的一個inode,其實就是inode Table的一筆Record,當我們建立了一個新檔案(或目錄),就會用掉inode Table中的一筆Record,這筆Record記錄了檔案的大小、Link數目(有多少檔案指向同一個indoe記錄)、檔案的Owner、Group、建立時間、修改時間還記錄實際檔案內容存放於何處的指標(loc)。,16,Linux ext2檔案系統原理(2),17,如何建立ext2/ext3 File system,1.使用fdisk建立分割區。2.使用mke2fs將分割區格式化為ext2或ext
9、3檔案系統格式。3.使用e2label將該分割區加上Label(非必要)。4.建立掛載點(mount point)。5.增加該分割區到 /etc/fstab檔案中。,18,演練:建立100MB ext2檔案系統,fdisk /dev/hda (or fdisk /dev/sda) n 新增分割區 First cylinder 直接按下Enter鍵,採用預設值。 Last cylinder or +size or +sizeM or +sizeK (1050-1174, default 1174): +100M Command (m for help): w 將異動寫入Partition Tab
10、lepartprobemke2fs -b bytes -i -N -L -j /dev/hda6e2label /dev/hda# (or sda#) /data (optional)mkdir /datamount /dev/hda# (or sda#) /datavi /etc/fstab LABEL=/data /data ext2 defaults 1 2 或/dev/hda# /data ext2 defaults 1 2reboot,19,演練:將ext2檔案系統轉換為ext3檔案系統,df h cp r /boot /data df htune2fs -j /dev/hda# (
11、 or /dev/sda# )vi /etc/fstab LABEL=/data /data ext3 defaults 1 2 或/dev/hda# /data ext3 defaults 1 2,20,Swap 空間,在Linux上的Swap 空間就是MS Windows中的虛擬記憶體,是在當實體記憶體(RAM)用完時才會使用到,假如系統需要更多的記憶體資源,而實體記憶體已經用完,記憶體上不活動的頁面將會被移到swap空間。雖然Swap空間可以幫助系統增加一小部份容量的RAM,不過不能將它當作更多記憶體的替代品。Swap空間是位於硬碟上,它的存取速度比起實體記憶體慢了很多。Swap空間可以
12、是一個既定的Swap分割區(建議使用)、一個 swap 檔案,或為Swap分割區與Swap檔案的結合,21,演練:新增100MB Swap分割區,fdisk /dev/hda (or fdisk /dev/sda) n 新增分割區 First cylinder 直接按下Enter鍵,採用預設值。 Last cylinder or +size or +sizeM or +sizeK (1050-1174, default 1174): +100M Command (m for help): t Hex code (type L to list codes): 82 Command (m for
13、help): w 將異動寫入Partition Tablepartprobemkswap /dev/hda#vi /etc/fstab /dev/hda# swap swap defaults 0 0swapon s swapon a swapon -s,22,演練:新增30MB Swap File,Swap檔案是為了解決燃眉之急dd if=/dev/zero of=/swapfile bs=1M count=30 mkswap /swapfile swapon sswapon /swapfile swapon -s,23,刪除新增的檔案系統,刪除ext2/ext3檔案系統 umount /d
14、ata fdisk /dev/hda d delete partition w partprobe刪除Swap分割區 swapoff /dev/hda# fdisk /dev/had d delete partition w partprobe,24,LVM管理,25,LVM目的,動態放大檔案系統動態放大硬碟,26,LVM 概念,LVM機制原先為IBM AIX特有的硬碟管理機制,它的最主要的目的是為了克服Unix作業系統規劃硬碟空間給某個檔案系統之後,就無法再改變此檔案的大小的限制。例如:各位可能當初在安裝系統時,認為 /home只要500MB就足夠,後來因為使用者愈來愈多,原先規劃的空間可能
15、就不敷使用。傳統的解法即使現有的硬碟還有剩餘的空間,你也無法馬上利用這些空間,還是得將原 /home的資料備份出來,重新切割一塊更大的分割區,再格式化成檔案系統,再將原有的資料還原回去。但LVM利用在實體的硬碟和檔案系統加一層Logical的對映機制來達到動態放大檔案系統的功能,進而解決傳統Unix所面臨的問題。使用LVM,硬碟中的分割區必須加入Logical Volume Group邏輯磁區群組(簡稱 VG),這種分割區在LVM中稱為Physical Volume實體磁區(簡稱PV)。各位可以把VG想成是一個大硬碟,然後再從其中切出一塊空間Logical Volume邏輯磁區(簡稱 LV)然
16、後對應至系統的檔案系統。,27,LVM運作機制(1),28,LVM運作機制(2),29,LVM重要名詞,30,LVM相關指令,31,演練:建立LVM的檔案系統,32,演練:動態放大檔案系統,RHEL 3 df h umount /data e2fsadm L +10M /dev/rootvg/lv01 mount /dev/rootvg/lv01 /data df -hRHEL 4 df h lvextend L +10M /dev/rootvg/lv01 ext2online /dev/rootvg/lv01 df hRHEL 4無需umount filesystem,33,演練:動態放大V
17、G(虛擬硬碟),vgdisplayfdisk /dev/hda add new 0x8e 分割區 /dev/hda11 (50MB)pvcreate /dev/hdavgextend rootvg /dev/hdavgdisplay rootvg,34,軟體管理,35,軟體管理(rpm),rpm 簡介安裝(-ivh, -Uvh, -Fvh)移除(-e)查詢(-q),36,rpm簡介,RPM Package Manager(RPM)是一種開放的套件包裝系統,每一個人都可以使用,可以使用在 Red Hat Enterprise Linux 以及其他的Linux與UNIX系統。Red Hat, In
18、c. 鼓勵其他的廠商使用RPM在他們自己的產品中。可以在遵守 GPL 的條款下自由散佈 RPM。GUI工具:system-config-packages相關網站: http:/ ftp:/,37,安裝(-ivh, -Uvh, -Fvh),38,移除與查詢,移除 rpm e 套件名稱查詢,39,系統及網路設定,40,系統及網路設定,GUI工具:nautilus, system-config-*設定 IP Adress, Gateway, .:system-config-network, netconfig, vi,41,nautilus 檔案總管(1),Edit Preferences Beha
19、vior Always open in browser windows Information Tree,42,nautilus檔案總管(2),43,system-config-display,init 3rm /etc/X11/xorg.confsystem-config-display,44,網路設定,system-config-network(neat) service network restartnetconfig service network restart相關檔案 /etc/hosts /etc/sysconfig/network /etc/resolv.conf /etc/s
20、ysconfig/network-scripts/ifcfg-eth#,45,z/VMIPL,at與cron排程管理,46,at與cron排程管理,在 Linux中,可以要求系統的工作在一個指定的時間、日期,或當系統平均負載低於指定的數據時自動執行某特定工作。除root可以使用自動的工作管理來執行定期的備份、監視系統與執行自訂的程式碼外,一般使用者亦可利用此機制來要求系統自動化執行工作。Linux 中最主要的自動工作管理程式為at及cron。at:當你有要排定在某一個時間來執行工作的需求時,你可以利用at來幫你完成這個需求。 cron:是一種系統程式(daemon),它可以依據所設定的時間、日
21、期、月份、星期幾,以及星期的結合來排程重覆性工作的執行。,47,at和cron比較表,48,at語法,at 語法如下: at 設定欲執行工作2 設定欲執行工作2 設定欲執行工作3 Ctrl+D 結束at編輯 atq 查詢 atrm job numberat練習 :利用at設定3分鐘後,執行touch rhel4;5分鐘後,執行touch neo。並練習利用atrm刪除touch neo工作。,49,at的權限控制,50,cron語法(1),crontab e系統預設會呼叫vi來編輯使用者的crontab minute hour day month dayofweek command 分 時 日
22、 月 星期 指令 分:從0到59的任何整數 時:從0到23的任何整數 日期:從1到31的任何整數 月份:從1到12的任何整數(或者是月份名稱的縮寫,如jan、feb等)。 星期:從0到7的任何整數,0或7代表星期日,51,cron語法(2),52,演練,設定alex使用者每天晚上11:00定時執行/bin/echo “Good Night , Alex” su alex crontab e 0 23 * * * /bin/echo “Good Night, Alex” crontab l Check mail,53,cron權限控制,54,cron應用(1),請試著每半小時收集free及vms
23、tat指令的輸出,將其結果根據日期存放至/var/log/目錄下,檔名為yyyy-mm-dd.log,並於每天早上9:00早上將前一天所收集的log檔以附加檔案的方式寄給特定的E-mail。 # vi /root/collect-data.sh(撰寫收集資料的shell script ) #!/bin/bash #指定log 檔名為yyyy-mm-dd.log LOGFILE=/var/log/date +%Y-%m-%d.log date $LOGFILE free $LOGFILE echo $LOGFILE vmstat $LOGFILE echo $LOGFILE # chmod 75
24、5 /root/collect-data.sh,55,cron應用(2),vi /root/send-data.sh (編寫發mail的shell script ) #!/bin/bash #date +%Y-%m-%d可得今天的日期 #date +%Y-%m-%d -date “-1 day“ 可得前一天的日期 FILE=/var/log/date +%Y-%m-%d -date “-1 day“.log #mutt語法:mutt a 附加檔 s 信件標題 E-mail echo “信件內文”| mutt a $FILE s “report” alexcrontab e (編寫crontab
25、 ) #每半小時執行/root/collect-data.sh */30 * * * * /root/collect-data.sh #每天早上9:00早上將前一天的log檔以附加檔案的方式送出 0 9 * * * /root/send-data.sh,56,使用者管理及Quota,57,使用者管理,常用帳號管理指令及相關檔案大量建立帳號Quota,58,常用帳號管理指令及相關檔案,59,大量建立帳號,1.建立使用者清單users.list 2.撰寫大量建立帳號的shell script:batch-add-users.shusers.lst內容如下: user01 1234 user02 1
26、234 user03 1234 user04 1234batch-add-users.sh內容如下 #!/bin/bash for i in awk print $1 users.list douseradd $igrep “” userslist | passwd -stdin $ichage -d 0 $i done,60,Quota,步驟1:修改/etc/fstab檔案選擇欲設定Quota的檔案系統步驟2:重新掛載檔案系統(mount o remount)步驟3:初始化Quota資料庫(qutotacheck 指令)步驟4:啟動Quota Daemon(qutotaon 指令)步驟5:編
27、輯使用者或群組Quota規則測試,61,演練:針對User設定Quota,限制系統上使用者alex對 /home檔案系統可使用的空間4MB至5MB之間,inode 數在60-100個之間。並把alex的Quota Policy套用至byan,eric,paul另外三個使用者。vi /etc/fstab LABEL=/home /home ext3 defaults,usrquota 1 2 mount o remount /home quotacheck c /home quotaon /home edquota alex /dev/hda5 block使用現況 4096 5120 inode使用現況 60 100 測試 edquota p alex bryan eric paul repquota -a,62,參考書籍:RedHat Enterprise Linux 管理指南,63,