Введение
Обычно я использую для бэкапов rsync. Это гибкое и удобное средство, но в некоторых случаях им неудобно пользоваться. У него есть как плюсы, так и минусы. Как я использую и настраиваю rsync для бэкапа, я рассказал в отдельной статье. Если вы хотите получить компактный бэкап всей системы, или хранить на удаленном сервере бэкап с множеством файлов и директорий, вам придется как-то упаковывать файлы в архивы и передавать их. Кучу мелких файлов в сыром виде передавать медленно и неудобно.
Я часто использую для хранения бэкапов Yandex.Disk. Готовый кейс по настройке бэкапа сайта на яндекс.диск я уже приводил ранее. Диск монтируется по webdav и работает достаточно медленно. Передавать кучу мелких файлов по нему не удобно. Я решил посмотреть, что есть еще из средств бэкапа. Параллельно хотел рассмотреть вопрос удобного бэкапа всего сервера.
Нашел любопытную программу duplicity. Раньше слышал о ней, но руки не доходили проверить самому. Теперь дошли, перейдем к настройке полного бэкапа сервера.
Введение
Правильное создание и безопасное хранение бэкапов задача важная и необходимая. Можно относится халатно, но тогда в случае проблем можете обнаружить что резервных копий нет или они просто испорчены.
Из статьи вы узнаете как я подхожу к этому вопросу и защищаю бэкапы всех своих ресурсов надежно и безопасно в системах Linux.
В примере будет рассмотрен вариант для резервного копирования файлов и базы данных сайта, но можно этот подход использовать и для других задач.
Можно использовать для резервных копий разные программные комплексы или пользоваться средствами которые предоставляют хостинги, но для этого необходимо их изучать или производить финансовые затраты. Лично я предпочитаю использовать механизмы проверенные временем и хранить все бэкапы на своих ресурсах.
Введение
Ранее я уже неоднократно рассматривал вопрос резервного копирования данных или целых серверов linux. Конкретно в этих статьях:
- Бэкап сервера с помощью Duplicity.
- Создание резервной копии на Яндекс.Диске.
- Настройка Rsync для бэкапа данных.
Забэкапить сразу весь сервер можно, например, с помощью Duplicity. Но вот восстановить его на другом железе будет не так просто. Помимо данных нужно будет, как минимум, позаботиться о разметке диска, установке загрузчика. На это необходимо затратить некоторые усилия и немного разбираться в теме initramfs и grub. Сам я не очень разбираюсь в нюансах работы этих инструментов и очень не люблю с ними возиться.
Некоторое время назад появился отличный бесплатный продукт для бэкапа всего сервера целиком. Речь идет о Veeam Agent for Linux FREE. С его помощью можно сделать полный backup сервера, положить его куда-нибудь по smb или nfs, потом загрузиться с live cd и восстановить из бэкапа на другом железе.
Сразу расскажу о некоторых нюансах работы бесплатной версии, с которыми столкнулся в процессе эксплуатации замечательного продукта от veeam.
- Бэкап можно сделать либо всего сервера сразу, либо отдельного диска, либо отдельных папок и файлов. При выборе бэкапа всего диска или сервера, нельзя задать исключения для отдельных папок или файлов. Это очень неудобно, но увы и ах, таков функционал. Исключения можно сделать только если вы делаете бэкап на уровне папок.
- Бэкап можно положить локально на соседний раздел, если делаете резервную копию раздела, локально в папку — если делаете бэкап файлов и папок. Если бэкапите всю систему целиком, то удаленно по smb и nfs. К сожалению, по ftp или sftp программа не работает.
В качестве хранилища для архивов может выступать репозиторий Veeam Backup & Replication. Но я не рассматриваю этот вариант, так как в данном случае использую только бесплатное решение.
Мне очень хотелось настроить резервную копию всего сервера на Яндекс.Диск, но, к сожалению, у меня это не получилось из-за технических ограничений. Яндекс.Диск подключается к системе через webdav. Для того, чтобы сделать резервную копию всей системы, нужно бэкапить либо всю систему сразу, либо образ диска. Если у вас небольшой веб сервер, то скорее всего на нем только один раздел. На этом же разделе хранится кэш, который использует webdav для передачи файлов. Без кэша он работать не умеет.
Думаю вы уже поняли, в чем проблема сделать полный backup сервера с помощью Veeam Agent for Linux на Яндекс.Диск по webdav. Вы не сможете добавить в исключения папку с кэшом от webdav. В итоге, во время бэкапа с помощью veeam будет расти папка с кэшом webdav, которая, в свою очередь, будет бэкапиться. В итоге, свободное место на диске закончится, бэкап прервется.
Я подробно описал ситуацию с Яндекс.Диском, потому что пространство на нем не дорого стоит. Я часто его использую в повседневной жизни, настраиваю бэкапы, храню данные и т.д. В общем, мне он нравится по ряду причин. Для того, чтобы бэкапить весь сервер целиком, вам придется найти место для архивных копий с доступом по smb или nfs. Таких предложений не очень много на рынке. Практически не из чего выбирать, я специально искал.
Остановился вот на этом варианте — KeyDisk. После оплаты, вам дают адрес сервера, логин и пароль. Вы можете сразу же подключаться по smb к хранилищу. Можно прям в windows через два обратных слеша зайти или подмонтировать хранилище к linux серверу.
KeyDisk стоит примерно 350р. в месяц за 100 гигов. Не очень дешево, конечно, в сравнении с облачными сервисами, но все равно не дорого. Похожих предложений с доступом по smb я лично вообще не нашел в принципе. Этот объем позволит вам забэкапить небольшой веб сервер с глубиной архива в несколько недель или месяцев, в зависимости от того, сколько данных у вас на нем хранится.
Дальше я подробно на конкретном примере расскажу как все настроить и восстановить или перенести сервер целиком, если понадобится. Причем переносить буду вообще на другое железо. Но обо всем по порядку.
Настройка полного бэкапа сервера
Сделать бэкап с помощью Veeam Agent for Linux очень просто. Вариантов настроек не так много, можете сами все проверить и посмотреть. Я для примера рассмотрю вариант с созданием полного бэкапа всей системы и перенос ее на другое железо. Создаем задачу для резервного копирования сервера на наше хранилище по smb.
# veeam
Нам сразу же предлагают указать файл с лицензией. Так как у нас лицензии нет, то отказываемся. Нас встречает главное окно программы.
Нажимаем C (configure) для настройки задания на backup. Задаем любое имя задания, затем указываем, что будем делать полный бэкап сервера.
В качестве приемника для архива системы, указываем Shared Folder.
Далее нужно ввести параметры доступа к хранилищу бэкапов. Я использую свои от системы KeyDisk.
В пункте Restore Points указывается глубина архива. Это число копий, которые будут храниться на сервере. Если делать бэкап каждый день и указать число 14, то будут храниться резервные копии системы за последние 14 дней. Если делать будете через день, то за 28 дней и т.д.
Можно создавать несколько заданий с различной глубиной архива. Например, каждый день с глубиной 7 копий, раз в неделю с глубиной 4, и раз в месяц с глубиной в 12. Таким образом у вас всегда будут последние 7 бэкапов системы на этой неделе. Потом по одному бэкапу в неделю за последний месяц и 12 бэкапов по месяцам в течении последнего года.
Если получите ошибку:
Current system does not support cifs. Please install cifs client package.
Установите пакет cifs. В CentOS вот так:
# yum install cifs-utils
И так в Debian/Ubuntu:
# apt install cifs-utils
Запускайте заново veeam и продолжайте. После настройки Destination, предлагается указать скрипты для выполнения перед и после бэкапа. Нам сейчас это не надо. Далее настраиваем расписание и запускаем задание на архивацию в конце настройки.
Запустилась архивация. Можно следить за ее прогрессом.
После завершения архивации системы, можно проверить содержимое сетевого хранилища, зайдя на него прямо из винды.
На этом настройку полного бэкапа сервера мы завершили. Резервная копия системы лежит в надежном месте. Попробуем теперь с нее восстановиться.
Prerequisites¶
Duplicati depends on other software. For Windows, Microsoft .NET Framework 4.6.2 or higher needs to be installed. Linux and Mac OS X require Mono to be installed.
If your system has no or an outdated version of the .NET Framework, download the latest version from https://www.microsoft.com/net/download/framework and install it.
To be able to backup files that are in use by another process, Duplicati uses AlphaVSS to accomplish this. AlphaVSS needs the Visual C++ run-time components for Visual Studio 2015. Download and install the binaries from https://www.microsoft.com/en-us/download/details.aspx?id=48145.
Follow this procedure to install Mono on your Linux based system.
Ubuntu 20.04 / 20.10:
Ubuntu 18.04:
Ubuntu 16.04:
Ubuntu 14.04:
Ubuntu 12.04:
Debian 10:
Debian 9:
Debian 8:
Debian 7:
Raspbian 9:
Raspbian 8:
CentOS 7:
CentOS 6:
Raspberry Pi Debian Buster:
Download the latest Mono version from http://www.mono-project.com/download/. Run the .pkg file and accept the terms of the license.
Alternatively, you can install Mono using Homebrew:
first exemplar script
This script backs up the GPass password file that I use. Notice that I have Duplicity set to not encrypt the GPass files. Not only is it not necessary to encrypt those files since GPass has already encrypted them, but it’s especially important not to encrypt them again since I keep my long generated pass phrase that I’m using to encrypt the other backup sets in the GPass password file. If the GPass file was encrypted, it would really be a problem if my computer was destroyed and I wanted to restore some of my files elsewhere. In order to get the pass phrase to restore the files that I keep in GPass, I would have to decrypt the GPass files with the very same pass phrase.
#
# Script created on 12-1-2005
#
# This script was created to make Duplicity backups.
# Full backups are made on the 1st day of each month.
# Then incremental backups are made on the other days.
#
# Loading the day of the month in a variable.
date=`date +%d`
# Setting the pass phrase to encrypt the backup files.
export PASSPHRASE=’SomeLongGeneratedHardToCrackKey’
export PASSPHRASE
# Setting the password for the FTP account that the
# backup files will be transferred to.
FTP_PASSWORD=’WhateverPasswordYouSetUp’
export FTP_PASSWORD
# Check to see if we’re at the first of the month.
# If we are on the 1st day of the month, then run
# a full backup. If not, then run an incremental
# backup.
if
then
duplicity full —no-encryption /home/user/.gpass ftp://FtpUserID@ftp.domain.com/passwords >>/var/log/duplicity/passwords.log
duplicity full /media/data/backup ftp://FtpUserID@ftp.domain.com/personal >>/var/log/duplicity/personal.log
duplicity full /etc ftp://FtpUserID@ftp.domain.com/etc >>/var/log/duplicity/etc.log
else
duplicity —no-encryption /home/user/.gpass ftp://FtpUserID@ftp.domain.com/passwords >>/var/log/duplicity/passwords.log
duplicity /media/data/backup ftp://FtpUserID@ftp.domain.com/personal >>/var/log/duplicity/personal.log
duplicity /etc ftp://FtpUserID@ftp.domain.com/etc >>/var/log/duplicity/etc.log
fi
# Check http://www.nongnu.org/duplicity/duplicity.1.html
# for all the options available for Duplicity.
# Deleting old backups
duplicity remove-older-than 1Y —force ftp://FtpUserID@ftp.domain.com/passwords >>/var/log/duplicity/passwords.log
duplicity remove-older-than 1Y —force ftp://FtpUserID@ftp.domain.com/personal >>/var/log/duplicity/personal.log
duplicity remove-older-than 1Y —force ftp://FtpUserID@ftp.domain.com/etc >>/var/log/duplicity/etc.log
# Unsetting the confidential variables so they are
# gone for sure.
unset PASSPHRASE
unset FTP_PASSWORD
exit 0
Резервная конфигурация
Для установки конфигурации для резервного копирования в Ubuntu выберите Папки для сохранения вкладки от левой панели окна приложения. Вы видите, что это имеет Домашнюю папку, добавленную по умолчанию. Для удаления его выберите папку и затем нажмите кнопка.
Добавьте папки в резервном копировании
Для добавления определенных файлов и папок в целях резервного копирования нажмите кнопка как показано на следующем экране.
Это откроет другой экран. С того экрана можно перейти к папкам, которые Вы хотите скопировать. Как только Вы выбрали необходимую папку, нажмите на кнопку Add.
Как только Вы добавили их, Вы будете видеть их перечисленный в Папках для сохранения вкладки.
Исключите папки из того, чтобы быть сохраненным
Например, Вы выбрали целый каталог для резервного копирования, и оно включает некоторые папки, которых Вы не хотите создавать резервную копию, потому что это содержит неважный материал. Существует опция исключить их. Выберите Папки для игнорирования вкладки от левой панели, затем нажмите + кнопка.
Из окна, которое появляется, выберите папки, которые Вы хотите исключить, затем нажать на кнопку Add.
Как только Вы добавляете их, Вы будете видеть их перечисленный в Папках для игнорирования вкладки.
Выберите Местоположение резервирных копий
Как только Вы выбрали данные для резервного копирования, нажмите на Место хранения для выбора местоположения для хранения резервного копирования. На левой панели нажмите на вкладку Места хранения. Вы будете на правой панели, существует опция выбрать место хранения. Можно принять решение сохранить на локальной папке, сетевом сервере, Следующем облачном сервисе или диске Google. После выбора этой опции выберите папку на вышеупомянутом выбранном местоположении.
Current development status
Duplicity is fairly mature software. As any software, it may still have a few bugs, but
will work for normal usage and is in use now for large personal and corporate backups.
If you have questions try the
mailing list.
Bug reports and bug fixes can be entered through the
Launchpad project page.
In theory many protocols for connecting to a file server could be
supported; so far
- Amazon S3
- Backblaze B2
- DropBox
- ftp
- GIO
- Google Docs
- Google Drive
- HSI
- Hubic
- IMAP
- local filesystem
- Mega.co
- Microsoft Azure
- Microsoft Onedrive
- par2
- Rackspace Cloudfiles
- rclone
- rsync
- Skylabel
- ssh/scp
- SwiftStack
- Tahoe-LAFS
- WebDAV
Generating GPG Keys
Next, we will generate a GPG key pair for our user. To ensure the secure transmission of information, GPG uses public key encryption. What this means in our context is that data will be encrypted to our public key and sent to our repository. For more about GPG keys and encryption see our tutorial on How To Use GPG to Sign and Encrypt Messages.
Our keyrings will be stored on our user account in a directory called , which will be created when we generate the keys. When we use the command, we will specify a public key identifier that points to our key pair. Using this identifier enables data encryption and the signature that verifies our ownership of the private key. The encrypted data will be transmitted to our repository, where it will be difficult to infer much more than file size and upload time from the files themselves. This protects our data, which our user can restore in full at any time with the private key.
GPG should be installed on our server by default. To test this, type:
Once you have verified that GPG is installed, you can generate a key pair as follows:
You will be asked a series of questions to configure your keys:
- Type of key. Select (1) RSA and RSA (default).
- Size of key. Pressing will confirm the default size of 2048 bits.
- Key expiration date. By entering 1y, we will create a key that expires after one year.
- Confirm your choices. You can do this by entering y.
- User ID/Real name. Enter your name.
- Email address. Enter your email address.
- Comment. Here, you can enter an optional comment that will be visible with your signature.
- Change (N)ame, omment, (E)mail or (O)kay/(Q)uit? Type O if you are ready to proceed.
- Enter passphrase. You will be asked to enter a passphrase here. Be sure to take note of this passphrase. We will refer back to it throughout the rest of this tutorial as .
After you have created these settings, will generate the keys based on the level of entropy in the system. Since we installed , our keys should be generated either very quickly or right away. You will see output that includes the following:
Take note of , as we will be using it in the next section to configure our local environment variables.
Installing Duplicity
To get an up-to-date version of Duplicity, we can install it from the Duplicity releases Personal Package Archive (PPA):
We will also install the package to have access to Boto, a Python package that provides interfaces to Amazon Web Services. This will help us take advantage of Spaces’ interoperability with the AWS S3 API. We will install from the official Ubuntu repositories, since this version is compatible with the version of Python that ships with our Ubuntu server image. If you would prefer to use Boto3, you can install it from source, although feature compatibility with Python 3.3+ is still under development.
In addition to , we will also install Haveged, a tool that will help us generate the entropy necessary to create our GPG keys. In order to create these keys, GPG draws on the level of entropy or unpredictability in our system. Installing will help us speed up the key creation process.
Before installing these packages, update the local repository index:
Then install , , and by typing:
Press when prompted to confirm installation. We now have Duplicity installed on our system and are ready to create our project folders and configuration files.
Backup Linux системы sbackup
SBackup (Simple Backup Suite) — спокойное решение для резервного копирования. Это решение для рабочего стола Gnome, где пользователи могут заполучить доступ ко всей конфигурации через интерфейс Gnome. Пользователи могут использовать постоянное выражение для указания путей файлов и каталогов в процессе резервного копирования. Программа дополнительного копирования Simple Backup Suite (sbackup) рассчитана для рабочего стола Gnome. В ассоциации с прошедшим праздником Дня защитника Отечества, с которым я и поздравляю читателей блога, хочется говорить о безопасности.
Фундаментом надёжной обороны является резервное копирование, позволяющее даже в варианте успешных действий потенциального противника (будь то авария железа или деструктивные последствия вмешательства неискусных рук) вернуть систему в работоспособное состояние, а, главное, восстановить пользовательские данные. Среди специальных возможностей стоит выделить: возможность создавать сжатые и несжатые копии; поддерживаются контурные профили резервного копирования; возможность регистрации и уведомлений по почте; возможность запланировать резервное копирования и случать копирование вручную; разделение несжатых копий на пару частей; поддерживается локальное и далёкое резервное копирования.
Bakula
Bakula – это инструмент резервного копирования с открытым исходным кодом, предназначенный для предприятий, который позволяет пользователям легко создавать безопасные резервные копии данных.
Это очень продвинутый инструмент, и многим он нравится, потому что им легко пользоваться, а также благодаря множеству полезных функций.
Средство резервного копирования Bakula в основном используется графически, хотя оно также имеет “звездный” консольный интерфейс, который идеально подходит, если вы большую часть времени живете в терминале Linux.
Известные особенности
- Bakula позволяет пользователям шифровать свои резервные копии данных в целях безопасности. Кроме того, он поддерживает хеширование MD5, что упрощает проверку целостности данных.
- Bakula выполняет сжатие данных на стороне клиента, что помогает снизить пропускную способность сети.
- Bakula имеет кроссплатформенное клиентское приложение, которое позволяет синхронизировать ваши резервные копии практически с любой операционной системой.
Копирование rsync через ssh
Rsync может работать через ssh. Это избавляет от необходимости настраивать отдельно службу и авторизацию, но при этом будут использоваться системные учетные записи. У меня есть предположение, что производительность при подключении по ssh будет ниже, но я нигде не видел подтверждения этому.
Для того, чтобы скопировать файлы с помощью rsync по ssh нет необходимости запускать службу, настраивать конфиг, создавать файл с авторизацией. Можно просто запустить примерно такую команду на передачу файлов.
# /usr/bin/rsync -avz --progress --delete root@10.1.6.221:/data/mysql_dump /backup
Будьте внимательны при использовании ключа —delete. Не перепутайте источник, откуда качаете файлы, с приемником, куда копируете. Если их перепутать и в качестве источника указать пустую папку, а в качестве приемника с файлами, файлы будут удалены моментально и без предупреждения.
Если для подключения вы используете публичный ключ или нестандартный порт ssh, указать эти параметры можно следующим образом.
# /usr/bin/rsync -avz --progress --delete -e "ssh -p 1234 -i /root/.ssh/id_rsa.pub" root@10.1.6.221:/data/mysql_dump /backup
Бэкап Linux с помощью backuppc
BackupPC поставляется с верным веб-интерфейсом, который позволяет вам собирать и управлять централизованным образомрезервными копированиями других далёких хостов. Программа BackupPC настраивается и управляется через веб-интерфейс, поэтому для ее работы необходим установленный веб-сервер apache (Linux Debian). BackupPC — свободное ПО (распространяется под GNU General Public License) для дополнительного копирования данных с управлением через веб-интерфейс. Нет необходимости в клиентской части, так как сервер сам по себя является клиентом для нескольких протоколов, которые поддерживаются родными службами клиентской ОС.
BackupPC — система дополнительного копирования, ориентированная на диски. В этом сообщение я представлю вам BackupPC, программный кросс-платформенный бэкап сервер, какой через сеть может вытянуть резервное копирование клиентов Linux, Windows и MacOS. В BackupPC прибавлено ряд функций, которые делают резервное копированиче чуть ли не приятной вещью. Это программное обеспеченье для кросс-платформенной резервной копии, которое может работать в Unix/Linux, Windows и Mac OS X. Оно нужно для использования на уровне предприятия с высокой производительностью. BackupPC может использоваться на серверах, необходимых и портативных компьютерах. Кроссплатформенный программный сервер может работать на любом сервере под правлением GNU/Linux, Solaris или UNIX.
Configuring the Duplicati Tray Icon in Windows¶
If you have chosen Launch Duplicati at startup, but don’t want to use the internal server component of the Tray Icon tool, you have to edit the properties of the Duplicati shortcut in the Windows Startup folder. Usually Windows Startup folder is located at
Browse to this folder and edit the properties of the Duplicati 2 shortcut. Add space and after to the Target field. So the end of the line should look like
Because at the moment the internal server component of the Tray Icon tool is already running you need to restart your PC for changes to take effect. After PC restart a Duplicati icon will be shown in the system tray after logging in to Windows, but the Duplicati server component needs to be started separately.
Download
The current stable 0.8 release is 0.8.20, released June 26. 2021.
- See: duplicity-0.8.20 for details and download link
- Refer to the Changelog for the gory details from git.
The last stable 0.7 release is 0.7.19, released Apr 19, 2019.
- See: duplicity-0.7.19 for details and download link
- Refer to the Changelog for overview of the recent changes
and to GNU Changelog for the gory details from Bazaar.
Warning: If you are upgrading from your distribution’s repository to the tarball version,
or from the tarball version to your distributions version,
please be sure to remove or purge the distribution’s version of duplicity. Failure to do so may result in
confusing results since the repository and tarball versions may install in different locations.
Older versions are also available for the budding historians in the
downloads area.
There are multiple ways of downloading and installing duplicity:
- Source — New home on Gitlab
- Stable tarball install — all versions
- Daily duplicity PPA — duplicity-develop-git
- Stable duplicity PPA — duplicity-release-git
- Stable snap builds — sudo snap install duplicity —classic
- Latest snap builds — sudo snap install duplicity —classic —edge
- Latest pip3 builds — sudo pip3 install duplicity
Michael Terry
maintains the
deja-dup PPA for
deja-dup.
Updates to the PPA will sometimes lag behind the above updates, so please be patient.
Edgar Soldin
maintains duply (formerly known as ftplicity), a shell front end that simplifies the usage by keeping settings for backup jobs in profiles.
It supports pre/post backup scripts and executing multiple commands in a batch mode.
All the code here is GPL’ed (free software). Duplicity is also part of the
Fedora,
Debian, and
Ubuntu
distributions of GNU/Linux.
mtime, atime and ctime
Ubuntu records three different times for each file:
- mtime — modification time; this value is changed when the contents of the file is changed.
note: file system backups change atime while raw device backups will not. If you are implementing incremental or differential backups this is important
- atime — access time; the value of this is changed when the file is accessed. The atime can also change when a backup utility or script has read the file as well as when a user has reads the file.
- ctime — change time; the value is updated whenever the attributes of the file change. This can be ownership or permission.
Recovery
note: many people consider only the backup part of this process and do nothing to verify that the backup can be restored. It is very important to test that your backup process is working and that data can be recovered.
It is crucial that your backups are tested by restoring them. Here are some tests you should do to ensure that you can recover from a disaster:
- Restore many single files
- Restore an older version of a file
- Restore an entire folder
- Restore an entire drive and compare the checksum
If you do not test you may find out that nothing was being backed up when you need to restore the files in reality.
Основные операции с Облачным хранилищем в консоли
Получение списка файлов в контейнере
Чтобы получить список файлов, хранимых в некотором контейнере, используется опция (или ):
Результат вывода:
Примечание: иногда в Linux-системах некорректно отображаются файлы с именами, набранными кириллицей.
Открытие файла для редактирования на локальной машине
С помощью консольной версии Cyberduck можно открывать файлы для редактирования на локальной машине, по завершении редактирования в хранилище будет загружена обновленная (со всеми внесенными изменениями) версия файла. Для этого используется аргумент :
Файл будет открыт в приложении, используемом в системе для данного типа файлов. Загрузка измененненной версии начнется автоматически. Эта функция полезна для пользователей, размещающих в Облачном хранилище статические сайты. Для того чтобы, например, быстро отредактировать текст на сайте, достаточно выполнить указанную выше команду, внести изменения в нужные файлы и сохранить их.
Загрузка объекта в хранилище
Операция загрузки выполняется при помощи команды вида:
При загрузке объекта нужно указывать полный путь к месту хранения этого самого объекта. Например, если требуется сохранить файл myimage.png в контейнере images, то путь к нему нужно указать так: .
Большие (размером более 2 ГБ) объекты Cyberduck загружает в хранилище по частям.
Версии объектов и резервное копирование
Консольная версия Cyberduck — инструмент для резервного копирования и архивирования данных.
Допустим, что на локальной машине имеется директория, содержимое которой нужно периодически копировать в Облачное хранилище. Для этого написан специальный скрипт и добавлено задание Cron, которое отправляет резервную копию в хранилище каждый день в указанное время.
Скрипт:
Обратите внимание на синтаксис команды. В приведенном примере используются ключ , который указывает, что делать с уже имеющимися в хранилище файлами
Опция rename переименовывает уже имеющуюся резервную копию, добавляя к её имени время и дату.
С помощью cyberduck можно осуществлять и дифференциальное резервное копирование, используя опцию compare:
При выполнении приведенной команды программа сравнит загружаемую резервную копию с уже имеющейся по размеру, дате изменения и контрольной сумме. Если параметры отличаются, то старая версия будет удалена, а новая — загружена в хранилище.
При использовании опции skip в хранилище будут загружены только новые файлы (те, которые появились в папке на локальной машине после предыдущей загрузки). Уже имеющиеся файлы не будут загружены, даже если на локальной машине они были изменены.
Опция overwrite удаляет из хранилища имеющуюся резервную копию и загружает новую.
Синхронизация локальных файлов с файлами в хранилище
Синхронизация файлов — это процесс, в результате которого две директории, одна из которых находится на локальной машине, а другая — в хранилище, будут содержать одинаковый набор файлов в одной и той же версии с наиболее свежей датой изменений. Если на локальной машине какие-либо файлы были изменены, добавлены или удалены, эти же самые файлы будут изменены, добавлены или удалены в хранилище, и наоборот.
Синхронизация выполняется при помощи команды:
С помощью функции синхронизации можно поддерживать помещенные в хранилище резервные копии данных с локальной машины в актуальном состоянии.
Пример скрипта:
Достаточно добавить соответствующее задание в cron — и данные будут автоматически синхронизироваться с указанной периодичностью.
Описываемая функция будет полезной для тех, кто размещает в хранилище статические сайты. Чтобы обновить сайт, достаточно внести соответствующие изменения в файлы на локальной машине, а затем выполнить команду синхронизации.
Опция -v
Чтобы на консоль выводилась информация обо всех HTTP-запросах, осуществляемых при выполнении операций с хранилищем, а также об ответах на них, используется опция (или ). Это помогает понять, как с хранилищем взаимодействуют сторонние приложения.
Duplicati Features
- Free and open-source (licensed in GPL)
- Cross-platform: runs on Linux, macOS, Windows, and Synology.
- Can compress and encrypt the backup before sending to cloud storage.
- Save space with incremental backup and compression.
- Allows you to easily restore files to a certain point in time, to the original folder or a different folder.
- Supports multiple cloud storage services such as Dropbox, Google Drive, OneDrive, box.com, Mega, Amazon S3, Storadera, BlackBlaze, Telegram Cloud, Rclone, Tencent Cloud Object Storage, Tardigrade, and the Sia decentralized storage network.
- Works with SSH/SFTP, WebDAV, FTP.
- Supports local backup such as external USB devices, NAS (network-attached storage), and Samba shared folder.
- Duplicati uses standard components such as rdiff, zip, AESCrypt and GnuPG. This allows users to recover backup files even if Duplicati is not available.
- Duplicati has both a graphical user interface and a command-line interface, so you can use it on both desktops and servers.
- Built-in backup scheduler and auto-updater.
- Interrupted backups can be resumed.
- It can detect broken backups.
- The responsive web interface allows you to access Duplicati from anywhere, including a mobile phone.
Duplicati is a C# re-implementation of the Duplicity backup software.