當前位置:首頁 » 編程軟體 » 腳本空間分區

腳本空間分區

發布時間: 2022-09-06 20:59:13

⑴ 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後生成的報告:

⑵ 請問監控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下即可。

⑶ 請問怎麼用腳本給Linux系統分區

代碼如下:
#!/bin/bash
#Author: MOS
#Script name: funPart.sh
#Date & Time: 2012-10-10/12:20:53
#Version: 1.0.1
#Description:
# Disk_Mod(){
#使用if匹配模式,使用for循環判斷是否存在,如果有,則取其絕對路徑,跳出循環,如果不匹配或文件不存在,跳出函數,返回66
if [[ -n $1 && $1 =~ "/dev/sd[a-z]" ]];
then local Darray=(ls /dev/sd[a-z])
for i in ${Darray[*]};do
[[ "$i" == "$1" ]] && Sd=$i && break
done
else
return 66
fi
#當匹配成功,進入選擇,告訴用戶,是否繼續,輸錯的話進入無限循環,當用戶選擇Y,則清空目標分區,且跳出while循環
while :;do
read -p "Warning!!!This operation will clean $Sd data. Next=y,Quit=n [y|n]: " Choice
case $Choice in
y)
dd if=/dev/zero of=$Sd bs=512 count=1 &> /dev/null && break || return 67 ;; n)
exit 88 ;;
*)
echo "Invalid choice,please choice again." ;;
esac
done
#使用echo傳遞給fdisk進行分區,如果此命令失敗,則跳轉出去,錯誤值68,需要注意的是,有時候這個返回值很詭異,筆者之前成功與否都是返回的1,後來重啟之後,就好了,如果慎重的話,可以對創建的分區,進行判斷,不過就需要使用其他工具截取相關欄位了,雖有些小麻煩,但無大礙 echo -e "n\np\n1\n\n+100M\nn\np\n2\n\n+1024M\nw\n"|fdisk /dev/sdb &> /dev/null || return 68 #格式化之前,讓內核重新讀取磁碟分區表,值得注意的是,有的系統版本,使用partprobe無效,譬如筆者的環境是rhel5.8,而rhel6.0以後,這個命令就很危險了,而使用partx -a /dev/sdb則效果更好...此項需慎重,如果格式化失敗,則告知把失敗的分區定義成變數,且跳出函數,並帶出錯誤值69
partprobe Part=fdisk -l /dev/$Sd|tail -2|cut -d" " -f1`
for M in ${Part[*]};do
! mke2fs -j $M &> /dev/null && ErrorPart=$M && return 69
done
return 0
}
#下面代碼,調用函數,接收函數返回值,根據返回值進行判斷哪裡出錯。
Disk_Mod $1
Res=$?
[ $Res -eq 0 ] && exit 0
[ $Res -eq 66 ] && echo "Error! Invalid input."
[ $Res -eq 67 ] && echo "Error! Command -> dd <- Faild."
[ $Res -eq 68 ] && echo "Error! Command -> fdisk <- Faild."
[ $Res -eq 69 ] && echo "Error! Command -> mke2fs <- Faild."
如果有什麼不懂的話可以去看看《Linux就該這么學》這本書,非常適合新手學習Linux。

⑷ 求教,如何使用shell腳本實現自動分區

用fdisk 的腳本自動執行可以參考如下shell腳本:

#makepartition
ddif=/dev/zeroof=/dev/mmcblk1bs=1024count=1024
fdisk/dev/mmcblk1<<EOF
n
p
1
2048
+100M
n
p
2


t
1
c
a
1
w
EOF

⑸ 我打開分區助手後出現如下圖的腳本錯誤,開始沒有管後來分區後點提交重啟後分區沒有變化,怎麼辦求解!

你先把分區助手這個主程序挪到c盤這個分區里去執行,看看能不能用,我之前給c盤擴容也是這個問題,腳本錯誤的問題,很可能是你下的這個分區過助手和毛病換一個,網上有的是免安裝綠色版的,不要下安裝版的,

⑹ 求一個查看電腦磁碟分區的腳本

你用的是什麼系統啊?

⑺ 自己寫了個腳本,關於swap分區的,我的是安卓手機,但我寫的這個腳本,每次開機都要創建一個swap

if [ -e FILE ];then
...
else
...
fi

⑻ 如何利用diskpart命令+腳本文件實現對分區的操作

腳本文件就是把我下面講的diskpart的象「select disk 0","create partition primary」的命令按你要執行的操作編輯好保存在文本文件里就可以了!!!

刪除分區的腳本:

select disk 0
select partition 編號n
delete partition

把上面的三行保存在文本里xx.txt 編號n是具體你要刪除的分區
執行diskpart xx.txt 就可以了!!

必須啟動到「帶命令提示符的安全模式」下,輸入Diskpart。不然沒有有效的!!!

調整分區大小用diskpart好像辦不到:)

下面是創建分區:
輸入list disk顯示已安裝的硬碟,再輸入「select disk 0」選擇這個硬碟(也可稱為為該硬碟設置焦點屬性)。然後輸入「create partition primary」創建主分區
create partition primary的語法是:
create partition primary [size=N] [offset=N] [ID={Byte | GUID}] [align=N] [noerr]
該分區不接收驅動器號。必須使用 assign 命令為該分區分配一個驅動器號。

刪除分區:
輸入「select partition 編號n」使分區n具有焦點屬性,再輸入"delete partition"即可刪除該分區。

設置主分區:
先用「select partition 編號n」使其具有焦點屬性再輸入命令active即可。最後輸入Exit,退出

Diskpart.exe 實用工具還包含磁碟管理管理單元支持的一組操作。不過,Diskpart.exe 操作與其他磁碟管理管理單元功能不同,不能禁止您在無意中執行可能導致數據丟失的操作,而是允許顯式控制分區和卷。因此,建議您小心使用這些 Diskpart.exe 操作。

Diskpart.exe的所有的命令都可以保存到文本後執行腳本的操作

Diskpart.exe 腳本文件文件名

希望對你有幫助:)

⑼ linux下我有一個文件夾,或是一個軟連接連接到一個磁碟分區下的文件夾,如何用腳本計算文件夾剩餘空間

-sh

⑽ 怎麼用shell腳本 對磁碟進行分區管理

用shell腳本基本無法實現。
首先,shell腳本方便管理的方面是比如監控磁碟使用情況,定期刪除無用文件等這些工作。而你想要的是擴容,這基本和shell script的使用不怎麼沾邊。
其次,如果非要說用shell可以實現你想要的功能的話,那就是用script編寫一個擴容工具,而直接擴容是有很大的危險性的,所以你寫的script要很完善。
最後,綜上述,幹嘛不直接上網down一個擴容工具?

熱點內容
音樂appftp安卓 發布:2025-03-20 19:03:24 瀏覽:304
家長申述驗證的密碼是什麼 發布:2025-03-20 18:55:27 瀏覽:7
編譯原理與技術第二版下載 發布:2025-03-20 18:55:26 瀏覽:937
怎麼寫編程語言 發布:2025-03-20 18:42:52 瀏覽:688
我去密碼是多少 發布:2025-03-20 18:12:28 瀏覽:541
方舟編譯器啥時候開始 發布:2025-03-20 18:11:40 瀏覽:959
常用java類 發布:2025-03-20 18:07:06 瀏覽:202
怎麼查看安卓大屏使用的什麼協議 發布:2025-03-20 18:03:07 瀏覽:704
好用的linux系統 發布:2025-03-20 17:51:15 瀏覽:648
n1網路存儲 發布:2025-03-20 17:51:11 瀏覽:636