Как заархивировать файлы на сервере

Обновлено: 04.07.2024

[tar] - Извлечь (распаковать) TAR Архив
$ tar -с /usr -xvf foo.tar

[tar.gz] - Извлечь и Разархивировать TAR Архив, сжатый с помощью GZIP
$ tar -xvzf foo.tar.gz -C /usr

[tar.bz2] - Извлечь и Разархивировать TAR Архив, сжатый с помощью BZIP2
$ tar -с /usr -xvjf foo.tar.bz2

[zip] Извлечь и Разархивировать ZIP Архив
unzip имя_архива.zip

Описание ключей
-x извлечь файлы из архива
-v выводить список обрабатываемых файлов
-f указать имя архива или TAR файла
-z разархивировать содержимое, сжатое с помощью программы gzip [tar.gz]
-j разархивировать содержимое, сжатое с помощью программы bzip2 [tar.bz2]
-C /usr - указывает в какую папку извлечь содержимое архива? если не указывать то будет извлечено в текущий каталог

[tar] - Показать содержимое TAR архива

[tar.gz] - Показать содержимое TAR архива, сжатого с помощью GZIP
$ tar -ztvf foo.tar.gz

[tar.bz2] - Показать содержимое TAR архива, сжатого с помощью BZIP2
$ tar -jtvf tar.bz2

-t показать содержимое архива

Извлечь Один Файл из TAR Архива
Используйте следующие команды для извлечения одного файла, скажем bar.txt, из архива :
$ tar -xvf foo.tar bar.txt
$ tar -xzvf foo.tar.gz bar.txt
$ tar -xjvf foo.tar.bz2 bar.txt

Также можно указать путь к файлу :
$ tar -xvf foo.tar docs/bar.txt
$ tar -xzvf foo.tar.gz docs/bar.txt
$ tar -xjvf foo.tar.bz2 docs/bar.txt

Извлечь Одну Папку из TAR Архива
Используйте следующие команды для извлечения одной папки, скажем docs, из архива :

$ tar -xvf foo.tar docs
$ tar -xzvf foo.tar.gz docs
$ tar -xjvf foo.tar.bz2 docs

Также можно извлечь какую-либо поддиректорию :
$ tar -xvf foo.tar docs/images
$ tar -xzvf foo.tar.gz docs/images
$ tar -xjvf foo.tar.bz2 docs/images

Запаковать файлы в tar.gz через SSH
tar -zcvf имя_архива архивируемая_папка
например
tar -zcvf folder.tar.gz folder/
пояснения
- c – значит, что создается новый архив;
- f – посредством этого флага задается имя создаваемого архива;
- z – архивация будет происходить посредством архиватора gzip;
- v – в консоль будет выводиться информация о процессе архивации.

Как запаковать файлы в zip через SSH
zip -r имя_архива архивируемая_папка
например
zip -r logs.zip logs/
пояснения
r означает, что нужно искать файлы в папке рекурсивно, иначе в архиве бы оказалась одна пустая папка.

Извлечь архив GZ (именно в этом формате хранятся архивные логи на серверах Unix) можно командой

gunzip fize.gz

gunzip удаляет исходный архив. Если нужно сохранить так же и исходный архив, используйте опцию -c с перенаправлением потока в файл:

Система архивации пришла на смену NTBackup с выходом Windows Server 2008 и на сегодняшний день является вполне зрелым и проверенным продуктом, но многие администраторы до сих пор не используют данную компоненту ОС, отдавая предпочтения альтернативным продуктам. Этому могут быть как объективные причины, так и непонимание принципов работы системы архивации Windows Server. Поэтому мы решили устранить возможные пробелы в знаниях при помощи данной статьи.

Мы довольно часто задавали знакомым системным администраторам вопрос: какие средства они используют для резервного копирования состояния своих серверов? И сильно удивлялись тому, что многие из них даже не упоминали систему архивации Windows Server. На следующий вопрос: почему они не используют этот инструмент, мы часто получали ответ, что они не понимают, как работает эта система, как управлять резервными копиями и т.д., и т.п. Отчасти причину можно назвать уважительной, когда нет понимания как работает то или иное средство то от его использования лучше отказаться.

