一、建立一個10G分區,並格式爲ext4文件系統;
node
(1) 要求其block大小爲2048, 預留空間百分比爲2, 卷標爲MYDATA, 默認掛載屬性包含acl;linux
#]tune2fs -m 2 /dev/sda3 [root@localhost ~]# mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sda3 mke2fs 1.42.9 (28-Dec-2013) 文件系統標籤=MYDATA OS type: Linux 塊大小=2048 (log=1) 分塊大小=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 655360 inodes, 5242880 blocks 104857 blocks (2.00%) reserved for the super user 第一個數據塊=0 Maximum filesystem blocks=273678336 320 block groups 16384 blocks per group, 16384 fragments per group 2048 inodes per group Superblock backups stored on blocks: 16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 2048000, 3981312 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;vim
[root@localhost ~]# mkdir -pv /data/mydata mkdir: 已建立目錄 "/data" mkdir: 已建立目錄 "/data/mydata" [root@localhost ~]# mount /dev/sda3 /data/mydata/
二、建立一個大小爲1G的swap分區,並建立好文件系統,並啓用之;
bash
[root@localhost ~]#mkswap /dev/sda4 [root@localhost ~]#swapon /dev/sda4
三、寫一個腳本網絡
(1)、獲取並列出當前系統上的全部磁盤設備;app
(2)、顯示每一個磁盤設備上每一個分區相關的空間使用信息;less
#!/bin/bash # echo "當前系統磁盤設備有:" fdisk -l | grep -o "^Disk /dev/[sh]d[a-z]" | cut -d' ' -f2 # 顯示每一個磁盤的分區信息 for i in $(fdisk -l | grep -o "^Disk /dev/[sh]d[a-z]" | cut -d' ' -f2);do echo "============$i 磁盤分區信息===========" fdisk -l $i echo done
腳本測試dom
[root@localhost script]# bash getdisk.sh 當前系統磁盤設備有: /dev/sda /dev/sdb ============/dev/sda 磁盤分區信息=========== Disk /dev/sda: 85.9 GB, 85899345920 bytes 255 heads, 63 sectors/track, 10443 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0004d0da Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 10444 83373056 8e Linux LVM ============/dev/sdb 磁盤分區信息=========== Disk /dev/sdb: 107.4 GB, 107374182400 bytes 255 heads, 63 sectors/track, 13054 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x266ebb54 Device Boot Start End Blocks Id System /dev/sdb1 1 1306 10490413+ 83 Linux /dev/sdb2 1307 1332 208845 82 Linux swap / Solaris
四、總結RAID的各個級別及其組合方式和性能的不一樣;ide
RAID 全稱 Redundant Arrays f Independent Disks,目前經常使用RAID級別有5種:RAID0、一、四、五、六、10。工具
RAID0:提供了IO性能擴展能力,讀寫性能獲得提高。
缺點:無容錯能力,一塊磁盤損壞,其餘磁盤將受影響。
組合方式:經過2塊及以上磁盤組成可用空間爲N*min(S1,S2,...)磁盤。
RAID1:讀性能提高,寫性能略有降低,有冗餘能力
組合方式:2塊及以上磁盤組成可用空間爲min(S1,S2,...)
RAID4:讀寫性能獲得提高,同時擁有冗餘能力
組合方式:兩塊磁盤存儲數據,第三存儲前兩塊磁盤按位異或的結果。
如:DISK1存儲:1101;DISK2存儲:0110;DISK3存儲:1101異或0110=>1011
RAID5:讀寫性能提高,有1塊磁盤容錯能力。與RAID4不一樣的是,在每塊磁盤上都有chuk。
組合方式:最少3塊磁盤數,組成可用空間:(N-1)*min(S1,S2,...)磁盤
RAID6:讀寫性能提高,有2塊磁盤容錯能力。比RAID5多一塊校驗盤
組合方式:最少4塊磁盤數,組成可用空間:(N-2)*min(S1,S2,...)磁盤
RAID10:讀寫性能提高,存儲數據先分割,後存儲到兩塊磁盤組成的RAID1的鏡像中
有容錯能力,每組RAID1組成的鏡像自多隻能壞一塊磁盤
組合方式:最少4塊磁盤數,組成可用空間:N*min(S1,S2,...)/2磁盤
五、建立一個大小爲10G的RAID1,要求有一個空閒盤,並且CHUNK大小爲128k;
一、建立3塊10G空閒盤,並調整格式爲fd
[root@localhost ~]# fdisk /dev/sdb Command (m for help): n Partition number (1-4): 1 First cylinder (1-13054, default 1): Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): +10G Command (m for help): t Partition number (1-4): Value out of range. Partition number (1-4): 1 Hex code (type L to list codes): fd Changed system type of partition 1 to fd (Linux raid autodetect)
二、用mdadm工具建立RAID1
-C:指明建立的磁盤 md0
-n 2: 使用兩塊設備來建立
-l 1: 指明建立RAID級別爲RAID1
-c 128: 指明CHUNK大小爲128
-x 1: 指明空閒盤數爲1
[root@localhost ~]# mdadm -C md0 -n 2 -l 1 -c 128 -x 1 /dev/sdb{1,2,3} mdadm: /dev/sdb1 appears to contain an ext2fs file system size=10490412K mtime=Mon Feb 27 13:44:42 2017 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? Continue creating array? (y/n) y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md/md0 started.
三、mdadm -D 參數顯示建立RAID的詳細信息
[root@localhost ~]# mdadm -D /dev/md/md0 /dev/md/md0: Version : 1.2 Creation Time : Sun Mar 5 15:45:56 2017 Raid Level : raid1 Array Size : 10482176 (10.00 GiB 10.73 GB) Used Dev Size : 10482176 (10.00 GiB 10.73 GB) Raid Devices : 2 Total Devices : 3 Persistence : Superblock is persistent Update Time : Sun Mar 5 15:46:29 2017 State : clean, resyncing Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Resync Status : 11% complete Name : localhost.localdomain:md0 (local to host localhost.localdomain) UUID : 50c34387:f13ce1b2:1087d348:1fe1ebef Events : 1 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 18 1 active sync /dev/sdb2 2 8 19 - spare /dev/sdb3
六、建立一個大小爲4G的RAID5設備,chunk大小爲256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,並且不更新訪問時間戳,且支持acl功能;
一、建立3塊空間爲2G的分區,並調整類型爲fd,建立過程同上。
二、建立RAID5
[root@localhost ~]# mdadm -C /dev/md1 -l 5 -n 3 -c 256 -a yes /dev/sdb{5,6,7} mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md1 started. [root@localhost ~]# mdadm -D /dev/md1 /dev/md1: Version : 1.2 Creation Time : Sun Mar 5 16:05:48 2017 Raid Level : raid5 Array Size : 4204544 (4.01 GiB 4.31 GB) Used Dev Size : 2102272 (2.00 GiB 2.15 GB) Raid Devices : 3 Total Devices : 3 Persistence : Superblock is persistent Update Time : Sun Mar 5 16:07:35 2017 State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 256K Name : localhost.localdomain:1 (local to host localhost.localdomain) UUID : ea6f54f2:c745274e:f56132bc:a84d4cad Events : 18 Number Major Minor RaidDevice State 0 8 21 0 active sync /dev/sdb5 1 8 22 1 active sync /dev/sdb6 3 8 23 2 active sync /dev/sdb7
#] mkfs.ext4 /dev/md1 #格式化爲ext4文件系統; #建立目錄 /backup ]# mkdir /backup #修改配置文件,設置開機自動掛載至/backup; ]# echo "/dev/md1 /backup ext4 defaults,noatime,acl 0 0" >>/etc/fstab
七、寫一個腳本
(1) 傳遞兩個以上字符串看成用戶名;
(2) 建立這些用戶;且密碼同用戶名;
(3) 總結說明共建立了幾個用戶;
#!/bin/bash # addu.sh # 建立多個用戶,並設置用戶名與密碼相同 # 腳本接受至少2個參數做爲用戶名 # declare -i count=0 # 重定向輸出文件描述符 exec 3>$1 exec 3>&2 exec 1>/dev/null exec 2>/dev/null # # 檢查腳本參數個數 if [ $# -ge 2 ];then for user in $@;do # 判斷用戶是否存在,如不存在,則添加用戶,並設置密碼與用戶名相同 if ! id $user;then useradd $user && echo $user | passwd --stdin $user && (( count++ )) fi done echo "成功添加用戶$count個。" >&3 else echo "至少需傳遞兩個參數做爲用戶名" >&3 fi # 恢復重定向文件描述符 exec 1>&3 exec 2>&3 # 關閉建立的文件描述符 exec 3>&- ~
測試腳本: [root@localhost script]# bash addu.sh user1 至少需傳遞兩個參數做爲用戶名 [root@localhost script]# bash addu.sh user1 user2 成功添加用戶2個。 [root@localhost script]# bash addu.sh user1 user2 user3 成功添加用戶1個。 [root@localhost script]# bash addu.sh user1 user2 user3 成功添加用戶0個。 [root@localhost script]#
八、寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;
[root@localhost script]# vim cnt.sh #!/bin/bash # cnt.sh # 統計/etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab # 以#開頭行數之和,以及總空白行 declare -i count1=0 declare -i count2=0 file="/etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab" for f in $file;do if [ -f $f ];then count1=$(grep '^#' $f | wc -l) count2=$(grep '^$' $f | wc -l) echo "$f 文件以#開頭有:$count1 行;空白行爲:$count2" fi done
測試腳本:
[root@localhost script]# bash cnt.sh /etc/rc.d/rc.sysinit 文件以#開頭有:44 行;空白行爲:99 /etc/rc.d/init.d/functions 文件以#開頭有:42 行;空白行爲:76 /etc/fstab 文件以#開頭有:7 行;空白行爲:1
九、寫一個腳本,顯示當前系統上全部,擁有附加組的用戶的用戶名;並說明共有多少個此類用戶;
#!/bin/bash # # hasmultgrp.sh # declare -i count=0 declare -i cnt=0 user=$(awk -F: '{print $1}' /etc/passwd| sed 's/[[:space:]]*//') echo -n "如下用戶擁有附加組:" for i in $user;do count=$(id -G $i | awk -F' ' '{print NF}') if [ $count -ge 2 ];then echo -n "$i " (( cnt++ )) fi done echo echo "擁有附加組的用戶共有$cnt個"
測試腳本:
[root@localhost script]# bash hasmulgrp.sh 如下用戶擁有附加組:bin daemon adm postfix user1 user3 user4 擁有附加組的用戶共有7個
十、建立一個由至少兩個物理卷組成的大小爲20G的卷組;要求,PE大小爲8M;而在卷組中建立一個大小爲5G的邏輯卷mylv1,格式化爲ext4文件系統,開機自動掛載至/users目錄,支持acl;
一、本次實驗經過兩塊硬盤的3個分區來建立20G卷組,sdb8:8G,sdc1:6G,sdc2:6G,並調整分區類型爲8e。建立分區過程在此略過。
[root@localhost ~]# fdisk -l /dev/sd{b,c} | grep '8e' /dev/sdb8 4705 5749 8393931 8e Linux LVM /dev/sdc1 1 784 6297448+ 8e Linux LVM /dev/sdc2 785 1568 6297480 8e Linux LVM
二、用3個分區建立3個物理卷,經過pvcreate命令來建立,pvdisplay來顯示物理卷
[root@localhost ~]# pvcreate /dev/sdb8 Physical volume "/dev/sdb8" successfully created [root@localhost ~]# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created [root@localhost ~]# pvcreate /dev/sdc2 Physical volume "/dev/sdc2" successfully created [root@localhost ~]# pvdisplay -C PV VG Fmt Attr PSize PFree /dev/sda2 VolGroup lvm2 a-- 79.51g 0 /dev/sdb8 lvm2 --- 8.01g 8.01g /dev/sdc1 lvm2 --- 6.01g 6.01g /dev/sdc2 lvm2 --- 6.01g 6.01g
三、建立卷組MyVG,使用vgcreate -s 8建立pe=8M的卷組,vgs顯示卷組簡要信息
[root@localhost ~]# vgcreate -s 8 MyVG /dev/sdb8 /dev/sdc{1,2} Volume group "MyVG" successfully created [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree MyVG 3 0 0 wz--n- 20.00g 20.00g
四、建立5G大小邏輯卷mylv1,使用命令lvcreate
[root@localhost ~]# lvcreate -L 5G -n mylv1 MyVG Logical volume "mylv1" created. [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mylv1 MyVG -wi-a----- 5.00g
五、格式化爲ext4文件系統,並掛載至/user目錄下,支持acl,開機自動掛載
[root@localhost ~]# mkfs.ext4 /dev/MyVG/mylv1 ..... Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done ..... [root@localhost ~]# mkdir /user [root@localhost ~]# mount /dev/MyVG/mylv1 /user/ [root@localhost ~]# echo -e "/dev/mapper/MyVG-mylv1\t/user\text4\tdefault,acl\t0 0">>/etc/fstab
十一、擴展mylv1至9G,確保擴展完成後原有數據徹底可用;
一、在/user目錄下建立目錄mydata,複製部分數據至改目錄
二、擴展邏輯卷經過命令lvextend, -L指定擴展大小,使用resize2fs來修復邏輯卷大小上的改變
[root@localhost script]# lvextend -L 9G /dev/MyVG/mylv1 Size of logical volume MyVG/mylv1 changed from 5.00 GiB (640 extents) to 9.00 GiB (1152 extents). Logical volume mylv1 successfully resized [root@localhost script]# resize2fs /dev/MyVG/mylv1 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/MyVG/mylv1 is mounted on /user; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/MyVG/mylv1 to 2359296 (4k) blocks. The filesystem on /dev/MyVG/mylv1 is now 2359296 blocks long.
[root@localhost script]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mylv1 MyVG -wi-ao---- 9.00g
三、確認數據能夠性
[root@localhost script]# pwd /user/mydata/script [root@localhost script]# ls addu.sh cnt.sh getdisk.sh hasmulgrp.sh ks.sh nine.sh ping2.sh ping.sh user1 [root@localhost script]# less cnt.sh #!/bin/bash # cnt.sh declare -i count1=0 declare -i count2=0 file="/etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab"
十二、縮減mylv1至7G,確保縮減完成後原有數據徹底可用;
一、縮減邏輯卷前須要先卸載,檢查文件系統
[root@localhost ~]# umount /user/ [root@localhost ~]# e2fsck -f /dev/MyVG/mylv1 e2fsck 1.41.12 (17-May-2010) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/MyVG/mylv1: 24/589824 files (0.0% non-contiguous), 72726/2359296 blocks
二、改變邏輯卷大小爲7G
[root@localhost ~]# resize2fs /dev/MyVG/mylv1 7G resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/MyVG/mylv1 to 1835008 (4k) blocks. The filesystem on /dev/MyVG/mylv1 is now 1835008 blocks long. [root@localhost ~]# resize2fs /dev/MyVG/mylv1 7G resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/MyVG/mylv1 to 1835008 (4k) blocks. The filesystem on /dev/MyVG/mylv1 is now 1835008 blocks long.
三、lvreduce縮減邏輯卷大小7G
[root@localhost ~]# lvreduce -L 7G /dev/MyVG/mylv1 WARNING: Reducing active logical volume to 7.00 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce mylv1? [y/n]: y Size of logical volume MyVG/mylv1 changed from 9.00 GiB (1152 extents) to 7.00 GiB (896 extents). Logical volume mylv1 successfully resized [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mylv1 MyVG -wi-a----- 7.00g
四、從新掛載邏輯卷,並檢查數據可用性
[root@localhost ~]# mount /dev/MyVG/mylv1 /user/ [root@localhost script]# pwd /user/mydata/script [root@localhost script]# less cnt.sh #!/bin/bash # cnt.sh declare -i count1=0 declare -i count2=0 file="/etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab"
1三、對mylv1建立快照,並經過備份數據;要求保留原有的屬主屬組等信息;
一、建立名爲snap_mylv1的快照,lvcreate命令:-s指定建立快照
[root@localhost ~]# lvcreate -L 7G -p r -s -n snap_mylv1 /dev/MyVG/mylv1 Logical volume "snap_mylv1" created. [root@localhost mydata]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mylv1 MyVG owi-aos--- 7.00g snap_mylv1 MyVG sri-a-s--- 7.00g mylv1 0.00
二、查看快照
[root@localhost mydata]# ll /dev/MyVG/ total 0 lrwxrwxrwx. 1 root root 7 Mar 5 18:24 mylv1 -> ../dm-3 lrwxrwxrwx. 1 root root 7 Mar 5 18:24 snap_mylv1 -> ../dm-6
三、掛載快照至/snap
[root@localhost mydata]# mkdir /snap [root@localhost mydata]# mount /dev/MyVG/snap_mylv1 /snap/ mount: block device /dev/mapper/MyVG-snap_mylv1 is write-protected, mounting read-only [root@localhost mydata]# df -hP Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 50G 4.3G 43G 10% / tmpfs 940M 76K 939M 1% /dev/shm /dev/sda1 477M 42M 410M 10% /boot /dev/mapper/VolGroup-lv_home 26G 46M 24G 1% /home /dev/mapper/MyVG-mylv1 6.8G 12M 6.5G 1% /user /dev/mapper/MyVG-snap_mylv1 6.8G 12M 6.5G 1% /snap
四、建立一個100M大小的文件,比對快照與原始邏輯卷的空間
[root@localhost user]# dd if=/dev/zero of=test bs=2048k count=50 50+0 records in 50+0 records out 104857600 bytes (105 MB) copied, 0.408157 s, 257 MB/s [root@localhost user]# df -hP Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 50G 4.3G 43G 10% / tmpfs 940M 76K 939M 1% /dev/shm /dev/sda1 477M 42M 410M 10% /boot /dev/mapper/VolGroup-lv_home 26G 46M 24G 1% /home /dev/mapper/MyVG-mylv1 6.8G 112M 6.4G 2% /user /dev/mapper/MyVG-snap_mylv1 6.8G 12M 6.5G 1% /snap
1四、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
一、將linux主機添加至TCP/IP網絡。在CENTOS6系列,編輯/etc/sysconfig/network-scripts/ifcfg-eth0文件,設定IPADDR,NETMASK,GATEWAY,DNS1,BOOTPROTO等信息
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 [root@localhost network-scripts]# less ifcfg-eth0 DEVICE=eth0 HWADDR=00:0c:29:97:c0:34 TYPE=Ethernet #指明接口類型 UUID=140eddab-b7cc-4ec7-afd0-df43c15b5402 ONBOOT=yes #在系統的引導過程當中,是否激活此接口 NM_CONTROLLED=yes BOOTPROTO=static IPADDR=172.16.100.10 NETMASK=255.255.255.0 GATEWAY=172.16.100.1 DNS1=114.114.114.114 IPV6INIT=no USERCTL=no
二、重啓網絡服務生效
[root@localhost ~]# service network restart
1五、爲Linux主機配置網絡信息的方式有哪些,請描述各個過程。
1)使用命令ifconfig eth0 172.16.100.10 臨時當即生效,重啓系統後失效
2)使用命令ip addr add 172.16.100.10/24 dev eth0 臨時當即生效,重啓系統後失效
3)修改網卡配置 vim /etc/sysconfig/network-scripts/ifcfg-eth0 須要重啓服務後生效
4)使用圖形界面 setup--網絡配置 修改後重啓服務
1六、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的全部主機的在線狀態;
在線的主機使用綠色顯示;
不在線的主使用紅色顯示;
#!/bin/bash # # ping.sh # ping命令探測主機狀態,在線顯示綠色,不在線顯示紅色 net="172.16.250." for h in $(seq 1 20);do ping -c 1 -w 1 $net$h &>/dev/null && echo -e "\033[32m $net$h \033[0m" || echo -e "\033[31m $net$h \033[m" done
1七、經常使用的網絡管理類工具備哪些,並用示例形式描述他們的使用方法。
1八、寫一個腳本,完成如下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示全部以K開頭的文件的文件名,而且給其附加一個stop字符串;
(3) 顯示全部以S開頭的文件的文件名,而且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
#!/bin/bash # # 統計/etc/rc.d/rc3.d目錄下S開頭和K開頭文件個數 # 並將這些文件顯示出來 dir="/etc/rc.d/rc3.d" if [ -d $dir ];then kfile=$(ls $dir | grep '^K') sfile=$(ls $dir | grep '^S') kcnt=$(echo $kfile | wc -w) scnt=$(echo $sfile | wc -w) for f in $kfile;do echo "$f stop" done for f in $sfile;do echo "$f start" done echo "S開頭文件有$scnt個,K開頭文件有$kcnt個"
1九、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100之內有哪些主機在線,將在線的顯示出來;
#!/bin/bash # # net="172.16.250." echo "172.16.250.20-100在線主機爲:" for i in $(seq 20 100);do ping -c 1 -w 1 $net$i &>/dev/null && echo "$net$i" done ~
20、打印九九乘法表;
[root@localhost script]# vim nine.sh #!/bin/bash # # # 打印九九乘法表 for i in $(seq 1 9);do for j in $(seq 1 $i);do echo -e -n "${i}x${j}=$[$i*$j]\t" done echo done
腳本測試:
[root@localhost script]# bash nine.sh 1x1=1 2x1=2 2x2=4 3x1=3 3x2=6 3x3=9 4x1=4 4x2=8 4x3=12 4x4=16 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81