Как архивировать файлы и каталоги, настраивать атрибуты файлов и находить файлы в Linux -- LFCS часть 3

Как архивировать файлы и каталоги, настраивать атрибуты файлов и находить файлы в Linux — LFCS часть 3

LFCS

А вы знаете, как архивировать файлы и каталоги, настраивать атрибуты файлов и находить файлы в Linux? Недавно Linux Foundation начал сертификацию LFCS (Linux Foundation Certified Sysadmin), совершенно новую программу, цель которой — предоставить людям со всех уголков земного шара доступ к экзамену, который, если он одобрен, подтверждает, что человек хорошо осведомлен в выполнении от базовых до промежуточных задач администрирования системы Linux. Это включает в себя поддержку уже запущенных систем и сервисов, устранение неполадок и т.д.

Эта статья является 3 частью серии из 20 обучающих статей, здесь, в этой части, мы рассмотрим, как архивировать файлы и каталоги, устанавливать атрибуты файлов и находить файлы в файловой системе, необходимые для экзамена по сертификации LFCS.

 

Средства архивирования и сжатия

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

 

Утилита tar

Tar объединяет группу файлов в один архив (обычно называемый tar-файлом или tarball). Название первоначально предназначалось для ленточного архиватора, но мы должны отметить, что мы можем использовать этот инструмент для архивирования данных на любой вид записываемых носителей (не только на кассеты). Tar обычно используется с инструментом сжатия, таким как gzip, bzip2 или xz для создания сжатого tarball архива.

Основной синтаксис:

# tar [options] [pathname ...]

 

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

 

Наиболее часто используемые команды tar

Полный вариант Аббревиатура Описание
 —create  c Создает tar-архив
—concatenate  A Добавляет файлы tar в архив
—append  r Добавляет файлы в конец архива
—update  u Добавляет более новые файлы в архив
—diff or —compare  d Поиск различия между архивом и файловой системой
—file archive  f Используется чтобы заархивировать файл
—list  t Перечисляет содержимое tarball
—extract or —get  x Извлекает файлы из архива

 

Обычно используемые модификаторы:

Полный вариант Аббревиатура Описание
—directory dir  C Изменение директории каталога перед выполнением операций
—same-permissions  p Сохраняет исходные разрешения
—verbose  v  Перечисляет все файлы, считанные или извлеченные. Когда эта опция используется вместе с -list, отображаются размеры файлов, права собственности и отметки времени.
—verify  W  Проверяет архив после его записи
—exclude file  —  Исключает файл из архива
—exclude=pattern  X  Исключить файлы, указанные как PATTERN
 —gzip or —gunzip  z Обрабатывает архив через gzip
—bzip2  j Обрабатывает архив через bzip2
—xz  J Обрабатывает архив через xz

 

Gzip является самым старым инструментом сжатия и обеспечивает наименьшее сжатие, в то время как bzip2 обеспечивает улучшенное сжатие. Кроме того, xz является самым новым, и (обычно) обеспечивает наилучшее сжатие. Но наилучшее сжатие стоит вашего времени, необходимого для завершения операции, и системных ресурсов, используемых во время процесса.

Обычно tar-файлы, сжатые этими утилитами, имеют расширения .gz, .bz2 или .xz, соответственно. В следующих примерах мы будем использовать эти файлы: file1, file2, file3, file4 и file5.

 

Группировка и сжатие с помощью gzip, bzip2 и xz

Сгруппируйте все файлы в текущем рабочем каталоге и сожмите полученный пакет с помощью gzip, bzip2 и xz (обратите внимание на использование регулярного выражения, которое указывает, какие файлы должны быть включены в архив).

# tar czf myfiles.tar.gz file[0-9]
# tar cjf myfiles.tar.bz2 file[0-9]
# tar cJf myfile.tar.xz file[0-9]

 

Как архивировать файлы и каталоги, настраивать атрибуты файлов и находить файлы в Linux -- LFCS часть 3

 

 

Перечисление содержимого tarball и обновление/добавление файлов в пакет

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

# tar tvf [tarball]

 

List-Archive-Content

 

Выполните любую из следующих команд:

# gzip -d myfiles.tar.gz [#1]
# bzip2 -d myfiles.tar.bz2 [#2]
# xz -d myfiles.tar.xz [#3] 

 

Затем:

# tar --delete --file myfiles.tar file4 (deletes the file inside the tarball)
# tar --update --file myfiles.tar file4 (adds the updated file)

 

После этого:

# gzip myfiles.tar [ if you choose #1 above ]
# bzip2 myfiles.tar [ if you choose #2 above ]
# xz myfiles.tar [ if you choose #3 above ]

 

В заключение,

# tar tvf [tarball] #again

 

И сравните дату и время изменения файла с той информацией, что мы получили и ранее.

 

Исключение типов файлов

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

Возможно, вашей первой мыслью стало исключить из резервной копии все файлы с расширением .mp3 или .mp4 (или другими расширениями). Что делать, если у вас есть хитрый пользователь, который может изменить расширение на .txt или .bkp, в таком случае ваш подход не принесет вам много пользы. Чтобы обнаружить аудио- или видеофайлы, вам необходимо проверить его тип файла. Следующий сценарий оболочки выполнит эту работу:

