Linux 第九天: 練習和作業

Linux 第九天: 練習和作業

 

 

 

編寫腳本/root/bin/systeminfo.sh 顯示當前主機系統信息 包括主機名 ipv4地址 操作系統版本 內核版本 CPU信號 內存大小 硬盤大小

server_ip=`ifconfig|grep'inet\b'|grep -v '127.0.0.1'|tr-s ' '|cut -d' ' -f3`
CPUmod=`lscpu|grep -i "model name:"`
Meminfo=`free -h|sed -n '2p'|tr -s ' '|cut -d' ' -f2`
DISKinfo=`fdisk -l |sed -n '2p'|sed -r 's/.*[[:space:]][0-9].*GB).*/\1/g`

echo 'hostname:' $(hostname)
echo 'hostIP:' ${server_ip}
echo 'OS version:' $(cat /etc/redhat-release)
echo 'Kernel version:' $(uname -r)
echo 'CPU:' $CPUmod
echo 'Memory:' $Meminfo
echo 'Harddisk:' $DISKinfo

 

 

編寫腳本/root/bin/backup.sh 可實現每日將/etc/目錄備份到/root/etcYYYY-mm-dd中

backupdir="/root/etc$(date +%F)"
cp -a /etc $backdir
echo "backup $backdir finished."

 

 

編寫腳本/root/bin/disk.sh顯示當前硬盤分區中空間利用率最大值

maxused=`df -h|grep '/dev/sd' |tr -s ' '|sort -nr -t' ' -k5 |head -l |cut -d' ' -f5`
echo'硬盤分區利用率最大值為:'$maxused

 

 

編寫腳本/root/bin/links.sh顯示正連接本主機的每個遠程主機IPv4地址和連接數, 并按連接數多少排序

netstat -nt |tr -s ' '|cut -d' ' -f5|tr -cs'0-9.' '\n'|egrep'([0-9]+.){3}[0-9]+'|sort |uniq -c|sort -nr|tr -s ' ' '\t'

 

 

寫一個腳本/root/bin/sumid.sh 計算/etc/passwd文件中的第10和20個用戶ID之和

dir=/etc/passwd
n=10
m=20
id_10=`cat $dir|head -$n|tail -1|cut -d: -f3`
id_20=`cat $dir|head -$m|tail -1|cut -d: -f3`
num=$[id_10+id_20]

UID1=`sed -n '10p'/etc/passwd |cut -f: -f3`
UID2=`sed -n '20p'/etc/passwd |cut -d: -f3`
let Sumid=$UID1+$UID2

 

 

寫一個腳本/root/bin/sumspace.sh 傳遞兩個文件路徑作為參數給腳本 計算這兩個文件中所有空白行之和
File1=`grep'^$' $1|wc -l`
File2=`grep'^$' $2|wc -l`
let Sumspace=$File1+$File2
echo "the sum of $1 + $2 spacelines is $Sumspace"
unset File1
unset File2
unset Sumspace

 

 

寫一個腳本/root/bin/sumfile.sh 統計/etc /var /usr 共有多少一級子目錄和文件

File1=`ls -A /etc |wc -l`
File2=`ls -A /var |wc -l`
File3=`ls -A /usr |wc -l`
let Sumfile=$File1+$File2+$File3
echo "the sum is $Sumfile"
unset File1
unset File2
unset File3
unset Sumfile

 

 

寫一個腳本/root/bin/argsmun.sh 接受一個文件路徑作為參數 如果參數小于1 則提示用戶"至少應該給一個參數" 并立即退出 如果參數個數不小于1 則顯示第一個參數說指向的文件中空白行數

[[$# -lt 1]] && echo "input a file at least" ||(grep '^$'$1 |wc -l)

 

 

 

寫一個腳本/root/bin/argsnum.sh 接受一個文件IPv4作為參數 測試是否可以連通 如果ping通 則提示用戶"該ip地址可以訪問" 如果不可ping通 則提示用戶"該IP地址不可訪問"

ping -w1 -c1 $1 &>/dev/null
[[$? -eq 0]] && echo "該IP地址可以訪問"||echo "該IP地址不可以訪問"

 

 

chmod -rw /tmp/file1 編寫腳本/root/bin/per.sh 判斷當前用戶對/tmp/file1是否不可讀不可寫

[! -r $1 -a ! -w $1 ] && echo "can't r & w" || echo " can r or w"

 

 

編寫腳本/root/bin/nologin.sh和login.sh 實現禁止和允許普通用戶登錄系統

[-e $1] && echo "you can login" || (rm -rf /home/`whoami`; echo "you can login")
[-e $1] && (rm -rf /home/`whoami`; echo "you can not login")||echo "you can login"

 

 

寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址做為參數,先判斷是否合格IP,否,提示IP格式不合法并退出,是,測試是否可連通。如果能ping通,則提示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“該IP地址不可訪問”

echo $1 | egrep -o '([0-9]|([1-9][0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.([0-9]|([1-9][0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.

([0-9]|([1-9][0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.([0-9]|([1-9][0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\>'&>/dev/null
[ $? -ne  0 ] && echo "這是個不合格的IP" && exit 213
ping -w1 -c1 "$1" &>/dev/null &&  (echo "該IP地址可訪問") || (echo "該IP無法訪問")

 

 

計算1+2+3+…+100的值
[root@qzx ~]# seq 1 100 |tr '\n' '+' | egrep -o '.*[^+]' |bc

 

 

計算從腳本第一參數A開始,到第二個參數B的所有數字的總和,判斷B是否大于A,否提示錯誤并退出,是則計算之

[ $2 -gt $1 ] && (seq $1 $2 |tr '\n' '+' | egrep -o '.*[^+]' |bc) || (echo "輸入的數字不正確")

 

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

(0)
dengjiandengjian
上一篇 2016-08-15
下一篇 2016-08-15

相關推薦

  • lvs

    1、什么是LVS LVS是Linux Virtual Server的簡寫,以為Linux虛擬服務器,是一個虛擬服務器集群,其具有很好的可伸縮性、可靠性、可管理性。LVS集群采用IP負載均衡技術和基于內容請求分發技術。調度器具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務…

    Linux干貨 2016-10-29
  • Linux中/etc/passwd、/etc/shadow文件字段的含義以及用處

        今天本人學習到了兩個個Linux中非常重要的文件,它們承載著Linux用戶的相關信息,如果在賬號方面出現一些密碼相關的問題,就可以來找這兩個文件查看和分析一番。     他們分別是/etc/passwd和/etc/shadow兩個文件,他們都存放于/etc目錄中,都可以使用cat命令來查看其內容。  …

    Linux干貨 2016-01-14
  • 正則表達式基礎知識及grep、egrep詳解

    什么是正則表達式     在計算機科學中,正則表達式是這樣解釋的:它是指一個用來描述或者匹配一系列符合某個句法規則的字符串的單個字符串。在很多文本編輯器或其他工具里,正則表達式通常被用來檢索和/或替換那些符合某個模式的文本內容。許多程序設計語言都支持利用正則表達式進行字符串操作。對于系統管理員來講,正則表達式貫穿在我們…

    Linux干貨 2016-08-08
  • 如何安裝CentOS 6.8 ?

    一 ,首先我要先在虛擬機的平臺上搭建一下我們需要的環境。 1,選擇創建一個新的虛擬機。之后選擇自定義安裝。點擊下一步 2,選擇硬件兼容性workstation12.0,(根據情況你也可以選擇下面的幾個版本,不過要記得選擇版本之后,不能再這個版本以下打開虛擬機) 3,點擊下一步選擇安裝程序光盤映像文件項。點擊下一步。 4,之后創建一下用戶信息,點擊下一步。 5…

    Linux干貨 2017-02-14
  • SELinux在httpd服務端中的使用

    一、啟用SELinux策略并安裝httpd服務,改變網站的默認主目錄為/website,添加SELinux文件標簽規則,使網站可訪問(以CentOS7系統操作) 1、首先查看本系統是否已經安裝httpd服務 2、查看httpd的配置文件所在路徑 3、創建主目錄為/website與網頁文件"index.html",并更改httpd服務為該路…

    Linux干貨 2016-09-16
  • Linux刪除特殊字符文件

    由于很多原因可能會導致一些文件的文件名是亂碼,當我們刪除的時候就會發現這個文件名既不能自動補全,也不能直接刪除。

    2017-11-11
欧美性久久久久