Как я возобновляю команду tar, которая была уничтожена

Самый простой способ решить его использование grep только, должен передать еще одно инвертированное по каналу grep в конце. Например:

grep -A 4 "The mail system" temp.txt | grep -v "The mail system" | grep -v '^\d*$'
11
06.12.2012, 12:46
4 ответа
[112450] Этот метод воссоздает ваш tar-архив и добавляет готовую часть к существующему файлу. Это может быть полезно при резервном копировании через сетевое соединение. Скорее всего, вы получите поврежденный архив, если какие-либо данные в вашем INFILES изменились. Обязательно протестируйте ваш архив после завершения.

Измените INFILES и OUTFILE на правильные имена в следующей строке.

  1. Объяснение:

    SIZE="$(wc -c < $OUTFILE)"[112898] # Получите текущий размер архива.
  2. tar -cz -в-выход "$INFILES". |[112900] # Начать создание архива и отправить вывод команде [112901]tail[112902].

    • tail -c +$(($SIZE+1)) >>[112904] # Отключите данные до $SIZE+1 и возобновите оставшийся архив $OUTFILE.[112461].
10
27.01.2020, 19:58

Лучшее решение состояло бы в том, чтобы удалить файл tar и перезапустить процесс, предварительно ожидаемый с nohup и добавленный с &. С другой стороны, Вы могли работать tar -tfv и используйте это в качестве исключения для нового tar -cvf.

2
27.01.2020, 19:58
  • 1
    tar -cvf перезапишет существующий файл. Вы имели в виду tar -rvf? Кроме того, последний файл, который был записан в архив, был, вероятно, неполным. строки –  Gilles 'SO- stop being evil' 07.12.2012, 01:04
  • 2
    Таким образом, идея состоит в том, чтобы войти в список файлов, которые уже находятся в tarball минус последний, который является, вероятно, неполным. И затем выполненный a tar -rvf ? –  mthpvg 07.12.2012, 12:42

Вы не можете; просто необходимо запустить.

2
27.01.2020, 19:58

Что делать в случае, если у меня неполный tarархив, я создаю список файлов в архиве:

tar tf archive.tar | sed -e '/\/$/d' -e x -e '/^$/d' >files-done

Команда sedудаляет все те строки, которые имеют косую черту в конце :Это каталоги, а не файлы, и мы хотим снова выгрузить каталоги и пропустить только те файлы в тех каталогах, которые у нас уже есть в первый tar-архив. Кроме того, мы позволяем sedудалить последнее имя файла, потому что он, скорее всего, был сброшен только частично, поэтому мы снова заархивируем его.

Затем просто передайте список files-doneс помощью опции -X новой команде tar:

tar cfvX archive2.tar files-done SOURCEDIR

Обязательно используйте другое имя выходного файла для новой команды tar, иначе вы перезапишете частичный архив. Не пытайтесь напрямую присоединяться к поврежденному tar-архиву.

6
27.01.2020, 19:58

Теги

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