#!/bin/bash
# Pass the directory to backup as first argument.
DIR=$1
# Create the tarball and compress it. Exclude files with the MPEG string in its file type.
# -If the file type contains the string mpeg, $? (the exit status of the most recently executed command) expands to 0, and the filename is redirected to the exclude option. Otherwise, it expands to 1.
# -If $? equals 0, add the file to the list of files to be backed up.
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*

 

Как архивировать файлы и каталоги, настраивать атрибуты файлов и находить файлы в Linux -- LFCS часть 3

 

Восстановление резервных копий с разрешениями tar

Теперь вы можете восстановить резервную копию в исходный домашний каталог пользователя (user_restore в этом примере), сохраняя разрешения, с помощью следующей команды.

# tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions

 

Restore-Files-from-Archive

 

Использование команды find для поиска файлов

Команда find используется для рекурсивного поиска файлов или каталогов, которые соответствуют определенным характеристикам, затем find выводит соответствующие файлы или каталоги или выполняет другие операции по совпадениям.

Обычно мы ищем по имени, владельцу, группе, типу, разрешениям, дате и размеру.

Основной синтаксис:

# find [directory_to_search] [expression]

 

Поиск файлов рекурсивно в зависимости от размера

Найдите все файлы (-f) в текущем каталоге (.) и двух подкаталогах (-maxdepth 3 включает текущий рабочий каталог и 2 уровня вниз), размер (-size) которого превышает 2 МБ.

# find . -maxdepth 3 -type f -size +2M

 

Как архивировать файлы и каталоги, настраивать атрибуты файлов и находить файлы в Linux -- LFCS часть 3

 

Поиск и удаление файлов, соответствующих определенным критериям

Файлы с разрешениями 777 иногда считаются «открытыми дверями» для злоумышленников. В любом случае, небезопасно позволять кому-либо делать что-либо с такими файлами. Мы примем довольно агрессивный подход и удалим их! (‘{}’ + используется для «сбора» результатов поиска).

# find /home/user -perm 777 -exec rm '{}' +

 

Find-Files-with-777-Permission

 

Поиск файлов по времени обращения или изменения

Найдите файлы конфигурации в /etc, к которым вы обращались (-atime) или изменены (-mtime) больше (+180) или меньше (-180), чем 6 месяцев назад или ровно 6 месяцев назад (180).

Измените следующую команду в соответствии с приведенным ниже примером:

# find /etc -iname "*.conf" -mtime -180 -print

 

Как архивировать файлы и каталоги, настраивать атрибуты файлов и находить файлы в Linux -- LFCS часть 3

 

Разрешения файла и основные атрибуты

Первые 10 символов в выводе ls -l являются атрибутами файла. Первый из этих символов используется для указания типа файла:

  • : обычный файл
  • -d: каталог
  • -l: символическая ссылка
  • -c: символьное устройство (которое обрабатывает данные как поток байтов, т.е. терминал)
  • -b: блочное устройство (которое обрабатывает данные в блоках, то есть устройствах хранения)

Следующие девять символов атрибутов файла называются файловым режимом и представляют собой разрешения на чтение (r), запись (w) и выполнение(x) для владельца файла, владельца группы файлов и остальных пользователей.

Разрешение на выполнение в файле позволяет обрабатывать его как программу, а в директории он разрешает то же, что и cd’ed.

Разрешения для файлов изменяются с помощью команды chmod, основной синтаксис которой таков:

# chmod [new_mode] file

 

Где new_mode является либо восьмеричным числом, либо выражением, которое определяет новые разрешения.

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

Наличие определенного разрешения равно 2 в степени (r = 2 во второй степени, w = 2 в первой степени, x = 2 в нулевой степени), а его отсутствие разрешения равно 0. Например:

File-Permissions

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

# chmod 744 myfile

 

Вы также можете установить режим файла, используя выражение, которое указывает права владельца с буквой u, правами владельца группы с буквой g, а остальное — буква o. Все эти «индивидуумы» могут быть представлены одновременно с буквой «а». Разрешения выдаются (или аннулируются) с символами + или соответственно.

 

Отмена разрешения выполнение для сценария оболочки (всем пользователям)

Как мы объясняли ранее, мы можем отозвать определенное разрешение, добавив знак «минус», и указав, нужно ли его отзывать для владельца, владельца группы или всех пользователей. Нижеуказанную команду можно интерпретировать следующим образом: Изменить режим для всех (a) пользователей, аннулировать () разрешение на выполнение (x).

# chmod a-x backup.sh

 

Предоставление прав на чтение, запись и выполнение файла владельцу и владельцу группы.

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

  • Владелец: (r = 2^2 + w = ​​2^1 + x = 2^0 = 7),
  • Владелец группы: (r = 2^2 + w = ​​2^1 + x = 2^0 = 7),
  • World: (r = 2^2 + w = ​​0 + x = 0 = 4).
# chmod 774 myfile

 

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

Linux-File-Listing

 

Владелец файла изменяется с помощью команды chown. Владелец и владелец группы могут быть изменены одновременно или отдельно. Его основной синтаксис выглядит следующим образом:

# chown user:group file

 

В синтаксисе должен обязательно присутствовать пользователь или группа.

 

Несколько примеров

Изменение владельца файла.

# chown gacanepa sent

 

Изменение владельца и группы файла для определенной группы пользователей.

# chown gacanepa:gacanepa TestFile

Изменение только владельца группы файла в определенной группе. Обратите внимание на двоеточие перед именем группы.

# chown :gacanepa email_body.txt

 

Итог

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

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University.

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
LFCS

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню