N25-第九周作業

第九周

1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現;

#!/bin/bash
#

sum_login=0
sum_nologin=0

for i in $(awk -F: '{print $7}' /etc/passwd);do
        if [ "$i" == "/sbin/nologin" ];then
                echo "user nologin."
                let sum1++
        else let sum2++
        fi
done
        echo "可登錄用戶數為:$sum_login,不可登錄用戶數為:$sum_nologin."

[root@zf scripts]# bash user_shell.sh 
user nologin.
user nologin.
....
user nologin.
user nologin.
可登錄用戶數為:33,不可登錄用戶數為:25.

2、寫一個腳本 

(1) 獲取當前主機的主機名,保存于hostname變量中;

(2) 判斷此變量的值是否為localhost,如果是,則將當前主機名修改為www.magedu.com;

(3) 否則,則顯示當前主機名;

#!/bin/bash
#

Hostname=$(hostname)

if [ "$Hostname" == "localhost" ];then
        hostname www.magedu.com
        echo "主機名已修改."
else hostname        
fi

[root@zf scripts]# hostname 
zf.localdomain
[root@zf scripts]# bash hostname.sh 
zf.localdomain
[root@zf scripts]# hostname localhost
[root@zf scripts]# bash hostname.sh  
主機名已修改.

3、寫一個腳本,完成如下功能

 (1) 傳遞一個磁盤設備文件路徑給腳本,判斷此設備是否存在;

 (2) 如果存在,則顯示此設備上的所有分區信息;

#!/bin/bash
#
if [ $# -lt 1 ];then
    echo "請輸入一磁盤路徑"
    exit 1
fi    

if [ -b $1 ];then
        fdisk -l $1
        else echo "disk is not existed."
                exit 2
fi

[root@zf ~]# bash disk.sh /dev/sda

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x00026079

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          39      307200   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              39        1344    10485760   83  Linux
/dev/sda3            1344        1605     2097152   82  Linux swap / Solaris
/dev/sda4            1605        2610     8073689    5  Extended
/dev/sda5            1605        2610     8073657+  83  Linux

4、寫一個腳本,完成如下功能 腳本能夠接受一個參數;

 (1) 如果參數1為quit,則顯示退出腳本,并執行正常退出;

 (2) 如果參數1為yes,則顯示繼續執行腳本; 

 (3) 否則,參數1為其它任意值,均執行非正常退出;

#!/bin/bash
#

if [ $# -lt 1 ];then
        echo "請輸入一個參數"
        exit 1
fi

if [ "$1" == "quit" ];then
        echo "退出腳本“"
        exit 0
elif [ "$1" == "yes" ];then
        echo "繼續執行腳本"
else echo "輸入錯誤"
        exit 2
fi

[root@zf ~]# bash quit.sh quit
退出腳本“
[root@zf ~]# bash quit.sh yes
繼續執行腳本
[root@zf ~]# bash quit.sh y
輸入錯誤

5、寫一個腳本,完成如下功能 傳遞一個參數給腳本,此參數為gzip、bzip2或者xz三者之一;

 (1) 如果參數1的值為gzip,則使用tar和gzip歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.gz; 

 (2) 如果參數1的值為bzip2,則使用tar和bzip2歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.bz2; 

 (3) 如果參數1的值為xz,則使用tar和xz歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.xz; 

 (4) 其它任意值,則顯示錯誤壓縮工具,并執行非正常退出;

#!/bin/bash
#

if [ ! -d /backups ];then
    mkdir /backups
fi

if [ $# -lt 1 ];then
        echo "請輸入一個參數"
        exit 1
fi

if [ "$1" == "gzip" ];then
        tar -zcf  /backups/etc-$(date +%Y%m%d).tar.gz  /etc
elif [ "$1" == "bzip2" ];then
        tar -jcf  /backups/etc-$(date +%Y%m%d).tar.bz2  /etc
elif [ "$1" == "xz" ];then
        tar -Jcf  /backups/etc-$(date +%Y%m%d).tar.xz  /etc
else echo "Input error."
         exit 2
fi

或
#!/bin/bash
#

if [ ! -d /backups ];then
        mkdir /backups
fi

if [ $# -lt 1 ];then
        echo "請輸入一個參數"
        exit 1
fi

case $1 in
gzip)
        tar -zcf  /backups/etc-$(date +%Y%m%d).tar.gz  /etc
        ;;
bzip2)
        tar -jcf  /backups/etc-$(date +%Y%m%d).tar.bz2  /etc
        ;;
xz)
        tar -Jcf  /backups/etc-$(date +%Y%m%d).tar.xz  /etc
        ;;
*)
        echo "Input error."
        exit 2
        ;;
esac

