Как заархивировать файлы на сервере
Обновлено: 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 ТБ - две недели и т.д.
Служба архивации работает аналогичным образом, записывая копии на диск до исчерпания свободного пространства, затем самые старые копии перезаписываются. Таким образом вы всегда будете иметь постоянную глубину резервного копирования, ограниченную только объемом диска, даже резкое увеличение копируемых данных не приведет к негативным последствиям, сократится только количество доступных копий.
Здесь возникает еще одно затруднение. У многих администраторов слово диск ассоциируется только с физическим жестким диском, после чего сразу возникает масса вопросов: где взять столько дисков, как подключить их к серверам, как обеспечить хранение архивов отдельно от системы и т.д. и т.п. Да и выделять для бекапа рядового сервера даже 500 ГБ диск выглядит несколько расточительно. Поэтому самое время вспомнить о технологии iSCSI, которая позволяет сразу решить весь пласт "проблем".
Действительно, данную технологию сегодня поддерживают все системы, включая даже NAS ценовой категории чуть выше начальной, что позволяет грамотно распорядиться имеющимся дисковым пространством и организовать хранение архивов отдельно от систем. Microsoft рекомендует для хранения двух копий данных иметь в 1,5 раза больше дискового пространства, на наш взгляд данная цифра является несколько завышенной, особенно если вы копируете редко изменяемые данные, например, состояние сервера.
Мы немного забежим вперед и покажем результат архивирования тестового сервера с объемом архивируемых данных размером 29 ГБ:
Как видим, восемь копий состояния системы заняли примерно 9 ГБ, что довольно неплохо и общего объема, выделенного нами iSCSI диска в 60 ГБ, хватит примерно на три недели хранения ежедневных копий, что на наш взгляд более чем достаточно.
Для создания резервных копий используется механизм теневого копирования тома (VSS), который позволяет работать с открытыми и системными файлами, не прерывая работы системы и пользователей. Начиная с Windows Server 2012 система архивации позволяет также архивировать запущенные на хосте виртуальные машины Hyper-V и восстанавливать их состояние по отдельности. При использовании на сервере иного ПО использующего возможности теневого копирования система архивации имеет возможность сохранять журнал VSS, что обеспечит корректную работу этих служб при восстановлении.
Отдельно следует коснуться резервного копирования баз данных, если с поддерживающими теневое копирование продуктами, такими как MS SQL Server или Exchange, проблем не возникает, то со сторонними продуктами, например, PostgreSQL могут возникнуть проблемы. Механизм теневого копирования не проверяет логической целостности файлов, просто делая снимок их состояния на определенный момент времени, системы, поддерживающие VSS, умеют обрабатывать этот момент, приводя базу к непротиворечивому состоянию перед моментом создания теневой копии. Для неподдерживаемых систем мы просто получим срез базы на определенное состояние времени, при восстановлении такой базы она будет приведена в непротиворечивое состояние средствами СУБД, проще говоря будут отменены все незавершенные транзакции и может произойти потеря данных.
Исходя из вышесказанного можно сделать вывод, что система архивации Windows хорошо подходит для создания резервных копий системы и пользовательских данных, а также "родных" служб и приложений. Для архивации сложного стороннего ПО лучше использовать средства, предусмотренные производителем данного ПО.
Для того, чтобы начать использовать систему архивации Windows Server сначала нужно установить одноименный компонент, это делается через Мастер добавления ролей и компонентов.
Затем оснастку управления службой можно запустить либо через Средства в Диспетчере серверов, либо через ярлык в Панель управления - Администрирование.
Оснастка абсолютно типична для служб Windows Server и не вызывает каких-либо затруднений при работе с ней.
Беглый взгляд на экран сразу позволяет оценить текущие настройки и состояние службы, доступные действия сосредоточены справа. Их немного: Однократная архивация, архивация по расписанию и восстановление. Нас прежде всего интересует расписание, хотя однократная архивация тоже довольно удобный инструмент, который позволяет быстро сделать копию состояния сервера перед какими-нибудь потенциально опасными действиями, чтобы была возможность откатиться на самое их начало.
Нажав на Расписание архивации мы запустим одноименного мастера, который предлагает нам архивировать весь сервер целиком, либо указать объекты для выборочной архивации.
Заархивировать все и сразу мы всегда успеем, поэтому выберем настраиваемый тип архивации. Следующим шагом нам будет предложено выбрать объекты для архивации.
Для их добавления просто нажмите Добавить элементы.
Если выбрать Восстановление исходного состояния системы, то автоматически будут добавлены Состояние системы, системный раздел (диск C:) и служебный раздел с загрузчиком. К этим данным мы в учебных целях добавили папку с базами MS SQL, которые должны представлять некие пользовательские данные.
Перед тем как двигаться дальше не забудьте заглянуть в Дополнительные параметры, здесь можно настроить исключения, например, совсем ни к чему копировать временные файлы.
А также задать параметры службы теневого копирования, если у вас есть приложения использующие данную службу, например, MS SQL Server, то следует выбрать настройку Копировать журнал VSS, что обеспечит их нормальное взаимодействие со службой теневого копирования, в том числе и при восстановлении.
Затем нужно будет создать расписание, задача предельно простая, можно запускать архивацию как один, так и несколько раз в день, минимальный шаг интервала - полчаса.
С расписанием разобрались, теперь самое время определиться с местом хранения архивов. На выбор предлагается три варианта, каждый из них довольно неплохо прокомментирован, что облегчает правильный выбор:
Как мы уже говорили, оптимальным является выделение для архивации целого диска, мы рекомендуем использовать для этой цели iSCSI диски, что позволяет решить сразу две основные задачи: оптимально использовать дисковое пространство и хранить архивы отдельно от системы.
Отдельно стоит остановиться на возможности разместить архив в сетевой папке, несмотря на жесткие ограничения этот способ удобно использовать при однократной архивации, когда нужно быстро создать архив и разместить его вне сервера.
Если вы выбрали диск, то он будет отформатирован и скрыт, это обеспечивает дополнительную защиту от возможных деструктивных воздействий, например, троянов-шифровальщиков.
На последнем шаге следует еще раз убедиться в правильности сделанных настроек и подтвердить их нажатием на кнопку Готово.
Теперь осталось дождаться указанного времени и убедиться, что процесс архивации был выполнен без сбоев. При создании расписания следует принять во внимание нагрузку на сеть и дисковую подсистему хранилища, что может приводить к снижению их производительности.
После того, как резервная копия создана будет не лишним проверить возможность восстановления из нее. Для этого выберем в оснастке одноименное действие, при этом будет запущен Мастер восстановления, который первым делом попросит указать расположение архива:
Затем указываем дату и время создания резервной копии на которую мы хотим откатиться, доступные даты подсвечиваются полужирным шрифтом.
После чего указываем, что именно мы хотим восстановить:
В тоже время трудно переоценить возможность восстановления состояния системы, которая позволяет выполнить откат состояния ОС, не затрагивая при этом пользовательские данные. Это сильно выручает в ситуациях, когда между внесением изменений в систему и выявлением их негативного эффекта прошло какое-то время.
Восстановление состояния системы производится в два этапа каждый из которых завершается перезагрузкой.
Альтернативой восстановления состояния системы может служить восстановление на уровне тома, при этом все данные будут уничтожены и том будет приведен в состояние, в котором он находился на указанную дату. Это может оказаться полезным в случае вирусного инцидента, когда вы хотите быть уверенным, что в системе не осталось закладок вредоносного ПО, а также в случаях, когда исходный том был поврежден.
В общем и целом, данная операция ничем не отличается от восстановления тома из образа любым иным ПО, например, Acronis.
При восстановлении папок и файлов можно гибко управлять параметрами восстановления, например, сохранив обе версии файла: текущую и восстанавливаемую, это полезно в тех случаях, когда файл был случайно перезаписан, но результат текущей работы также нужен. При восстановлении можно также восстановить все права доступа на файлы и папки, что важно, если у вас используется сложная система назначения прав.
Как видим, система архивации 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». Команда будет выглядеть так:
В большинстве случаев, веб файловые менеджеры имеют определённые ограничения, когда заходит речь о распаковке файлов. Или может быть вы используете VPS вовсе без какой-либо панели, и распаковка архива потребует подключения по SSH и выполнить команды ssh над архивом определённого типа. Наиболее распространённые типы архивов .tar; .tar.gz и .zip, для каждого есть своя команда создания и распаковки.
Распаковка архивов, используя команды SSH
Прежде всего, вам понадобится перейти в тот каталог, где находится ваш архив. К примеру, если ваш архив находится в каталоге public_html/files, выполните команду, чтобы перейти туда:
Как распаковать .tar.gz
Следующая команда позволит вам распаковать содержимое архива .tar.gz:
На экран будет выведен список файлов из архива и по завершению распаковки вы сможете ввести другую команду, при необходимости.
Как распаковать .tar
Файл архива с таки типом сжатия можно распаковать следующей командой:
На экран появится список файлов вашего архива и по завершению распаковки консоль освободится для введения других команд.
Как распаковать .zip
Эта команда позволит распаковать .zip:
Как только завершиться процесс, командная строка будет свободна.
Создание архивов , используя команды SSH
Теперь, когда мы уже знаем, как распаковать все эти типы архивов, рассмотрим также обратный процесс создания архива, сжатия файлов в любой желаемый формат.
Как создать .tar.gz
Показанный ниже метод позволит вам сжать выбранные файлы в архив:
Если вам нужно сжать содержимое каталога, воспользуйтесь этой командой:
По завершению, как и раньше, консоль освободится для дальнейших операций.
Как создать .tar
Синтаксис создания архива .tar при помощи команды ssh очень простой:
Если вы хотите заархивировать каталог, просто укажите имя каталога в списке файлов для архивации.
Как только вы сможете снова запускать команды, это значит ваш архив готов.
Как создать .zip
Этот тип архива создавать ещё проще. Синтаксис выглядит так:
Сжатие каталога имеет такой же синтаксис:
На экране будет показан процесс создания архива и после завершения создания консоль снова освободится для других команд.
Заключение
Поздравляем! Следуя этим простым инструкциям вы теперь знаете, как создавать и распаковывать .tar.gz, .tar, .zip архивы, используя команды SSH.
Елена имеет профессиональное техническое образование в области информационных технологий и опыт программирования на разных языках под разные платформы и системы. Более 10 лет посвятила сфере веб, работая с разными CMS, такими как: Drupal, Joomla, Magento и конечно же наиболее популярной в наши дни системой управления контентом – WordPress. Её статьи всегда технически выверены и точны, будь то обзор для WordPress или инструкции по настройке вашего VPS сервера.
Читайте также: