2012-07-17 3 views
0

Я хочу создать хранителя в моем файле заданий на HPC в кампусе. Если использование моего диска превышает 50 ГБ, я хочу, чтобы все мои задания остановились (и, возможно, получили электронное письмо об этом). То, что я хочу сделать что-то в этом роде:Как использовать du -sh внутри bash script

#!/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: команда не найдена

  2. Я не могу сравнить размеры.

как я могу это достичь?

+1

Ваш сценарий никогда не работает 'du'. –

+1

Правильная команда: 'a = $ (du -sh ~)' команда 'a = du -sh ~' означает '-sh ~' с переменной окружения 'a = du' –

+0

@ IgnacioVazquez-Abrams: это так, строка 5 – Yotam

ответ

1
  1. a=$(du_command). a=du -sh ~ эквивалентно -sh ~ с переменной окружения a=du

  2. сравнить размер в килобайтах: a=$(du -sk ~ | awk '{print$1}') и [$ {а} -gt 51200]

+0

Вам не хватает трех нулей – Yotam

+0

да 50MB = 51200kB, 50GB = 52428800kB –

Смежные вопросы