馬哥教育網絡班20期+第九周博客作業

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

#!/bin/bash
#
login=0
nologin=0
cat /etc/passwd|while read myline
do

if [ ${myline##*/}  = "nologin" ];then
        let nologin+=1
else
        let login+=1
fi

echo "login:$login,nologin:$nologin" >tmp1

done
cat tmp1
[root@llww3317 tmp]# bash  1.sh
login:15,nologin:30

2、寫一個腳本,

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

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

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

#!/bin/bash
#
hostname=`hostname`
if [ $hostname = "localhost" ];then
hostname www.magedu.com
else
hostname
fi



[root@llww3317 tmp]# bash 2.sh
llww3317
[root@llww3317 tmp]# hostname localhost
[root@llww3317 tmp]# hostname
localhost
[root@llww3317 tmp]# bash 2.sh
[root@llww3317 tmp]# hostname
www.magedu.com

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

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

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

#!/bin/bash
#

if ls /dev/$1 &>/dev/null ;then
fdisk -l /dev/$1
fi

[root@llww3317 tmp]# bash 3.sh sdb

Disk /dev/sdb: 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: 0x0004d60b

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  8e  Linux LVM

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

    腳本能夠接受一個參數

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

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

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

#!/bin/bash
#
case $1 in
quit)
exit 0
;;
yes)
echo "continue"
;;
*)
exit 1
;;
esac



[root@llww3317 tmp]# bash 4.sh 1
[root@llww3317 tmp]# echo $?
1
[root@llww3317 tmp]# bash 4.sh quit
[root@llww3317 tmp]# echo $?
0
[root@llww3317 tmp]# bash 4.sh yes
continue

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
#
case $1 in
gzip)
 tar -czvf /backups/etc-20160613.tar.gz  /etc
;;
bzip2)
tar -cjvf /backups/etc-20160613.tar.bz2 /etc
;;
xz)
tar -cjvf /backups/etc-20160613.tar.xz /etc
;;
*)
echo "error tar tools"
exit 1
;;
esac
[root@llww3317 tmp]# bash 5.sh gzip >/dev/null
[root@llww3317 tmp]# bash 5.sh bzip2 >/dev/null
[root@llww3317 tmp]# bash 5.sh xz >/dev/null
[root@llww3317 tmp]# ls /backups
etc-20160613.tar.bz2  etc-20160613.tar.gz  etc-20160613.tar.xz

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

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

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

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

    (4)其它為無法判斷

#!/bin/bash
#

if [ -f $1 ];then
echo "Can be accessed normally"
elif [ -L $1 ];then
echo "access route"
elif [ -d $1 ];then
echo "Can be cd command"
else
echo "unable"
fi

8、寫一個腳本,接受一個用戶名為參數

    (1)如果用戶的ID號為0,則顯示其為管理員

    (2)如果用戶的ID號大于0且小于500,則顯示 其為系統用戶

    (3)否則,則顯示其為普通用戶

#!/bin/bash
#
user=`cat /etc/passwd|grep "^$1\>"|cut -d: -f3`
if [ $user -eq 0 ];then
echo "$1:admin"
elif [ $user -gt 0 -a $user -lt 500 ];then
echo "$1:system"
else
echo "$1:normal"
fi
[root@llww3317 tmp]# bash 8.sh root
root:admin
[root@llww3317 tmp]# bash 8.sh named
named:system
[root@llww3317 tmp]# bash 8.sh magedu
magedu:normal

10、寫一個腳本,傳遞一個用戶名參數給腳本

    (1)如果用戶的ID號大于等于500,且其默認shell為sh結尾的字符串,則顯示”a user can log system “類的字符串

    (2)否則,則顯示無法登錄系統

#!/bin/bash
#
passwd=`cat /etc/passwd|grep "^$1\>"`
userid=`echo $passwd|cut -d: -f3`
shell=${passwd: -2}
if [ $userid -ge 500 -a $shell = "sh" ];then
echo "a user can log system"
else
echo "can't log system"
fi
[root@llww3317 tmp]# bash  10.sh root
can't log system
[root@llww3317 tmp]# bash  10.sh magedu
a user can log system

