Восстановление tar от сбоев ленты

У меня есть основное резервное копирование для записи на ленту сценария и сценария восстановления, который был записан предыдущим администратором. При попытке восстановить от ленты, я получаю следующую ошибку:

tar: v: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now

Я попытался выполнить команды вручную для ввода в путь восстановления: tar -xfv /dev/st0 /srv

Я также попытался восстановить к обходным путям, все, что дает то же сообщение об ошибке. Ниже резервное копирование и восстанавливает сценарии. Любая справка, определяющая, что моя проблема, значительно ценилась бы.

Вот резервный сценарий:

echo Starting backup to tape at `date`
mt -f /dev/st0 rewind
tar cfv /dev/st0 /srv
mt -f /dev/st0 eject
echo Backup to tape complete at `date`
exit

Вот сценарий восстановления:

echo -n Starting restore from tape at `date` to directory: `pwd`
mt -f /dev/st0 rewind
tar -xfv /dev/st0
echo Restore from backup complete at `date`
exit
3
задан 8 May 2014 в 20:21

1 ответ

Опции команды tar являются неправильными в сценарии восстановления. Это работает:

tar xfv /dev/st0

единственной разницей являются пропавшие без вести минус, однако который довольно важен. При использовании '-', тогда Вы используете обычный синтаксис опций GNU. В этом случае 'f' опция должна сопровождаться именем файла. В Вашем сценарии 'f' сопровождается единственной буквой 'v'. Таким образом, tar пытался извлечь из файла, названного 'v'. Который не существует, как правильно говорится в сообщении об ошибке.

, Если первый аргумент не запускается с '-', чем Вы используют старый, но довольно удобный синтаксис tar. В этом случае обязательные аргументы опций следуют, все устанавливают из опций. Теперь 'v' означает подробный, как ожидалось, и исходный файл является ленточным накопителем (/dev/st0), как ожидалось.

Из документации tar GNU в http://www.gnu.org/software/tar/manual/tar.html#SEC36 :

, Насколько мы знаем, все программы tar, GNU и не-GNU, поддерживают старые опции: то есть, если первый аргумент не запускается с '-', он, как предполагается, определяет буквы опции. Tar GNU поддерживает старые опции не только по историческим причинам, но также и потому что многие люди привыкли к ним. Если первый аргумент не запускается с тире, Вы объявляете о старом стиле опции вместо короткого стиля опции; старые опции декодируются по-другому.

Как короткие опции, старые опции являются одними буквами. Однако старые опции должны быть записаны вместе как единственный собранный в группу набор, без пробелов разделив их или тире, предшествующих им. Этот набор букв должен быть первым для появления на командной строке после названия программы tar и некоторого пробела; старые опции не могут появиться больше нигде. Буква старой опции является точно той же буквой как соответствующая короткая опция. Например, старая опция 't' совпадает с короткой опцией '-t', и следовательно, то же как долгая опция '-список'. Так, например, команда 'условная цена tar' определяет опцию '-v' в дополнение к операции '-c'.

, Когда опции, для которых нужны аргументы, даны вместе с командой, все связанные аргументы следуют в том же порядке как опции. Таким образом пример, данный ранее, мог также быть записан в старом стиле следующим образом:

tar cvbf 20/dev/rmt0

$ Здесь, '20' является аргументом '-b', и '/dev/rmt0' является аргументом '-f'.

0
ответ дан 7 October 2019 в 21:05

Другие вопросы по тегам:

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