А еще лучше разобраться как оно работает и начать применять его на практике. В новой системе архивации многие ожидают увидеть преемника привычного NTBackup, однако Microsoft полностью переработала механизм создания резервных копий и перед нами совершенно иной инструмент. Основным хранилищем резервных копий является диск, который самостоятельно размечается системой архивации и скрыт от пользователя. Также можно использовать уже размеченный том или сетевой ресурс, однако эти способы имеют свои ограничения и сводят на нет все преимущества новой технологии.

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

В системе архивации Windows Server вы отдаете в распоряжение службы целый диск, и она организует процесс хранения данных по собственному разумению. Хорошо это или плохо? На наш взгляд - хорошо. Потому что довольно часто встречаются ситуации, когда администратор неверно оценивает размер необходимого для хранения копий дискового пространства или происходит резкий скачок объема архивируемых данных. В этом случае очень велика вероятность получить отказ службы резервного копирования из-за отсутствия свободного места в самый неподходящий момент.

В Windows Server применяется принципиально иной подход. Проще всего провести аналогию с системами видеонаблюдения, когда поток непрерывно пишется на диск и в любой момент времени мы имеем некую продолжительность записи, определяемую объемом диска. Скажем, поставили диск на 500 ГБ - имеем неделю видео, заменили на 1 ТБ - две недели и т.д.

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

windows-server-backup-001.jpg

Здесь возникает еще одно затруднение. У многих администраторов слово диск ассоциируется только с физическим жестким диском, после чего сразу возникает масса вопросов: где взять столько дисков, как подключить их к серверам, как обеспечить хранение архивов отдельно от системы и т.д. и т.п. Да и выделять для бекапа рядового сервера даже 500 ГБ диск выглядит несколько расточительно. Поэтому самое время вспомнить о технологии iSCSI, которая позволяет сразу решить весь пласт "проблем".

Действительно, данную технологию сегодня поддерживают все системы, включая даже NAS ценовой категории чуть выше начальной, что позволяет грамотно распорядиться имеющимся дисковым пространством и организовать хранение архивов отдельно от систем. Microsoft рекомендует для хранения двух копий данных иметь в 1,5 раза больше дискового пространства, на наш взгляд данная цифра является несколько завышенной, особенно если вы копируете редко изменяемые данные, например, состояние сервера.

Мы немного забежим вперед и покажем результат архивирования тестового сервера с объемом архивируемых данных размером 29 ГБ:

windows-server-backup-002.jpg

Как видим, восемь копий состояния системы заняли примерно 9 ГБ, что довольно неплохо и общего объема, выделенного нами iSCSI диска в 60 ГБ, хватит примерно на три недели хранения ежедневных копий, что на наш взгляд более чем достаточно.

Для создания резервных копий используется механизм теневого копирования тома (VSS), который позволяет работать с открытыми и системными файлами, не прерывая работы системы и пользователей. Начиная с Windows Server 2012 система архивации позволяет также архивировать запущенные на хосте виртуальные машины Hyper-V и восстанавливать их состояние по отдельности. При использовании на сервере иного ПО использующего возможности теневого копирования система архивации имеет возможность сохранять журнал VSS, что обеспечит корректную работу этих служб при восстановлении.

Отдельно следует коснуться резервного копирования баз данных, если с поддерживающими теневое копирование продуктами, такими как MS SQL Server или Exchange, проблем не возникает, то со сторонними продуктами, например, PostgreSQL могут возникнуть проблемы. Механизм теневого копирования не проверяет логической целостности файлов, просто делая снимок их состояния на определенный момент времени, системы, поддерживающие VSS, умеют обрабатывать этот момент, приводя базу к непротиворечивому состоянию перед моментом создания теневой копии. Для неподдерживаемых систем мы просто получим срез базы на определенное состояние времени, при восстановлении такой базы она будет приведена в непротиворечивое состояние средствами СУБД, проще говоря будут отменены все незавершенные транзакции и может произойти потеря данных.