11、寫一個腳本,完成如下任務

    (1)按順序分別復制/var/log目錄下的每個直接文件或子目錄至/tmp/test1-testn目錄中

    (2)復制目錄時,才使用cp -r命令

    (3)復制文件時使用cp 命令

    (4)復制鏈接文件時使用cp -d 命令

    (5)余下的所有類型,使用 cp -a命令

#!/bin/bash
#
dir="/var/log/"
for i in `ls $dir`;do
if [ -L  $dir$i ];then
cp -d $dir$i /tmp/test1-testn
elif [ -d $dir$i ];then
cp -r $dir$i /tmp/test1-testn
elif [ -f $dir$i ];then
cp $dir$i /tmp/test1-testn
else
cp -a $dir$i /tmp/test1-testn
fi

echo $i
done
[root@llww3317 tmp]# ls /tmp/test1-testn/
anaconda.ifcfg.log    ConsoleKit  messages           sssd
anaconda.log          cron        ntpstats           tallylog
anaconda.program.log  cups        pm-powersave.log   wpa_supplicant.log
anaconda.storage.log  dmesg       ppp                wtmp
anaconda.syslog       dmesg.old   prelink            Xorg.0.log
anaconda.xlog         dracut.log  sa                 Xorg.0.log.old
anaconda.yum.log      gdm         samba              Xorg.9.log
audit                 httpd       secure             yum.log
boot.log              lastlog     spice-vdagent.log
btmp                  maillog     spooler

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

(0)
laiwen2007laiwen2007
上一篇 2016-08-09
下一篇 2016-08-09

相關推薦

  • Linux命令date命令詳解

    在linux環境中,熟練運用date命令來表示自己想要表示的時間,肯定可以給自己的工作帶來諸多方便,下面是詳細的使用說明和示例 在linux環境中,不管是編程還是其他維護,時間是必不可少的,也經常會用到時間的運算,熟練運用date命令來表示自己想要表示的時間,肯定可以給自己的工作帶來諸多方便。 1.命令格式:date[參數]… [+格式] 2.命…

    2017-07-18
  • 多方面修復linux系統

    在這篇文章,您將看到以下方面的修復方法: ●內核文件和虛擬 ●grub.conf ●grub目錄 ●boot分區 ●fstab文件 ●root密碼破解   首先,要想很愉快的修復linux啟動的各種問題,就必然要把linux的啟動流程搞清楚。 1. 加載 BIOS 的硬件信息和進行自我測試,并依據設定取得第一個可開機的裝置; 2. 讀取并執行第一個…

    Linux干貨 2016-09-13
  • 當Web訪問性能出現問題,如何深探?

    對運維或開發工程師來說,遇到訪問性能問題時,最先需要定位的是問題出現在哪個環節,是網絡的問題,服務端的問題,還是客戶端的問題? 往往技術人員喜歡把精力放在保障后端服務的可用性方面,而對前端界面是否能正常裝載,是否能完整渲染不是太關心。但從業務的角度來說,界面承載的才是最終的業務,業務是通過人機交互來實現的。 日常我們遇到哪些場景需要定位訪問性能瓶頸? ·不同…

    系統運維 2017-01-09
  • N25-第四周

    一、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。     [root@localhost ~]# cp -r /etc/skel /home/tuser1      [root@localhost ~]# chmo…

    Linux干貨 2017-01-09
  • tomcat-session server實現

    要求:tomcat cluster將會話保存至memcached中 1、利用nginx反代 2、兩臺tomcat服務器 3、兩臺memcache服務器 拓撲:      架構前配置:      1、反代服務器:nginx     &nbsp…

    2017-07-03
  • 網絡N23期第四周grep

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -R /etc/skel /home/tuser1 && chmod g-r,o-r /home/tuser1 [root@localhost ~]# ls -l…

    系統運維 2016-12-05

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-12 14:12

    寫的很好,排版也很棒,加油

欧美性久久久久