User Tools

Site Tools


bash:архивация_и_резервное_копирование

bash Архивация и резервное копирование

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

Программы сжатия:

  • <html>gzip</html> – сжимает и распаковывает файлы;
  • <html>bzip2</html> – программа поблочного сжатия файлов.

Программы архивирования:

  • <html>tar</html> – утилита архивирования на ленту;
  • <html>zip</html> – упаковывает и сжимает файлы.

И программа синхронизации файлов:

  • <html>rsync</html> – выполняет синхронизацию файлов и каталогов с удаленной системой.

Cжатие данных – это процесс устранения избыточных данных. Давайте рассмотрим воображаемый пример. Допустим, есть файл, хранящий изображение абсолютно черного квадрата размером 100 на 100 пикселов. В терминах хранения данных (если предположить, что каждый пиксел представлен 24 битами, или 3 байтами) изображение занимает 30 000 байт:

100 × 100 × 3 = 30 000

Изображение, состоящее из пикселов одного цвета, содержит массу избыточных данных. Будь мы умнее, мы могли бы закодировать данные в виде простого описания того факта, что изображение представлено блоком из 30 000 пикселов черного цвета. То есть вместо хранения блока данных с 30 000 нулей (черный цвет в файлах изображений обычно представлен нулевым значением) мы могли бы сжать данные до числа 30 000 с последующим нулем, описывающим цвет. Такая схема сжатия называется: кодированием длин серий (run-length encoding), и является одной из простейших технологий сжатия.

Современные технологии не в пример сложнее и эффективнее, но главная цель осталась прежней – избавиться от избыточных данных. Алгоритмы сжатия (математические методики, применяемые для осуществления сжатия) делятся на две основные категории:

  • Сжатие без потерь (lossless) – гарантирует сохранность всех данных, содержащихся в оригинале. То есть после восстановления файла из сжатой версии восстановленный файл будет иметь в точности то же содержимое, что и несжатый оригинал;
  • Сжатие с потерями (lossy) – удаляет некоторые данные во время сжатия, чтобы обеспечить более высокую степень сжатия. Восстановленный файл в этом случае не будет совпадать с оригинальной версией, скорее он будет близкой аппроксимацией оригинала. Примерами сжатия с потерями могут служить формат JPEG (для изображений) и MP3 (для музыкальных произведений).

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

Сжатие файлов

Статья о программе сжатия gzip

Статья о программе сжатия bzip2

Архивирование файлов

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

Статья об архиваторе tar
Статья о программе сжатия и архивирования zip

Синхронизация файлов и каталогов

В задачах резервного копирования систем широко используется стратегия синхронизации одного или нескольких каталогов с другими каталогами, находящимися в локальной системе (обычно на некотором извлекаемом устройстве) или в удаленной. Можно, к примеру, создать локальную копию веб-сайта, находящегося в разработке, и синхронизировать ее время от времени с «рабочей» копией на удаленном веб-сервере.

В мире Unix-подобных систем для решения этой задачи широко используется инструмент rsync. Эта программа синхронизует локальные и удаленные каталоги, используя протокол rsync remote-update (протокол удаленного обновления rsync), который позволяет rsync быстро обнаруживать различия между двумя каталогами и копировать минимальный объем данных, необходимый для синхронизации. Это делает программу rsync быстрой и экономичной по сравнению с другими программами копирования.

Статья о программе синхронизации rsync

bash/архивация_и_резервное_копирование.txt · Last modified: 2023/04/06 10:18 (external edit)