Исходя из вышесказанного можно сделать вывод, что система архивации Windows хорошо подходит для создания резервных копий системы и пользовательских данных, а также "родных" служб и приложений. Для архивации сложного стороннего ПО лучше использовать средства, предусмотренные производителем данного ПО.

Для того, чтобы начать использовать систему архивации Windows Server сначала нужно установить одноименный компонент, это делается через Мастер добавления ролей и компонентов.

windows-server-backup-003.jpg

Затем оснастку управления службой можно запустить либо через Средства в Диспетчере серверов, либо через ярлык в Панель управления - Администрирование.

windows-server-backup-004.jpg

Оснастка абсолютно типична для служб Windows Server и не вызывает каких-либо затруднений при работе с ней.

windows-server-backup-005.jpg

Беглый взгляд на экран сразу позволяет оценить текущие настройки и состояние службы, доступные действия сосредоточены справа. Их немного: Однократная архивация, архивация по расписанию и восстановление. Нас прежде всего интересует расписание, хотя однократная архивация тоже довольно удобный инструмент, который позволяет быстро сделать копию состояния сервера перед какими-нибудь потенциально опасными действиями, чтобы была возможность откатиться на самое их начало.

Нажав на Расписание архивации мы запустим одноименного мастера, который предлагает нам архивировать весь сервер целиком, либо указать объекты для выборочной архивации.

windows-server-backup-006.jpg

Заархивировать все и сразу мы всегда успеем, поэтому выберем настраиваемый тип архивации. Следующим шагом нам будет предложено выбрать объекты для архивации.

windows-server-backup-009.jpg

Для их добавления просто нажмите Добавить элементы.

windows-server-backup-007.jpg

Если выбрать Восстановление исходного состояния системы, то автоматически будут добавлены Состояние системы, системный раздел (диск C:) и служебный раздел с загрузчиком. К этим данным мы в учебных целях добавили папку с базами MS SQL, которые должны представлять некие пользовательские данные.

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

windows-server-backup-008.jpg

А также задать параметры службы теневого копирования, если у вас есть приложения использующие данную службу, например, MS SQL Server, то следует выбрать настройку Копировать журнал VSS, что обеспечит их нормальное взаимодействие со службой теневого копирования, в том числе и при восстановлении.

windows-server-backup-010.jpg

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

windows-server-backup-011.jpg

С расписанием разобрались, теперь самое время определиться с местом хранения архивов. На выбор предлагается три варианта, каждый из них довольно неплохо прокомментирован, что облегчает правильный выбор:

windows-server-backup-012.jpg

Как мы уже говорили, оптимальным является выделение для архивации целого диска, мы рекомендуем использовать для этой цели iSCSI диски, что позволяет решить сразу две основные задачи: оптимально использовать дисковое пространство и хранить архивы отдельно от системы.

Отдельно стоит остановиться на возможности разместить архив в сетевой папке, несмотря на жесткие ограничения этот способ удобно использовать при однократной архивации, когда нужно быстро создать архив и разместить его вне сервера.

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

windows-server-backup-013.jpg

На последнем шаге следует еще раз убедиться в правильности сделанных настроек и подтвердить их нажатием на кнопку Готово.

windows-server-backup-014.jpg

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

После того, как резервная копия создана будет не лишним проверить возможность восстановления из нее. Для этого выберем в оснастке одноименное действие, при этом будет запущен Мастер восстановления, который первым делом попросит указать расположение архива:

windows-server-backup-015.jpg

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

windows-server-backup-016.jpg

После чего указываем, что именно мы хотим восстановить:

В тоже время трудно переоценить возможность восстановления состояния системы, которая позволяет выполнить откат состояния ОС, не затрагивая при этом пользовательские данные. Это сильно выручает в ситуациях, когда между внесением изменений в систему и выявлением их негативного эффекта прошло какое-то время.

