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,如需转载请自行联系原作者