Большинство пользователей Linux знакомы с командой
cp для копирования файлов. Однако немногие знают о её встроенной поддержке версионности.
Эта функция может быть особенно полезна для системных администраторов и разработчиков, которым необходимо поддерживать несколько версий конфигурационных файлов или исходного кода.
Понимание версионности в cpКоманда
cp предлагает два ключевых параметра для поддержки версионности:
1.
--backup: создаёт резервную копию файла назначения перед его перезаписью.
2.
--suffix: задаёт пользовательский суффикс для резервной копии.
Простое резервное копированиеЧтобы создать простую резервную копию:
$ cp --backup=numbered /путь/к/исходному/файлу /путь/к/папке/назначения/
Эта команда создаёт резервную копию с суффиксом по умолчанию (
~) и увеличивающимся номером (например,
файл.~1~,
файл.~2~ и т.д.).
Резервная копия с пользовательским суффиксомДля более наглядных резервных копий:
$ cp --backup=numbered --suffix=.bak /путь/к/исходному/файлу /путь/к/папке/назначения/
Это создаёт резервные копии с суффиксом
.bak и увеличивающимся номером (например,
файл.bak.1,
файл.bak.2 и т.д.).
Практический пример: резервное копирование конфигурации SSHПредположим, вы часто обновляете файл конфигурации SSH (
/etc/ssh/sshd_config) для управления правилами доступа. Вот как можно вести версионированные резервные копии:
1. Создание резервной копии с нумерацией:
$ cp --backup=numbered /etc/ssh/sshd_config /data/backup/
Это создаёт файлы вида
sshd_config.~1~,
sshd_config.~2~ и т.д.
2. Создание резервной копии с пользовательским суффиксом:
$ cp --backup=numbered --suffix=.bak /etc/ssh/sshd_config /data/backup/
Это создаёт файлы вида
sshd_config.bak.1,
sshd_config.bak.2 и т.д.
Преимущества🔹Сохраняется история изменений файлов
🔹Предотвращается случайная перезапись важных данных
🔹Предлагается простая система версионности без необходимости использовать сложные системы контроля версий
👉
DevOps Portal