Для du действительно ли возможно сообщить о значительно большем количестве диска, используемого, чем точка монтирования имеет в наличии?

[1176010] Замена кавычек и команд - вот ваши вопросы.

  • Специфическая проблема, с которой вы сталкиваетесь, заключается в том, что оболочка пытается выполнить команду с именем [1176382]/home/me/my_directory[1176383] с переменной окружения [1176384]stuff=doStuff[1176385].[1176386]. Что вам действительно нужно (если я интерпретирую правильно), так это запустить [1176387] doStuff[1176388] со значением [1176389]$i[1176390] в качестве аргумента, присваивая вывод переменной [1176391]stuff[1176392]. Способ сделать это - обернуть вашу команду в [1176393]$()[1176394]. Например:

    Заметьте, как я также ставлю кавычки вокруг всего. Это сделано для того, чтобы предотвратить разделение слов в оболочке (это превратит один аргумент [1176395]/foo/bar baz[1176396] в [1176397]/foo/bar[1176398] и [1176399]baz[1176400]).

  • Также в качестве возвращаемого значения используется вывод вашей функции, а не [1176401]return[1176402].

    Так как вы должны использовать больше кавычек, то вы также должны добавить их ко всему остальному. Вот полная версия вашего скрипта:

    Нужно поместить определение функции, прежде чем пытаться ее использовать. Shell не разбирается как скомпилированные программы, где он проходит через файл несколько раз. Это сверху вниз.[1176403] Я также модифицировал [1176404]doStuff[1176405] для отправки [1176406]echo[1176407] в STDERR, где он будет показан на терминале, а затем [1176408]printf[1176409] отправляет в STDOUT, где он будет перехвачен в переменную [1176410]stuff[1176411].

    Обратите внимание, что это все равно будет иметь проблему, если какой-либо из ваших каталогов будет содержать новую строку. Однако это ограничение оболочки. Единственный символ, который не может содержать путь к файлу - это NULL char ([1176412]\0[1176413]). Однако bash и другие оболочки не могут хранить NULL char в строке (не все, но многие. Я знаю, что zsh может), поэтому вы не можете использовать его в качестве разделителя.[1176023].

    2
    16.04.2014, 01:11
    1 ответ
    [118711]Давненько я не пользовался NetApp, и поэтому не могу ответить абсолютным авторитетом, но могу дать объяснение этому типу поведения.

    Похоже, что он работает очень похоже на то, как работает LVM в Linux. Допустим, у вас есть физический диск объемом 1 ТБ, 100% которого отображено в группу томов LVM. Теперь Вы создаете 100 ГБ логического тома в этой группе томов. Ты делаешь кое-какие вещи, кладешь на них какие-то файлы и т.д. Затем вы создаете снимок этого логического тома. Теперь все файлы (блоки на самом деле), которые были изменены на логическом томе, копируются таким образом, что снимок будет иметь доступ к исходным данным. Но вы также можете сделать этот снимок и смонтировать его как обычный том. Если вы смонтируете его, у вас будет смонтировано 2 100ГБ файловых систем. Но эти 2 файловые системы совместно используют одни и те же данные (блоки физических томов) до тех пор, пока эти данные не будут изменены на одном из них.

    Поэтому NetApp, скорее всего, позволит вам получить доступ к этим снимкам через свою директорию [119106]/backup/.snapshot[119107]. При анализе каждый снэпшот выглядит так же, как и исходный том.

    Это может показаться странным, но совершенно легально (с точки зрения NFS, ядра и т.д.). Когда вы запускаете [119108]df[119109], ваша система делает вызов NFS, чтобы сказать "насколько велика эта файловая система", в которой удалённая система может ответить, как ей заблагорассудится. Затем при выполнении вызова [119110]du[119111], система делает вызов NFS, чтобы сказать "насколько велик этот файл", на который удалённая система может ответить, как ей заблагорассудится.[119112]. Вы также можете делать похожие (но не похожие) вещи с разреженными файлами. Говорят, что файл занимает больше места, чем он есть на самом деле.

    В наши дни существует множество продвинутых способов экономии места на файловых системах. Вопросы "сколько у меня места" или "сколько места занимает этот файл" не всегда имеют простые ответы. Вы можете иметь такие вещи, как снимки, де-дупликация, прозрачное сжатие и т.д.[118720].

    1
    27.01.2020, 22:22

    Теги

    Похожие вопросы