[root@zf ~]# bash yasuo.sh gzip 
tar: 從成員名中刪除開頭的“/”
[root@zf ~]# bash yasuo.sh bzip2
tar: 從成員名中刪除開頭的“/”
[root@zf ~]# bash yasuo.sh xz   
tar: 從成員名中刪除開頭的“/”
[root@zf ~]# bash yasuo.sh jj
Input error.
[root@zf ~]# ls /backups
etc-20170307.tar.bz2  etc-20170307.tar.gz  etc-20170307.tar.xz

6、寫一個腳本,接受一個路徑參數: 

 (1) 如果為普通文件,則說明其可被正常訪問;

 (2) 如果是目錄文件,則說明可對其使用cd命令;

 (3) 如果為符號鏈接文件,則說明是個訪問路徑;

 (4) 其它為無法判斷;

#!/bin/bash
#

if [ $# -lt 1 ];then
        echo "請傳遞一個路徑參數."
fi

if [ -f $1 ];then
        echo "$1 可被正常訪問."
elif [ -d $1 ];then
        echo "可對$1使用cd命令."
elif [ -L $1 ];then
        echo "$1 是訪問路徑."
else echo "無法判斷."
fi

[root@zf ~]# bash  jiaoben.sh /etc/fstab   
/etc/fstab 可被正常訪問.
[root@zf ~]# bash  jiaoben.sh /dev/dvd
/dev/dvd 是訪問路徑.
[root@zf ~]# bash  jiaoben.sh /dev/
可對/dev/使用cd命令.
[root@zf ~]# bash  jiaoben.sh /dev/sda
無法判斷.

7、寫一個腳本,取得當前主機的主機名,判斷

 (1) 如果主機名為空或為localhost,或為”(none)”,則將其命名為mail.magedu.com;

 (2) 否則,顯示現有的主機名即可;

#!/bin/bash
#

Hostname=$(hostname)

if [ -z "$Hostname" -o "$Hostname" == "localhost" -o "$Hostname" == "(none)" ];then
        hostname mail.magedu.com
        echo "主機名已修改."
else  hostname
fi

[root@zf ~]# hostname 
zf.localdomain
[root@zf ~]# bash  hostname.sh      
zf.localdomain
[root@zf ~]# hostname localhost
[root@zf ~]# bash  hostname.sh         
主機名已修改.
[root@zf ~]# hostname "(none)"         
[root@zf ~]# bash  hostname.sh 
主機名已修改.

原創文章,作者:N25-深圳-尋覓,如若轉載,請注明出處:http://www.www58058.com/70912

(0)
N25-深圳-尋覓N25-深圳-尋覓
上一篇 2017-03-10 15:22
下一篇 2017-03-10 17:03

相關推薦

  • linux下VMware Tools安裝方法

    關于VMware Tools 是虛擬機里面的驅動,和各種實用工具,安裝了vmware tools,你的虛擬機就可以打開DX3D的支持,鼠標想移出虛擬機也不需要按組合鍵,文件可以從主機直接拖動復制到虛擬機里面,虛擬機的分辨率也會自動跟隨窗口調整而變化,還能解決圖形界面下的卡頓,總之就是拓展了虛擬機的功能,方便使用。     &nb…

    Linux干貨 2016-08-04
  • YUM LNMP 安裝 wordpress

    1配置防火墻 Iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #允許80端口通過防火墻 iptables-A&…

    Linux干貨 2016-06-22
  • N25-第五周

    – 1     顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;     grep "^[[:space:]]\+" /boot/grub/grub.conf2 顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的…

    Linux干貨 2017-01-02
  • 網絡設備及工作

    集線器集線器又叫Hub,是一種多用于星形網絡組織的中心設備。具備中繼器放大信號的特點,集線器是一種半雙工,同一時間只能接收或發送數據,不能同時既接受又發送數據,是沖突型設備,共享帶寬,放大信號的同時放大噪聲,不隔離廣播,不能成環,不安全。 二層交換機二層交換機的工作原理能自學習構造MAC地址表,基于MAC地址表進行轉發、劃分沖突域,對MAC地址實現過濾等功能…

    Linux干貨 2017-10-30
  • linux發展歷程簡述

     linux發展歷程簡述 概述       本文寫的linux 的發展歷史,閱讀本文你可以知道:           1.   linux的發音           2. &nbs…

    Linux干貨 2016-10-14
  • 文件系統知一二

    文件系統知一二 What?文件系統是什么?     我們經常說文件系統,那么文件系統是什么東西呢?    計算機的文件系統是一種存儲和組織計算機數據的組織結構。 常見的文件系統有哪些?           &n…

    Linux干貨 2016-03-09

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-15 00:39

    贊,幾個腳本的功能完成的不錯~~給閱讀者一種很舒服的感覺~~繼續加油~

欧美性久久久久