Пример настройки резервного копирования по расписанию
Цель настройки
Создать скрипт, который будет регулярно запускать консольный клиент, архивировать и переносить важные данные в объектное хранилище.
Что нужно для настройки
- консольный клиент (в примере S3cmd с инструментом для автоматизации crontab);
- облачный или выделенный сервер с установленной Ubuntu версии не ниже 18.04;
- пользователь с дост упом в объектное хранилище.
Результат настройки
Скрипт создаст резервную копию файла или каталога с помощью tar и загрузит резервную копию в объектное хранилище с помощью s3cmd.
Шаги настройки
- Создайте скрипт.
- Перенесите файлы в объектное хранилище.
- Настроить управление потоком.
- Проверьте скрипт.
- Опционально: автоматизируйте резервное копирование через crontab или Cyberduck.
1. Создать скрипт
-
Откройте на своем сервере домашнюю директорию:
cd ~
-
С помощью редактора nano создайте пустой файл (например, с именем
bkupscript
):nano bkupscript.sh
-
Начните писать скрипт резервного копирования в текстовом редакторе с шебанга:
#!/bin/bash
Шебанг — это директива интерпретатора, которая позволяет запускать скрипты или файлы данных как команды и выглядит как последовательность из двух символов:
#
и!
. Благодаря шебангу в начале скрипта оболочка запускает команды файла в bash. -
Под шебангом в верхней части текстового файла добавьте в скрипт переменные:
#!/bin/bash
DATETIME=`date +%y%m%d-%H_%M_%S`
SRC=$1
DST=$2
GIVENNAME=$3Здесь:
DATETIME
— метка времени, которую нужно прикрепить к имени полученного файла. Каждый файл, резервная копия которого хранится в пространстве, будет иметь уникальное имя. Эта временная метка создается путем вызова командыdate
и форматирования вывода для отображения двух последних цифр года (% y
), двух цифр месяца (% m
), двух цифр дня (% d
), час (% H
), минуты (% M
) и секунды (% S
);SRC
— исходный путь для файла или папки, в которую делается резервная копия.$1
указывает, что значение берется из первого параметра, переданного скрипту;DST
— место назначения файла. В примере это имя пространства, в которое загружается резервная копия. Это имя будет получено из второго параметра, переданного в скрипт, как указано в$2
;GIVENNAME
— выбранное пользователем имя для файла назначения. Результирующее имя файла будет начинаться сGIVENNAME
, и к нему будет добавленоDATETIME
. Это имя происходит от третьего параметра, переданного скрипту$3
.
-
Добавьте функцию
showhelp
в скрипт резервного копирования для вывода сообщений в случае сбоя работы скрипта:#!/bin/bash
DATETIME=`date +%y%m%d-%H_%M_%S`
SRC=$1
DST=$2
GIVENNAME=$3
showhelp(
echo "\n This script will backup files/folders into a single compressed file and will store it in the current folder."
}