腳本1:為root用戶編寫登錄歡迎腳本:
1、用vi命令在/root目錄是新建一個腳本文件welcome.sh,內容如下:
2、使用chmod命令給welcome.sh文件增加執行(x)權限
3、修改/root/.bash_profile文件,在root用戶每次登錄系統時調用welcome.sh腳本程序
#vi /root/.bash_profile添加如下內容:
4、驗證:使用root用戶重新登錄,驗證歡迎腳本的輸出信息
腳本2:編寫腳本程序,用來啟動、停止和顯示系統服務狀態:
1、用vi命令在/root/bin目錄是新建一個腳本文件status用來查看crond服務的狀態,內容如下:
設置x權限
腳本文件stop和start與status類似,稍作修改即可。
腳本3:編寫運行狀況監控腳本/opt/monitor.sh,用於記錄CPU負載、內存和交換空間、磁盤空間、最近的用戶登錄情況等信息,以及當時的時間信息。
1、用vi命令在/opt目錄是新建一個腳本文件monitor.sh,內容如下:
#!/bin/bash
mkdir -p /var/log/runrec
RecFile="/var/log/runrec/running.today"
RecTime=`date +"%Y-%m-%d %H:%M"`
LoadRec=`uptime`
MemRec=`free -m`
DiskRec=`df -hT`
LastLoginRec=`last -n 20`
echo"++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Record Time: $RecTime
cpu Load information:$LoadRec
Memory information:$MemRec
Disk Usage information:$DiskRec
Last login 20 users record:$LastLoginRec">> $RecFile
2、使用chmod命令給monitor.sh文件增加執行(x)權限
3、測試腳本是否能正常運行及輸出正確信息
4、設定計劃任務,要求每隔15分鐘執一次monitor.sh腳本,並確認crond服務已啟動。
創建計劃任務:
#crontab –e 內容如下
*/15 * * * */opt/monitor.sh
查看crond服務狀態並設置crond開機自動起動。
#service crondstatus
#chkconfig--level 35 crond on
腳本1:編寫SHELL腳本監控主機
1、用vi命令在/root目錄是新建一個腳本文件sysmon.sh,內容如下:
URL:http://www.bianceng.cn/OS/Linux/201410/45768.htm
附:
a:使用df命令提取根分區的磁盤占用率:如下圖所示:
使用df -h命令查看磁盤分區的使用情況,其中根分區的已用空間是10%
用如下圖中的命令可以過濾磁盤的已用空間
b:使用mpstat命令提取CPU使用率(要確保sysstat軟件包已安裝)。如下圖所示:其中%idle表示CPU空閒時間百分比
用如下圖中的命令可以得到CPU已用空間並賦值給變量CUG
c:使用free命令查看內存的使用情況。其中劃紅線的表示空余內存。
用如下圖中的命令可以得到內存使用率並賦值給變量MUG
2、使用chmod命令給sysmon.sh文件增加執行(x)權限
3、測試sysmon.sh腳本的執行情況
a:配置DNS服務負責解析郵件服務器的MX和A記錄
b:修改/etc/resolv.conf文件指向DNS服務器地址
c:配置郵件服務器
如果是postfix服務器,配置如下:
修改main.cf文件,修改後內容如下:
重啟postfix服務。並發測試郵件。
d:確認有可用的郵件服務器,然後調低監控阈值,執行sysmon.sh腳本進行測試
e:查收名為[email protected]的郵箱,確認警告郵件內容
郵件內容如下:
URL:http://www.bianceng.cn/OS/Linux/201410/45768.htm
4、設置crontab計劃任務,每隔半小調用一次sysmon.sh腳本程序
重新啟動crond服務。
腳本2:編寫SHELL腳本(mkbak.sh)提示用戶指定備份目錄的路徑,若目錄已存則顯示提示信息後跳過,否則顯示相應信息後創建該目錄。
腳本3:編寫腳本程序(chkdbsvr.sh)用於每隔5分監視一次系統服務mysqld的運行狀態,若發現mysqld進程已經停止,則在/var/log/messages文件中追加寫入日志信息(包括當時時間),並重啟mysqld服務;否則不進行任何操作
腳本4:編寫腳本程序用於監視系統服務httpd的運行狀態,要求如下
當服務狀態失常時在"/var/log/htmon.log"文件中記入日志信息。
自動將狀態失常的httpd服務重新啟動。若重啟httpd服務失敗,測嘗試重新啟動服務器主機
結合crond計劃任務,每周一至周五每隔15分鐘執行一次監測任務
1、在/opt目錄中創建腳本htmon.sh,腳本內容如下
#! /bin/bash
/sbin/service httpdstatus &> /dev/null
if [ $? -ne 0 ] ; then
echo "httpd is down.at time: `date`" >> /var/log/htmon.log
/sbin/service httpd restart
/sbin/service httpd status &>/dev/null
if [ $? -ne 0 ] ; then
/sbin/chkconfig --level 2345 httpd on
/sbin/shutdown -r now
fi
fi
2、創建crontab計劃任務
*/15 * * * * /opt/htmon.sh
腳本1:編寫一個名為getarp.sh的腳本,記錄局域網中各個主機的MAC地址。保存到/etc/ether文件中,若此文件已存在,應先進行備份。第行一條記錄,第1列為IP地址,第2列為對應的MAC地址。
分析:
假定要掃描的網段是192.168.4.0,將192.168.4.賦值給變量NADD,作為檢測地址的前綴
使用”arping -c 2 -w 1 被檢測主機的IP”命令發送ARP請求,記錄MAC地址
用while循環語句檢測目標主並記錄MAC地址,這裡檢測的主機地址為2~3
1、用vi創建一個名為getarp.sh腳本,內容如下:
#!/bin/bash
NADD="192.168.4."
FILE="/etc/ethers"
[-f $FILE ] && /bin/cp -f $FILE $FILE.old
HADD=1
while[ $HADD -lt 4 ]
do
arping -c 2 -w 1 ${NADD}${HADD} &>/dev/null
if [ $? -eq 0 ] ; then
arp -n | grep ${NADD}${HADD} | awk '{print$1,$3}' >> $FILE
fi
let HADD++
done
2、給腳本getarp.sh增加x權限
URL:http://www.bianceng.cn/OS/Linux/201410/45768.htm
3、執行腳本,查看檢測到的MAC信息
腳本2:編寫一個腳本scanhost.sh,檢查有哪些主機開啟了匿名FPT服務,掃描對象為/etc/ethers文件中的所有IP地址,掃描的端口號為21
環境描述:假定192.168.4.2主機為匿名訪問的FTP。 192.168.4.3非匿名訪部的FTP。
創建掃描文件/etc/ethers,內容如下:
這裡采用wget下載工具:wget ftp://IP/
1、用vi創建一個名為scanhost.sh腳本,內容如下:
#!/bin/bash
TARGET=$(awk'{print $1}' /etc/ethers)
echo"follow is anonymous FTP server:"
forIP in $TARGET
do
wget –T 3 -t 3 ftp://$IP/ &> /dev/null
if [ $? -eq 0 ] ; then
echo $IP
fi
done
參數提示:-T 連接超時時間;-t 連接重試次數
2、給腳本getarp.sh增加x權限
3、執行腳本,查看掃描到的信息
腳本3:計算/etc/目錄中所有*.conf配置文件所占用的總空間大小
用vi創建一個名為confsize.sh腳本,內容如下:
#!/bin/bash
sizenums=$(ls-l $(find /etc/ -type f -a -name *.conf) | awk '{print $5}')
total=0
fori in $sizenums
do
total=$(expr $total + $i)
done
echo"total size of conf files: $total bytes."
腳本4:編寫一個腳本chkfileown.sh,對於使用bash作為登錄shell的系統中,檢查他們在/opt目錄中的文件數量並列出具體的數值及對應的用戶賬戶
1、用vi創建一個名為chkfileown.sh腳本,內容如下:
#!/bin/bash
DIR="/opt/"
validusers=$(grep"bash$" /etc/passwd | awk -F: '{print $1}')
forusername in $validusers
do
num=$(find $DIR -user $username | wc -l)
echo "$username have $num files."
done
2、給腳本getarp.sh增加x權限
3、執行腳本,查看執行後的信息(注:/opt目錄下若沒有任何文件,可事先創建一些測試文件)
腳本5:編寫腳本用於批量添加用戶,要求如下:
要求提供交互功能,當管理員執行該腳本時,可以根據提示指定需添加的用戶數量(少於100)、用戶名前綴、並能夠設置這些用戶賬戶的失效時間,初始密碼。
用戶名編號統一使用兩位數,如使用”01”、”02”、”03”的形式,而不是”1”、”2”、”3”的形式。
編寫對應的批量刪節除用戶腳本,要能夠通過命令行參數指定用戶名前綴,執行腳本後刪除所有使用了該前綴的用戶賬戶,但要防止刪除root用戶。
URL:http://www.bianceng.cn/OS/Linux/201410/45768.htm
批量添加用戶腳本:
1、批量添加用戶腳本myuadd.sh內容如下:
#!/bin/bash
read-p "input nu <1-99>:" nu
read-p "input name:" name
read-p "input date <YYYY-MM-DD>:" date
read-p "input password:" password
a=1
if[ $nu -lt 100 ]
then
while[ $a -le $nu ]
do
if [ $a -lt 10 ]
then
useradd -e $date"$name"0"$a"
echo "$password" | passwd--stdin "$name"0"$a" &>/dev/null
else
useradd -e $date"$name""$a"
echo "$password" | passwd--stdin "$name""$a" &>/dev/null
fi
a=`expr$a + 1`
done
fi
2、給腳本myuadd.sh增加x權限
3、執行腳本myuadd.sh,添加用戶
4、驗證結果:查看/etc/passwd文件是否添了新用戶
批量刪除用戶腳本:
1、批量刪除用戶腳本myudel.sh內容如下:
#!/bin/bash
if[ $# -le 0 ] ; then
echo "error:the prefix of users has notbe specified."
echo "usage:$0 nameprefix"
exit 1
fi
tarjcvf /root/users.cnf.tar.gz /etc/passwd /etc/shadow /etc/group &>/dev/null
tobedel=`grep"$1" /etc/passwd | cut -d ":" -f 1 | grep -v"root"`
foru in $tobedel
do
userdel -r $u &> /dev/null
done
2、給腳本myudel.sh增加x權限
3、執行腳本myudel.sh,刪除用戶。如myudel.shcaiwu03或myudel.sh caiwu
4、驗證結果:查看/etc/passwd文件中已刪除的用戶是否還存在。
附:
我們可以用env或export命令查看環境變量,使用set命令查看所有變量(包括環境變量和自定義變量),使用unset命令刪除變量
LINUX系統中大多數版本都有隨機數生成器,就是/dev/random文件。可以通過這個隨機數文件相關的系統環境變量$RANDOM來隨機取得隨機數。在BASH環境下,這個RANDOM變量的內容介於0——32767之間,(man bash,搜索 RANDOM 可以看到說明)所以,只要echo $RANDOM時,系統就會主動隨機取出一個介於0——32767的數值。例如要想0-9之間的隨機數時,可以用declare聲明數值類型
或
本文出自 “甘兵” 博客,請務必保留此出處http://ganbing.blog.51cto.com/7002794/1227663