синтаксис для tar + gunzip включен

Я хотел tar какой-нибудь каталог с включенным gzip . Пожалуйста, дайте мне знать, какой у него синтаксис. Следует также учитывать следующее.

1) Было бы полезно, если бы tar.gz разделился после того, как 2G был заполнен одним tar-файлом. (Скажем: tar.gzaa становится 2G, тогда он должен продолжить создание tar.gzab )

2) синтаксис для добавления информации журнала в файл журнала

3) исключить некоторые типы файлов с определенным расширением (скажем, мой исходный каталог, который будет Чтобы быть tar, есть дочерний каталог с файлами .log , и мне нужно исключить те, которые нужно зарезервировать.

Заранее спасибо.

-1
07.03.2017, 07:52
1 ответ

Может быть, вы можете попробовать что-нибудь вроде этого:

tar --exclude='*.EXTENSION' -czvf - DIRECTORY/ 2> LOG_FILE.log | split --verbose --bytes=2048MB - FILE.tar.gz. >> LOG_FILE.log

Давайте протестируем. Предположим, у нас есть каталог с именем каталог с этими файлами:

eduardo@Notebook:~/testtar$ ll -h directory/
total 570M
drwxr-xr-x 2 eduardo eduardo 4,0K mar  6 23:25 ./
drwxr-xr-x 3 eduardo eduardo 4,0K mar  6 23:28 ../
-rw-r--r-- 1 eduardo eduardo    0 mar  6 23:16 file.any
-rw-r--r-- 1 eduardo eduardo 570M mar  6 23:24 hugefile.dd
-rw-r--r-- 1 eduardo eduardo    0 mar  6 23:15 image.jpg
-rw-r--r-- 1 eduardo eduardo    0 mar  6 23:16 log.log
-rw-r--r-- 1 eduardo eduardo    0 mar  6 23:14 text.txt

Команда Tar:

tar --exclude='*.log' -czvf - directory/ 2> splitted_tar.log | split --verbose --bytes=50MB - splitted_tar_file.tar.gz. >> splitted_tar.log

Выходные файлы:

eduardo@Notebook:~/testtar$ ll -h
total 299M
drwxr-xr-x  3 eduardo eduardo 4,0K mar  6 23:53 ./
drwxr-xr-x 41 eduardo eduardo 4,0K mar  6 23:16 ../
drwxr-xr-x  2 eduardo eduardo 4,0K mar  6 23:25 directory/
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:52 splitted_tar_file.tar.gz.aa
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:53 splitted_tar_file.tar.gz.ab
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:53 splitted_tar_file.tar.gz.ac
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:53 splitted_tar_file.tar.gz.ad
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:53 splitted_tar_file.tar.gz.ae
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:53 splitted_tar_file.tar.gz.af
-rw-r--r--  1 eduardo eduardo  13M mar  6 23:53 splitted_tar_file.tar.gz.ag
-rw-r--r--  1 eduardo eduardo  399 mar  6 23:53 splitted_tar.log

Файл журнала:

eduardo@Notebook:~/testtar$ cat splitted_tar.log 
directory/
directory/text.txt
directory/hugefile.dd
directory/file.any
directory/image.jpg
creating file 'splitted_tar_file.tar.gz.aa'
creating file 'splitted_tar_file.tar.gz.ab'
creating file 'splitted_tar_file.tar.gz.ac'
creating file 'splitted_tar_file.tar.gz.ad'
creating file 'splitted_tar_file.tar.gz.ae'
creating file 'splitted_tar_file.tar.gz.af'
creating file 'splitted_tar_file.tar.gz.ag'

Примечания:

  • Файл log. log не включается в окончательный файл .tar.gz из-за параметра - exclude (обязательно поместите его перед источником и {{ 1}} пункты назначения)
  • Подробный вывод Tar отправляется в STDERR, поэтому я использовал 2> LOG_FILE.log
  • Разделенный подробный вывод отправляется в STDOUT, я просто добавил его с помощью >> LOG_FILE .log
  • Чтобы "восстановить" ваш каталог (присоединиться, распаковать и распаковать), вы можете использовать:

      cat splitted_tar_file.tar.gz.a? | tar -xzvf - 
     
2
28.01.2020, 05:08

Теги

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