1、建立20G的檔案系統,塊大小2048,檔案系統ext4,卷标TEST,要求此分區開機自動挂載至/tetsing目錄,且預設挂載屬性為acl
2、建立5G檔案系統,卷标HUGE,要求此分區開機自動挂載至/mogdata,檔案系統類型ext3
3、寫一個腳本,完成如下功能:
利用此前學到的if語句完成
(1) 列出目前系統識别的所有磁盤裝置
(2) 如果磁盤數量為1,則顯示其磁盤空間資訊
否則,顯示最後一個磁盤上的空間使用資訊。
(1) 讓使用者輸入一個磁盤
(2) 存在,則顯示其磁盤空間資訊
否則,顯示Fool.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<code>1、顯示所有磁盤塊及分區資訊</code>
<code>[root@localhost scripts]</code><code># fdisk -l /dev/[sh]d[a-z]</code>
<code>2、根據 2610 cylinders 和End 判斷能否分區,并确認分區</code>
<code>3、管理分區</code>
<code>[root@localhost scripts]</code><code># fdisk /dev/sdb</code>
<code> </code><code>n,p, , +20G, w</code>
<code>4、更新核心識别分區表</code>
<code>[root@localhost scripts]</code><code># partx -a /dev/sdb</code>
<code>5、格式化分區</code>
<code>[root@localhost scripts]</code><code># mke2fs -t ext4 -b 2048 -L 'TEST' /dev/sdb2</code>
<code>6、檢視預設挂載屬性</code>
<code>[root@localhost scripts]</code><code># dumpe2fs -h /dev/sdb2</code>
<code>Default </code><code>mount</code> <code>options: (none)</code>
<code>7、調整預設挂載屬性acl</code>
<code>[root@localhost scripts]</code><code># tune2fs -o acl /dev/sdb2</code>
<code>8、檢視預設挂載屬性</code>
<code>Default </code><code>mount</code> <code>options: acl </code><code>##嘿嘿</code>
26
27
28
29
30
31
32
33
34
35
36
37
38
<code>1、檢視sdb的分區表</code>
<code>[root@localhost scripts]</code><code># kpartx -l /dev/sdb</code>
<code>sdb1 : 0 20980827 </code><code>/dev/sdb</code> <code>63</code>
<code>sdb2 : 0 224910 </code><code>/dev/sdb</code> <code>20980890</code>
<code>2、破壞分區表</code>
<code>[root@localhost scripts]</code><code># dd if=/dev/zero of=/dev/sdb bs=512 count=1</code>
<code>1+0 records </code><code>in</code>
<code>1+0 records out</code>
<code>512 bytes (512 B) copied, 0.00428946 s, 119 kB</code><code>/s</code>
<code>[root@localhost scripts]</code><code># </code>
<code>3、管理sdb</code>
<code>n,p,1, ,+5G,w</code>
<code>4、讓核心重讀分區表</code>
<code>5、格式化</code>
<code>[root@localhost scripts]</code><code># mkfs.ext2 -L 'HUGE' /dev/sdb1</code>
<code>[root@localhost scripts]</code><code># tune2fs -O has_journal /dev/sdb1</code>
<code>[root@localhost scripts]</code><code># blkid /dev/sdb1</code>
<code>/dev/sdb1</code><code>: LABEL=</code><code>"HUGE"</code> <code>UUID=</code><code>"1b4a4a93-20a1-439e-b40b-50989cf21fed"</code> <code>SEC_TYPE=</code><code>"ext2"</code> <code>TYPE=</code><code>"ext3"</code>
<code>6、開機挂載至</code><code>/mogdata</code>
<code>1)建立目錄</code>
<code>[root@localhost scripts]</code><code># mkdir /mogdata</code>
<code>2)檢視是否建立</code>
<code>[root@localhost scripts]</code><code># ls -ld /mogdata</code>
<code>drwxr-xr-x 2 root root 4096 Aug 10 16:29 </code><code>/mogdata</code>
<code>3)配置fstab</code>
<code>[root@localhost scripts]</code><code># vim + /etc/fstab</code>
<code>UUID=</code><code>"1b4a4a93-20a1-439e-b40b-50989cf21fed"</code> <code>/mogdata</code> <code>ext4 defaults,</code><code>sync</code><code>,noatime,nosuid 2 3</code>
<code> </code><code>2:隔一天備份</code>
<code> </code><code>3:檢測次序</code>
39
40
41
42
43
44
45
46
<code>1、寫腳本</code>
<code>[root@localhost scripts]</code><code># vim test1.sh</code>
<code>#!/bin/bash</code>
<code># Version: 0.0.2</code>
<code># Author: Lcc.org</code>
<code># Desc: 利用此前學到的if語句完成 (1) 列出目前系統識别的所有磁盤裝置(2) 如果磁盤數量為1,則顯示其磁盤空間資訊 否則,顯示最後一個磁盤上的空間使用資訊。</code>
<code># bash弱類型:不用定義,直接指派.預設為字元型.參與運算隐式轉換</code>
<code>diskfile=`</code><code>ls</code> <code>/dev/</code><code>[sh]d[a-z]`</code>
<code>COUNT=$(</code><code>ls</code> <code>/dev/</code><code>[sh]d[a-z] | </code><code>wc</code> <code>-l)</code>
<code>#數值判斷: -eq,-ne,-lt,-le,-gt,-ge</code>
<code>if</code> <code>[ $COUNT -</code><code>eq</code> <code>1 ]</code>
<code>then</code>
<code> </code><code>#顯示指定裝置的狀态資訊</code>
<code> </code><code>fdisk</code> <code>-l $diskfile</code>
<code> </code><code>#自定義狀态傳回值:在bash腳本中,一旦遇到exit指令就會終止腳本,退出狀态碼為exit後的數值。</code>
<code> </code><code>exit</code> <code>0</code>
<code>else</code>
<code> </code><code>#以空白分割,由-n 後#指定的字段作為每行字段的數量</code>
<code> </code><code>fdisk</code> <code>-l `</code><code>echo</code> <code>$diskfile | </code><code>xargs</code> <code>-n1 | </code><code>tail</code> <code>-1`</code>
<code>fi</code>
<code>2、測試文法(沒有資訊就是最好的資訊)</code>
<code>[root@localhost scripts]</code><code># bash -n test1.sh</code>
<code>3、給予執行權限</code>
<code>[root@localhost scripts]</code><code># chmod a+x test1.sh</code>
<code>4、确認執行結果</code>
<code>[root@localhost scripts]</code><code># ls -ld test1.sh </code>
<code>-rwxr-xr-x 1 root root 450 Aug 10 16:44 test1.sh</code>
<code>5、運作腳本(顯示的為最後一個)</code>
<code>[root@localhost scripts]</code><code># ./test1.sh</code>
<code>Disk </code><code>/dev/sdb</code><code>: 21.5 GB, 21474836480 bytes</code>
<code>255 heads, 63 sectors</code><code>/track</code><code>, 2610 cylinders</code>
<code>Units = cylinders of 16065 * 512 = 8225280 bytes</code>
<code>Sector size (logical</code><code>/physical</code><code>): 512 bytes / 512 bytes</code>
<code>I</code><code>/O</code> <code>size (minimum</code><code>/optimal</code><code>): 512 bytes / 512 bytes</code>
<code>Disk identifier: 0xf6885d69</code>
<code> </code><code>Device Boot Start End Blocks Id System</code>
<code>/dev/sdb1</code> <code>1 654 5253223+ 83 Linux</code>
<code>[root@localhost scripts]</code><code># cat test2.sh</code>
<code># Version: 0.0.3</code>
<code># Desc:.................</code>
<code>read</code> <code>-t 5 -p </code><code>'Enter a special file: '</code> <code>diskfile</code>
<code> </code><code>[ ! -n </code><code>"$diskfile"</code> <code>] && </code><code>echo</code> <code>"あなたははしごそれを取る方法を知っていますか?"</code> <code>&& </code><code>exit</code> <code>1</code>
<code>if</code> <code>fdisk</code> <code>-l | </code><code>fgrep</code> <code>"Disk $diskfile"</code> <code>&> </code><code>/dev/null</code>
<code> </code><code>echo</code> <code>"Vitis vinifera L."</code>
<code> </code><code>exit</code> <code>250</code>
<code>2、運作</code>
<code>1)給空白</code>
<code>[root@localhost scripts]</code><code># bash test2.sh </code>
<code>Enter a special </code><code>file</code><code>: あなたははしごそれを取る方法を知っていますか?</code>
<code>2)不空白,非裝置</code>
<code>Enter a special </code><code>file</code><code>: lala </code>
<code>Vitis vinifera L.</code>
<code>3)不空白,裝置</code>
<code>Enter a special </code><code>file</code><code>: </code><code>/dev/sdb</code>
<code></code>
本文轉自 lccnx 51CTO部落格,原文連結:http://blog.51cto.com/sonlich/1955194,如需轉載請自行聯系原作者