2012-07-17 22 views
0

我想在校園中的HPC上的作業文件上創建一個守護程序。如果我的磁盤使用量超過50GB,我希望我的所有工作都停止(並可能收到有關此問題的電子郵件)。我想要做的就是這類東西:如何在bash腳本中使用du -sh

#!/bin/bash 

run=1 
while [ $run -gt 0 ]; do 
    a=du -sh ~ 
    if [ $a -gt 50GB ]; then 
    run=0 
    break 
    fi 
done 

qdel j*fd 
qdel j*fd 
#send email in some way 

我被困在兩兩件事:

  1. 我不能用杜-SH一個腳本中,我得到一個錯誤:

    -sh:command not found

  2. 我不怎麼比較尺寸。

我該怎麼做到這一點?

+1

你的腳本運行從未'du'。 – 2012-07-17 07:31:37

+1

正確的命令是'a = $(du -sh〜)'命令'a = du -sh〜'表示帶有環境變量'a = du'的'-sh〜' – 2012-07-17 07:34:18

+0

@ IgnacioVazquez-Abrams:它的確如此,第5行 – Yotam 2012-07-17 07:38:26

回答

1
  1. a=$(du_command)a=du -sh ~相當於-sh ~與環境變量a=du

  2. 在KB大小比較:a=$(du -sk ~ | awk '{print$1}')和[$ {A} -gt 51200]

+0

您缺少三個零 – Yotam 2012-07-17 08:04:16

+0

是50MB = 51200kB,50GB = 52428800kB – 2012-07-17 08:08:42