檢測。
1、移動硬碟檢測是對硬碟或U盤的性能進行全面測試,讓你可以隨時了解到硬碟或者U盤信息。
2、腳本是依據一定的格式編寫的可執行文件,腳本文件也會儲存在硬碟中的,所以會檢測到的。
B. linux shell 硬碟文件讀寫校驗測試腳本
讀寫失敗時dd的返回值分別是多少一直查不到,而如果這個沒法弄明白的話,校驗的對錯就沒什麼意義了(根本不知道是dd出的錯還是md5sum出的錯),算了,你將就一下吧,查到後改一下就好了。
#!
/bin/bash
infile="$1"
cycle=0
=0
err=0
if
[
"$#"
-ne
1
]
||
[
!
-f
"$1"
]
then
echo
"用法:test
<infile>"
exit
1;
fi
echo
-e
"<>警告<>:本測試程序對磁碟有較大損害,請您謹慎運行。"
echo
-e
"
按Crtl+C鍵終止測試"
echo
-e
"開始測試?(y/n)y:c"
while
read
-r
answer
</dev/tty
do
if
[
"$answer"
==
'n'
]
||
[
"$answer"
==
'N'
]
then
echo
"結果:$cycle
輪共
$
次復制,讀/寫錯誤
$err
次"
rm
-f
${infile}_*
exit
0
fi
let
cycle++
echo
"=========================
第
$cycle
輪
==========================="
rm
-f
"$infile"_*
sync
let
++
#方便起見,選第一分區爆之
while
[
"$(df
-k|sed
-n
'3q;2s/
*/
/g;2p'|cut
-d
'
'
-f
4)"
-gt
1
]
do
echo
"===========
副本
$
==========="
outfile="${infile}_${}"
dd
if="$infile"
of="$outfile"
#關於dd命令如果遭遇讀失敗或寫失敗的返回碼無據可查,但肯定不是0,
另一種實現方法是用md5sum
--status檢驗,但這種方法看起來多此一舉反而導致讀寫比變>為3:1
if
[
"$?"
-ne
0
]
then
let
err++
fi
let
++
echo
&&
sync
trap
"echo
'結果:'
$cycle
'輪共'
$
'次復制,讀/寫錯誤'
$err
'次'
&&
rm
-f
${infile}_*
&&
exit;"
1
2
3
15
done
echo
-e
"磁碟已滿,刪除測試文件後繼續?(y/n)y:c"
done
C. 請問監控Linux伺服器磁碟容量的腳本怎麼寫
看看下面這個腳本(注意要用英文的標點符號):
#!/bin/bash
partion_list=( 'df -h | awk 『NF>3&&NR>1{sub(/%/,」」,$(NF-1));print $NF,$(NF-1)}』' )
critical=90
notification_email()
{
emailuser='[email protected]' 「發送郵件地址」
emailpasswd='password' 「成功開啟POP3/SMTP服務,在第三方客戶端登錄時,密碼框請輸入的授權碼」
emailsmtp='smtp.qq.com'
sendto='[email protected]' 「接收郵箱地址」
title='Disk Space Alarm' 「郵件標題」
/usr/local/bin/sendEmail -f $emailuser -t $sendto -s $emailsmtp -u $title -xu $emailuser -xp $emailpasswd -m $emailmessage
}
crit_info=」」
for (( i=0;i<${#partition_list[@]};i+=2 ))
do
if [ 「${partition_list[ ((i+1)) ]}」 -lt 「$critical」 ];then
echo 「ok! ${partition_list[i]} used ${partition_list[ ((i+1)) ]}%」
else
if [ 「${partition_list[ ((i+1)) ]}」 -gt 「$critical」 ];then
crit_info=$crit_info」Warning!!! ${partition_list[i]}
used ${partition_list[ ((i+1) ] }%\n」
fi
fi
done
if [ 「$crit_info」 != 」」 ];then
echo -e $crit_info | notification_email
fi
上面腳本的功能是監控每個磁碟分區,當磁碟分區使用空間超過90%時,就通過sendEmail來發送郵件告警。sendEmail是個開源工具,可以從http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz下載;
解壓後把sendEmail拷貝到/usr/local/bin下即可。
D. winpe 硬碟檢測工具怎麼用
winpe 硬碟檢測工具使用方法:
1、下載最新的通用pe工具箱,然後將u盤製作成u盤啟動盤;
這里可以看到右邊有很多項硬碟的狀況,第一個的意思是硬碟反應時間是小於3毫秒,依次推。如果有出現大於500毫秒或者是大於500毫秒後面的7種情況的話,那麼硬碟就壞了。主要掃描的是系統所在的分區,它所在硬碟的前面一部分。打個比方使用的是1TB的硬碟,系統所在的C盤分區是50G的話。只需要掃描前5%部分的硬碟就好了。如果前5%沒問題的話,那麼電腦運行慢跟硬碟沒有關系,那就要在別的地方找原因了。
E. Shell腳本完成用戶磁碟空間監測報告
筆者在文章-四種方法查看樹莓派CPU溫度中,用python查看樹莓派溫度和狀態的程序,其中有一段python程序讀取磁碟空間os.popen("df -h /") ,df -h /讀取整個磁碟的使用情況。
這一次筆者在書籍上看到一個腳本,頗具意義。腳本完成磁碟檢查,並列印出使用量位居前十位,生成報告rpt。命令 -hs /root 可以查看目錄的整體使用情況, -hs /root/*可以查看目錄一級的整體使用情況,輸出統計信息,快速定位問題根源。
同時關於df與,df是顯示磁碟分區上可以使用的磁碟空間,是顯示已經使用的空間。
為了找出佔用磁碟空間最多的目錄,可以使用sort命令來排序,-r是允許數字排序,-n是逆序排序。
-hs /root/* | sort -rn
sed編輯器可以對輸出內容進行賽選,只選擇前四行內容,並添加行號。最後使用gawk格式化輸出。
-hs /root/* | sort -rn | sed '{5,$D; =}' | sed 'N; s/\n/ /' | awk '{printf $1 ":" "\t" $2 "\t" $3 "\n"}'
現在來看看腳本big_users.sh,腳本循環檢測CHECK_DIRECTORIES中的目錄,然後執行 -S $DIR_CHECK 列印格式化輸出磁碟使用情況。exec命令是打開文件outfilename作為stdout,即輸出重定向。
#!/bin/bash
#
# Big_Users - Find big disk space users in various directories
###############################################################
# Parameters for Script
#
CHECK_DIRECTORIES=" /var /root" #Directories to check
#
############## Main Script #################################
#
DATE=$(date '+%m%d%y') #Date for report file
#
exec > disk_space_$DATE.rpt #Make report file STDOUT
#
echo "Top Ten Disk Space Usage" #Report header
echo "for $CHECK_DIRECTORIES Directories"
#
for DIR_CHECK in $CHECK_DIRECTORIES #Loop to directories
do
echo ""
echo "The $DIR_CHECK Directory:" #Directory header
#
# Create a listing of top ten disk space users in this dir
-S $DIR_CHECK 2>/dev/null |
sort -rn |
sed '{11,$D; =}' |
sed 'N; s/\n/ /' |
gawk '{printf $1 ":" "\t" $2 "\t" $3 "\n"}'
#
done #End of loop
#
exit
運行 ./big_users.sh後生成的報告: