N26-第九周作業-邢巖

馬哥門徒-N26-邢巖


相信自己、勤奮努力、不斷總結!shell腳本練習需要重復、重復、再重復!那么,我就繼續來寫、寫、寫。N26-第九周作業-邢巖N26-第九周作業-邢巖N26-第九周作業-邢巖

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


#****************************************************

# Author: jeque
# Last modified: 2017-04-02 23:04
# Filename: user10.sh
# Description: 
# Version: 1.1 
#****************************************************
declare user_login=0
declare user_nologin=0
for i in $(cat /etc/passwd | cut -d: -f7); do
    if [ $i == “/sbin/nologin” ];then
        let user_nologin++
    else
        let user_login++
    fi
done
echo “login user number:$user_login”
echo “nologin user number:$user_nologin”

N26-第九周作業-邢巖


2、寫一個腳本

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

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

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


#!/bin/bash

#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-02 23:31
# Filename: localhost1.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
HostName=$(/bin/hostname)
if [ $UID -eq 0 ];then
    if [ $HostName == “localhost.localdomain” ];then
        hostname www.magedu.com
        echo “hostname changed”
    else
        hostname
    fi
else
    echo”You must be root to change the hostname.”
    exit 1
fi

N26-第九周作業-邢巖

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

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

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


#!/bin/bash

#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-03 18:03
# Filename: fdev.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
if [ $# -ge 1 ];then
    for dev in $*;do
        if [ -b $dev ];then
            fdisk -l $dev
        else
            nodev=$nodev” “$dev
        fi
    done
    [[ $(echo $nodev | wc -c) -gt 1 ]] && echo -e “\nThe device is not exist,plesae try again.\n$nodev”
else
    echo “please put in an exist device.”
fi

N26-第九周作業-邢巖N26-第九周作業-邢巖


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

   腳本能夠接受一個參數;

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

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

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


#!/bin/bash
#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-03 18:39
# Filename: parameter.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
menu () {
cat <<END
    1.quit
    2.yes
    3.other
    please input the parameter you want:
END
}
menu
read -p “Your choice: ” option

case $option in
quit)
    echo “Exit the script.”
    exit
    ;;
yes) 
    echo “Script continue.”
    ;;
*)
    exit 2
esac

N26-第九周作業-邢巖N26-第九周作業-邢巖


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

#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-03 21:08
# Filename: parameter2.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
menu () {
cat <<END
    1.gzip
    2.bzip2
    3.xz
    please input the parameter listed above:
END
}

myPath=”/backups”
if [ ! -x “$myPath” ];then 
    mkdir -p “$myPath” &> /dev/null
fi

menu
read -p “Your choice:” option
case $option in
gzip) 
    tar -zcf /backups/etc-$(date +%Y%m%d).tar.gz /etc &> /dev/null
    echo “The new filename is etc-$(date +%Y%m%d).tar.gz”
    ;;
bzip2)
    tar -jcf /backups/etc-$(date +%Y%m%d).tar.bz2 /etci &> /dev/null
    echo “The new filename is etc-$(date +%Y%m%d).tar.bz2”
    ;;
xz)
    tar -Jcf /backups/etc-$(date +%Y%m%d).tar.xz /etc &> /dev/null
    echo “The new filename is etc-$(date +%Y%m%d).tar.xz”
    ;;
*)
    echo “Error compression tools.”
    exit 2
esac

N26-第九周作業-邢巖N26-第九周作業-邢巖N26-第九周作業-邢巖


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

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

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

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

   (4) 其它為無法判斷;


#!/bin/bash

#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-03 22:17
# Filename: files11.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
if [ $# -lt 1 ]; then
    echo “At least one path.”
    exit 1
elif ! [ -e $1 ]; then
    echo “No such file!”
    exit 2
elif [ -f $1 ]; then
    echo “Common file.”
    echo ” It can be normal access.”
elif [ -d $1 ]; then
    echo “Directory file.”
    echo “You can use command ‘cd’ to the file.”
elif [ -L $1 ]; then
    echo “Symbolic link file.”
    echo “An access path! “
else
    echo “Unkown!” 
    echo “Can’t judge!”
fi

N26-第九周作業-邢巖N26-第九周作業-邢巖


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

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

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


#!/bin/bash

#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-03 22:39
# Filename: localhost2.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
HostName=$(/bin/hostname)
if [ $UID -eq 0 ];then
    if [ $HostName == “localhost” ];then
        hostname mail.magedu.com
        echo “hostname changed”
    elif [ $HostName == ” ” ]; then
        hostname mail.magedu.com
    elif [ $HostName == “(none)” ];then
        hostname mail.magedu.com

    else
        hostname
    fi
else
    echo”You must be root to change the hostname.”
exit 1
fi

N26-第九周作業-邢巖


   OK!shell腳本暫時先練到這里,該休息了!Bye!N26-第九周作業-邢巖

原創文章,作者:jeque,如若轉載,請注明出處:http://www.www58058.com/72408

(0)
jequejeque
上一篇 2017-04-03
下一篇 2017-04-04

相關推薦

  • iptables基礎詳解

    一.iptables基礎認知二.iptables使用格式  一.iptables簡介   1.Iptabels是與Linux內核集成的包過濾防火墻系統,幾乎所有的linux發行版本都會包含Iptables的功能。如果 Linux 系統連接到因特網或LAN、服務器或連接 LAN 和因特網的代理服務器, 則Iptables有利于在 …

    2017-05-03
  • 二叉樹的應用詳解 – 數據結構

    概述: 平衡樹——特點:所有結點左右子樹深度差≤1 排序樹——特點:所有結點“左小右大字典樹——由字符串構成的二叉排序樹判定樹——特點:分支查找樹(例如12個球如何只稱3次便分出輕重)帶權樹——特點:路徑帶權值(例如長度) 最優樹——是帶權路徑長度最短的樹,又稱 Huffman樹,用途之一是通信中的壓縮編碼。 1. 二叉排序樹(二叉查找樹 Bina…

    Linux干貨 2015-04-07
  • Mariadb數據庫復制系列(五):基于SSL的復制

       實驗五:基于SSL的主從復制功能的實現 在mysql服務器之間復制數據,默認情況下都是基于明文的,在有些場景中,明文傳輸會造成嚴重的數據安全隱患,因此,需要對mysql服務器之間的復制時的傳輸進行加密,傳輸加密方式可以基于SSL的會話進行 1、實驗環境 2、私有CA的搭建 3、在主節點node72上生成證書簽署請求、發送到私有CA服務器 4、在從節點n…

    Linux干貨 2016-11-24
  • 馬哥教育網絡班21期+第六周課程練習

    馬哥教育網絡班21期+第6周課程練習 [TOC] vim編輯器使用方法總結 vim編輯器: 簡介: vi: visual interface,文本編輯器 vim: vi improved,vi的增強版 文本:ASCII,Unicode, 文本編輯器種類: 行編輯器:sed, 全屏編輯器:nano,vi vim:模式化的…

    Linux干貨 2016-08-15
  • btrfs文件系統——更加高級的文件系統

    Btrfs 文件系統: Btrfs ( B-tree ,Butter FS ,Better FS ) GPL ,Oracle公司在2007年研發,支持CoW(對文件快照),為了取代ext3,ext4,xfs 核心特點:          多物理卷支持:btrfs可由多個底層物理卷…

    Linux干貨 2016-08-31
  • 文本處理(1)

    文本處理工具最全整理上半部

    Linux干貨 2018-03-15

評論列表(2條)

  • 馬哥教育
    馬哥教育 2017-04-10 16:21

    總結的很好,腳本的思路清晰,加油~~~~

  • Dotty
    Dotty 2017-04-24 10:27

    Cool! That’s a clever way of loonkig at it!

欧美性久久久久