Восстановление состояния системы производится в два этапа каждый из которых завершается перезагрузкой.

windows-server-backup-019.jpg

windows-server-backup-020.jpg

windows-server-backup-021.jpg

Альтернативой восстановления состояния системы может служить восстановление на уровне тома, при этом все данные будут уничтожены и том будет приведен в состояние, в котором он находился на указанную дату. Это может оказаться полезным в случае вирусного инцидента, когда вы хотите быть уверенным, что в системе не осталось закладок вредоносного ПО, а также в случаях, когда исходный том был поврежден.

В общем и целом, данная операция ничем не отличается от восстановления тома из образа любым иным ПО, например, Acronis.

windows-server-backup-022.jpg

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

windows-server-backup-023.jpg

Как видим, система архивации Windows Server представляет собой весьма функциональный и удобный инструмент, позволяющий осуществлять успешное восстановление данных на любом уровне и в тоже время снимающая с администратора значительную часть забот по управлению этим процессом. Поэтому если вы еще не используете данную систему архивации, то после прочтения данного материала самое время более пристально к ней присмотреться.

В большинстве случае архивы позволяют эффективно сжать данные, экономя место файловой системы, а также служат удобным способом хранения информации. С архивами можно взаимодействовать как через графический интерфейс, так и через консоль. Ниже будет рассмотрен именно второй вариант, работа на сервере, подключенного через SSH, проводится через командную строку, далее будут приведены консольные инструменты для архивирования.

Распространённые форматы архивов

  • TAR (.tar) – популярный формат архивирования файлов на Unix-системах и одноименная программа для работы с взаимосвязанными форматами архивов. Для сжатия использует внешние утилиты — gzip, bzip2, lzip и другие. В архив, при создании, может записываться дополнительная информация. Например, о владельце и структуре каталогов.
  • GZ (.tar.gz / .tgz / .tar.gzip) – формат архива, выполняющий сжатие данных с помощью утилиты tar (для одного файла) и связки утилит gzip + tar (для нескольких файлов). Отличительная особенность — умение работать с непрерывным потоком данных. Поэтому GZ считается оптимальным инструментом для сжатия интернет-трафика.
  • BZIP2 (.tar.bz2 / .tar.bzip2 / .tbz2 / .tb2 / .tbz) – бесплатная утилита для компрессии данных с высоким качеством. В основном применяется на Unix платформах. По сравнению с GZ, работает медленнее и с большой нагрузкой на CPU, но эффективность сжатия выше.
  • ZIP (.zip) – распространённый тип архивов на Windows системах, позволяющий сжимать файлы и каталоги с использованием разных алгоритмов. Данный формат поддерживается почти всеми ОС, включая Windows, Mac OS X и Unix/Lin. Есть возможность создания самораспаковывающегося архива в виде исполняемого SFX-файла.
  • RAR (.rar) – популярный инструмент работы с архивацией на ОС семейства Windows. Аналог формата Zip. Многоформатный архиватор распространяется в виде программы WinRAR с графическим интерфейсом. Важные особенности — возможность восстановить часть данных, создание многотомных архивов.

Работа с архивами TAR, GZ, BZIP2

Синтаксис команды

Чтобы заархивировать /разархивировать файлы в TAR, GZ, BZIP2, команда составляется по аналогичной схеме. Делается это следующим образом (на примере TAR):

Основные аргументы

  • -c – создать архив.
  • -f – вывести имя или путь до архива.
  • -t – показать файлы в архиве (применяется при уже созданном архиве).
  • -v – показать обрабатываемые файлы.
  • -a – сжать или извлечь данные из архива с автоматическим выбором утилиты (gzip, bzip и т.д.), в зависимости от указанного расширения. Например, если файл называется «file.tar.gz», то к архиву автоматически будет применено сжатие с помощью gzip.
  • -x – извлечь данные из архива.

Создание архива TAR

Извлечение данных из архива TAR

Пример извлечения данных в текущую директорию:

