溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

管理員shell腳本

發(fā)布時(shí)間:2020-07-21 21:54:59 來(lái)源:網(wǎng)絡(luò) 閱讀:396 作者:kgcsbin 欄目:大數(shù)據(jù)

Technorati 標(biāo)記: shell,df,sed,awk

-監(jiān)視系統(tǒng)統(tǒng)計(jì)信息

監(jiān)視磁盤空閑空間

磁盤資源占用情況

監(jiān)視CPU和內(nèi)存使用情況

-執(zhí)行備份

歸檔數(shù)據(jù)文件

脫機(jī)存儲(chǔ)備份文件


監(jiān)視系統(tǒng)統(tǒng)計(jì)信息

· 監(jiān)視磁盤空閑空間

此shell腳本將監(jiān)視特定卷上(如/)的可用磁盤空間,并在可用磁盤空間低于設(shè)置的閾值時(shí)發(fā)送一則電子郵件信息。

#!/bin/bash
# monitor available disk space
#注意格式 變量=`值`
SPACE=`df|sed -n '/\/$/p'| gawk '{print $5}'|sed 's/%//'`
if [ $SPACE -ge 20 ]
then
echo "Disk space on root at $SPACE% used"|mail –s “Disk warning”
else
echo "Disk space on root is OK"
fi

添加任務(wù)計(jì)劃

運(yùn)行此腳本的頻率取決于文件服務(wù)器的活躍程度。空間小的,一天一次;

#小型,每天上午12:30

30 0 * * * /root/diskmon

#大型,每天4次,1230,830,下午12:30和下午4:30

30 0,8,12,16 * * * /root/diskmon
· 用戶磁盤使用情況
#!/bin/bash

# calculate disk usage and report per user

TEMP=`mktemp -t tmp.XXXXXX`

du -s /home/* |grep -v lost|sed 's/\/home\///'|sort -g -r > $TEMP

TOTAL=`du -s /home |gawk '{print $1}'`

cat $TEMP |gawk -v n="$TOTAL" '

BEGIN {

print "Total Disk Useage by User"

print "User\tSpace\tPercent"

}

{

printf "%s\t%d\t%6.2f%\n",$2,$1,($1/n)*100

}

END {

print "---------------------------";

printf "Total\t%d\n", n

}'

rm -f $TEMP
結(jié)果如下
[root@docker1 ~]# ./diskhogs.sh

Total Disk Useage by User

User Space Percent

benny 3704 99.68%

test 12 0.32%

---------------------------

Total 3716
· 監(jiān)控CPU和內(nèi)存使用情況

捕獲腳本

#!/bin/bash

# script to capture system statistics

OUTFILE=/root/capstats.csv

DATE=`date +%m/%d/%Y`

TIME=`date +%k:%M:%S`

TIMEOUT=`uptime`

VMOUT=`vmstat 1 2`

USERS=`echo $TIMEOUT | awk '{print $4}'`

LOAD=`echo $TIMEOUT | awk '{print $9}'| sed 's/,//'`

FREE=`echo "$VMOUT"| sed -n '/[0-9]/p' | sed -n '2p' | awk '{print $4}'`

IDLE=`echo "$VMOUT" | sed -n '/[0-9]/p' | sed -n '2p' | awk '{print $15}'`

echo "$DATE,$TIME,$USERS,$LOAD,$FREE,$IDLE" >> $OUTFILE
結(jié)果如下
[root@docker1 ~]# cat capstats.csv 

12/11/2016, 0:09:02,2,0.04,183360,100

輸出html格式

#!/bin/bash

# parse capstats data into daily report

FILE=/root/capstats.csv

TEMP=/root/capstats.html

MAIL=which mutt

DATE=`date +"%A,%B,%d,%Y"`

echo "<html><body><h3>Report for $DATE</h3>" > $TEMP

echo "<table border=\"1\">" >> $TEMP

echo "<tr><td>Date</td><td>Time</td><td>Users</td>" >> $TEMP

echo "<td>Load</td><td>Free Memory</td><td>%CPU Idle</td></tr>" >> $TEMP

cat $FILE |awk -F, '{

printf "<tr><td>%s</td><td>%s</td><td>%s</td>",$1,$2,$3;

printf "<td>%s</td><td>%s</td><td>%s</td>\n</tr>\n",$4,$5,$6;

}' >> $TEMP

echo "</table></body></html>" >> $TEMP

$MAIL -a $TEMP -s "Stat report for $DATE" root < /dev/null

#rm -f $TEMP
結(jié)果如下

管理員shell腳本

執(zhí)行備份

使用shell腳本備份系統(tǒng)上數(shù)據(jù)的兩種不同的方法。

· 1)歸檔數(shù)據(jù)文件

必需函數(shù) tar命令

tar命令用于將整個(gè)目錄歸檔為單個(gè)文件。

tar -cf archive.tar /root/test 2> /dev/null

創(chuàng)建日常歸檔文件

#!/bin/bash

# archive a working diretory

DATE=`date +%y%m%d`

FILE=archive$DATE

SOURCE=/root/test

DESTINATION=/root/archive/$FILE

tar -cf $DESTINATION $SOURCE 2> /dev/null

gzip $DESTINATION

創(chuàng)建每小時(shí)的歸檔腳本

#!/bin/bash

# archive a working diretory hourly

DAY=`date +%d`

MONTH=`date +%m`

TIME=`date +%k%M`

SOURCE=/root/test

BASEDEST=/root/archive

mkdir -p $BASEDEST/$MONTH/$DAY

DESTINATION=$BASEDEST/$MONTH/$DAY/archive$TIME

tar -cf $DESTINATION $SOURCE 2> /dev/null

gzip $DESTINATION

管理員shell腳本

可結(jié)合cron

· 2)脫機(jī)存儲(chǔ)備份文件

工作目錄歸檔可以郵件附件的形式發(fā)送

#!/bin/bash

# archive a working directory and e-mail it out

MAIL=`which mutt`

DATE=`date +%y%m%d`

FILE=archive$DATE

SOURCE=/root/test

DESTINATION=/root/archive/$FILE

ZIPFILE=$DESTINATION.zip

tar -cf $DESTINATION $SOURCE 2> /dev/null

zip $ZIPFILE $DESTINATION

rm -f $DESTINATION

$MAIL -a $ZIPFILE -s "Archive for $DATE" root@docker1.com < /dev/null

 

PS: df sed awk

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI