Метаданные являются "Данными о Данных".
В случае *отклоняют файловую систему, метаданные, используемые fsck
от заголовка на каждом блоке данных указывает назад на запись каталога или следующий блок данных и соответствующие записи в каталоге. fsck
сканирует блоки и проверяет, что записи каталога соответствуют и что прямые указатели к следующему блоку корректны.
Это варьируется значительно между файловыми системами. На самом деле то, какие метаданные хранятся и где они хранятся, - то, что большинство дифференцирует, различные *отклоняют файловые системы. Более современные также сохраняют файл журнала изменений в структурах каталогов.
Короче говоря: просто удалите >/dev/tty
часть от dbbackup.sh
; используйте просто:
echo $TARFILE
Это распечатает $TARFILE к стандартному выводу, т.е. на экран, если Вы будете работать dbbackup.sh
в терминале, или к файл/канал, если перенаправление существует (как это происходит с одинарной левой кавычкой оболочки /$(...)
расширение).
Существует также другая причина, почему вещь не будет работать даже при исправлении проблемы выше: Ваш dbbackup.sh
сценарий печатает имя файла tar к стандартному выводу, но в строке
DBBACKUP="`dbbackup.sh >&/dev/null`"
Вы отбрасываете любой вывод, прибывающий из dbbackup.sh
(путем перенаправления его к /dev/null
). Если Вы только хотели отбросить ошибки, то используйте 2>/dev/null
перенаправление.
Более длинная история: строка
echo $TARFILE > /dev/tty
перенаправляет вывод echo
команда к /dev/tty
(терминал, к которому текущий процесс присоединяется) вместо того, чтобы печатать к потоку стандартного вывода, совместно использованному другими командами в dbbackup.sh
сценарий. Поэтому, когда Вы далее перенаправляете вывод dbbackup.sh
в dbbackup.sh >&/dev/null
, это второе перенаправление не влияет echo
команда.
Вы могли бы хотеть читать немного больше на замене перенаправления и команды оболочки.