Пример извлечения данных в определённую директорию:

Создание архива GZ

Извлечение данных из архива GZ

Пример извлечения данных в текущую директорию:

Пример извлечения данных в определённую директорию:

Создание архива BZ2

Извлечение данных из архива BZ2

Пример извлечения данных в текущую директорию:

Пример извлечения данных в определённую директорию:

Работа с ZIP-файлами

Подготовка

Для работы с данным типом архивов будут использоваться программы ZIP и UNZIP. На некоторых дистрибутивах данные утилиты отсутствуют, поэтому перед работой нужно выполнить инсталляцию соответствующих пакетов.

CentOS

Debian/Ubuntu

Создание архива ZIP

Синтаксис

Извлечение данных из архива ZIP

Синтаксис

Если не указывать аргумент «-d», то файлы будут распакованы в директорию с архивом, указанным в команде.

Работа с RAR архивами

Подготовка

Для работы с RAR архивами потребуется программа UNRAR, отсутствующая по умолчанию на некоторых дистрибутивах. Для ее установки, в терминал вводятся следующие команды.

CentOS

Debian/Ubuntu

Создание архива RAR

Синтаксис

Чтобы заархивировать каталог полностью (со всеми вложенными папками и файлами), нужно добавить ключ «-r». Команда будет выглядеть так:

Как распаковать или создать архив, используя SSH команды

В большинстве случаев, веб файловые менеджеры имеют определённые ограничения, когда заходит речь о распаковке файлов. Или может быть вы используете VPS вовсе без какой-либо панели, и распаковка архива потребует подключения по SSH и выполнить команды ssh над архивом определённого типа. Наиболее распространённые типы архивов .tar; .tar.gz и .zip, для каждого есть своя команда создания и распаковки.

Распаковка архивов, используя команды SSH

Прежде всего, вам понадобится перейти в тот каталог, где находится ваш архив. К примеру, если ваш архив находится в каталоге public_html/files, выполните команду, чтобы перейти туда:

Как распаковать .tar.gz

Следующая команда позволит вам распаковать содержимое архива .tar.gz:

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

Распаковать архив tar gz

Как распаковать .tar

Файл архива с таки типом сжатия можно распаковать следующей командой:

На экран появится список файлов вашего архива и по завершению распаковки консоль освободится для введения других команд.

Распаковать tar по ssh

Как распаковать .zip

Эта команда позволит распаковать .zip:

Как только завершиться процесс, командная строка будет свободна.

Распаковать zip по ssh

Создание архивов , используя команды SSH

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

Как создать .tar.gz

Показанный ниже метод позволит вам сжать выбранные файлы в архив:

Если вам нужно сжать содержимое каталога, воспользуйтесь этой командой:

По завершению, как и раньше, консоль освободится для дальнейших операций.

Создать tar.gz по ssh

Как создать .tar

Синтаксис создания архива .tar при помощи команды ssh очень простой:

Если вы хотите заархивировать каталог, просто укажите имя каталога в списке файлов для архивации.

Как только вы сможете снова запускать команды, это значит ваш архив готов.

Создать tar архив по ssh

Как создать .zip

Этот тип архива создавать ещё проще. Синтаксис выглядит так:

Сжатие каталога имеет такой же синтаксис:

На экране будет показан процесс создания архива и после завершения создания консоль снова освободится для других команд.

Создать zip архив по ssh

Заключение

Поздравляем! Следуя этим простым инструкциям вы теперь знаете, как создавать и распаковывать .tar.gz, .tar, .zip архивы, используя команды SSH.

Елена имеет профессиональное техническое образование в области информационных технологий и опыт программирования на разных языках под разные платформы и системы. Более 10 лет посвятила сфере веб, работая с разными CMS, такими как: Drupal, Joomla, Magento и конечно же наиболее популярной в наши дни системой управления контентом – WordPress. Её статьи всегда технически выверены и точны, будь то обзор для WordPress или инструкции по настройке вашего VPS сервера.

Читайте также: