<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Tobias Knöppler - Blog</title>
    <subtitle>Software Engineer, Freelancer, Open Source Developer</subtitle>
    <link rel="self" type="application/atom+xml" href="https://tobias.knoeppler.org/blog/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://tobias.knoeppler.org/blog/"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2025-10-21T00:00:00+00:00</updated>
    <id>https://tobias.knoeppler.org/blog/atom.xml</id>
    <entry xml:lang="en">
        <title>Awesome Backups 2 - A solid backup process</title>
        <published>2025-09-27T00:00:00+00:00</published>
        <updated>2025-10-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            Tobias Knöppler
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://tobias.knoeppler.org/blog/02-awesome-backups-2/"/>
        <id>https://tobias.knoeppler.org/blog/02-awesome-backups-2/</id>
        
        <content type="html" xml:base="https://tobias.knoeppler.org/blog/02-awesome-backups-2/">&lt;h1 id=&quot;our-backup-approach&quot;&gt;Our backup approach&lt;&#x2F;h1&gt;
&lt;p&gt;In the &lt;a href=&quot;&#x2F;blog&#x2F;01-awesome-backups-1&#x2F;&quot;&gt;previous post&lt;&#x2F;a&gt;, I presented my criteria for good backups and outlined some
implementation approaches.
In this post I&#x27;ll provide a step-by-step description for setting up a backup process for a Nextcloud Server
that will fulfill all those criteria.&lt;&#x2F;p&gt;
&lt;p&gt;Feel free to chose and pick and adjust my approach to your own system.&lt;&#x2F;p&gt;
&lt;p&gt;You can also &lt;a href=&quot;https:&#x2F;&#x2F;tobias.knoeppler.org&#x2F;blog&#x2F;02-awesome-backups-2&#x2F;#putting-it-all-together&quot;&gt;skip directly to the final code&lt;&#x2F;a&gt; if you&#x27;re fluent in bash and don&#x27;t care for
the reasoning behind the individual steps.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;step-1-reliable-zero-downtime-snapshots&quot;&gt;Step 1: reliable zero downtime snapshots&lt;&#x2F;h2&gt;
&lt;sl-details summary=&quot;Rationale&quot; class=&quot;infobox&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;A typical Nextcloud backup will likely look like this:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Turn maintenance mode on&lt;&#x2F;li&gt;
&lt;li&gt;dump&#x2F;backup the database&lt;&#x2F;li&gt;
&lt;li&gt;copy the user files and the nextcloud installation directory to the backup target location&lt;&#x2F;li&gt;
&lt;li&gt;Turn maintenance mode back off&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Enabling maintenance mode serves to ensure, that all the things we are including in our backup are in sync and thus
represent a consistent state of our service at a specific point in time. Otherwise, we might run into issues when
restoring the backup - for instance files being present in the filesystem but not known to the database (and thus
not visible to Nextcloud).&lt;&#x2F;p&gt;
&lt;p&gt;Unfortunately, we have ruled out using maintenance mode, because we don&#x27;t want any downtime during our backup process,
so we need another solution.&lt;&#x2F;p&gt;

&lt;&#x2F;sl-details&gt;
&lt;p&gt;To accomplish consistent zero downtime backups, we will create synchronized
&lt;sl-tooltip content=&quot;A (usually read-only) copy of our data at a specific point-in-time.&quot;&gt;
  &lt;span class=&quot;tooltip-trigger&quot;&gt;snapshots&lt;&#x2F;span&gt;
&lt;&#x2F;sl-tooltip&gt;
of all the things that need to be included in a typical Nextcloud backup: the users&#x27; files, the installation directory
and the database.
For this purpose, we will rely on the snapshot feature of our filesystem and on so-called single-transaction
copies for our database.
This means, that we must choose a database and filesystems for our server, to include those features.&lt;&#x2F;p&gt;
&lt;p&gt;Popular modern filesystem types like BTRFS, ZFS, XFS, LVM and many VM storage solutions provide snapshot capabilities.
Filesystem snapshots are read-only copies of a directory or volume that are usually created nearly instantly and take
little to no additional storage space.
This guide will give examples for BTRFS and LVM (more might be added in the future).&lt;&#x2F;p&gt;
&lt;p&gt;Most modern transactional database should provide options to do single-transaction copies of the database. I will give
examples on how to achieve this for mariadb&#x2F;mysql and postgresql.&lt;&#x2F;p&gt;
&lt;sl-details summary=&quot;What about container based deployments?&quot; class=&quot;neutral&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;Is any of this applicable to containerized deployments (e.g. Nextcloud All-in-One which is based on Docker)?&lt;&#x2F;p&gt;
&lt;p&gt;Yes, you just need to make sure that the volumes which contain your Nextcloud installation directory and your user files
are backed by compatible storage - e.g. mounting a btrfs subvolume under the respective paths.&lt;&#x2F;p&gt;
&lt;p&gt;You will also have to prepend some of the commands in this guide with whatever is necessary to run a command in you
container. For example for docker, you would need: &lt;code&gt;docker exec &amp;lt;name-of-your-container&amp;gt; &amp;lt;original-command&amp;gt;&lt;&#x2F;code&gt;.
Other commands, especially filesystem operations, always need to be executed on the host system.&lt;&#x2F;p&gt;

&lt;&#x2F;sl-details&gt;&lt;h3 id=&quot;taking-filesystem-snapshots&quot;&gt;Taking filesystem snapshots&lt;&#x2F;h3&gt;
&lt;p&gt;Let&#x27;s walk us through the process of creating filesystem snapshots for our user files directory and Nextcloud
installation directory.&lt;&#x2F;p&gt;
&lt;sl-tab-group&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;btrfs&quot;&gt;BTRFS&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;lvm&quot;&gt;LVM&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab-panel name=&quot;btrfs&quot;&gt;
  
  &lt;p&gt;This requires the nextcloud installation directory (assumed to be at &lt;code&gt;&#x2F;var&#x2F;www&#x2F;nextcloud&lt;&#x2F;code&gt;) or respectively the user
files directory (assumed to be at &lt;code&gt;&#x2F;mnt&#x2F;data&lt;&#x2F;code&gt;) to be a BTRFS subvolume (created with &lt;code&gt;btrfs subvolume create &amp;lt;path&amp;gt;&lt;&#x2F;code&gt;).&lt;&#x2F;p&gt;
&lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path to the btrfs subvolume containing your NC files directory
&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;mnt&#x2F;data&#x2F;nc_files
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where the (temporary) btrfs snapshot for the NC files directory should be created
&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;mnt&#x2F;data&#x2F;.nc_files_snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path to the btrfs subvolume containing your NC installation directory
&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;www&#x2F;nextcloud
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where the (temporary) btrfs snapshot for the NC installation directory should be created
&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;www&#x2F;.nc_snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;YnRyZnMgc3Vidm9sdW1lIHNuYXBzaG90IFwKICAiJFVTRVJfRklMRVNfVk9MVU1FIiAiJFVTRVJfRklMRVNfU05BUFNIT1RfUEFUSCI=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume snapshot &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;YnRyZnMgc3Vidm9sdW1lIHNuYXBzaG90IFwKICAiJE5DX0lOU1RBTExfVk9MVU1FIiAiJE5DX0lOU1RBTExfU05BUFNIT1RfUEFUSCI=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume snapshot &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;

&lt;sl-tab-panel name=&quot;lvm&quot;&gt;
  
  &lt;p&gt;This requires the nextcloud installation directory or respectively the user files directory to be a LVM logical volume.&lt;&#x2F;p&gt;
&lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the LVM volume group containing your nc installation directory
&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm-1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the logical volume name containing your nc installation directory
&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_LV&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Arbitrary name for the (temporary) lvm snapshot
&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-backup-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the LVM volume group containing your nc installation directory
&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm-1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the logical volume name containing your nc installation directory
&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Arbitrary name for the (temporary) lvm snapshot
&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-backup-nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;bHZjcmVhdGUgLXMgXAogIC0tbmFtZSAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IiBcCiAgIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX0xWfSI=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvcreate&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;s &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;name &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_LV&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;bHZjcmVhdGUgLXMgXAogIC0tbmFtZSAiJE5DX0lOU1RBTExfU05BUFNIT1RfTkFNRSIgXAogICIke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9WT0xVTUV9Ig==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvcreate&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;s &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;name &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;
&lt;&#x2F;sl-tab-group&gt;&lt;h3 id=&quot;taking-a-database-snapshot&quot;&gt;Taking a database snapshot&lt;&#x2F;h3&gt;
&lt;p&gt;For creating our database snapshot, we will keep things simple and use the trusty sql dump utilities available for our
reference databases mariadb and postgres. An sql dump is basically a set of SQL instructions that can be used to
recreate the database in its current state.&lt;&#x2F;p&gt;
&lt;p&gt;Following you will find code snippets for creating those dumps:&lt;&#x2F;p&gt;
&lt;sl-tab-group&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;postgres&quot;&gt;PostgreSQL&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;mariadb&quot;&gt;MariaDB &amp;#x2F; MySQL&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab-panel name=&quot;postgres&quot;&gt;
  
  &lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;tmp&#x2F;nc_backup&#x2F;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;root&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;localhost&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBwZ19kdW1wIHdpbGwgYmUgc3VwcGxpZWQgd2l0aCB0aGUgY29ubmVjdGlvbiBvcHRpb25zIGJ5IHdyaXRpbmcgdGhlbSB0byB+Ly5wZ3Bhc3MKaW5zdGFsbCAtbSAwNjAwIDwoZWNobyAiJHtEQl9IT1NUfToke0RCX1BPUlR9OiR7REJfTkFNRX06JHtEQl9VU0VSfToke0RCX1BBU1NXT1JEfSIpICIkSE9NRS8ucGdwYXNzIgpwZ19kdW1wID4gIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0vZGIuc3FsIg==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# pg_dump will be supplied with the connection options by writing them to ~&#x2F;.pgpass
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.pgpass&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;pg_dump &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;

&lt;sl-tab-panel name=&quot;mariadb&quot;&gt;
  
  &lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;tmp&#x2F;nc_backup&#x2F;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;root&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;localhost&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBteXNxbGR1bXAgd2lsbCBiZSBzdXBwbGllZCB3aXRoIHRoZSBkYiBjcmVkZW50aWFscyBieSB3cml0aW5nIHRoZW0gdG8gfi8ubXkuY25mCmluc3RhbGwgLW0gMDYwMCA8KGVjaG8gLWUgIltteXNxbGR1bXBdXG51c2VyPSR7REJfVVNFUn1cbnBhc3N3b3JkPSR7REJfUEFTU1dPUkR9IikgIiRIT01FLy5teS5jbmYiCm15c3FsZHVtcCBcCiAgLS1ob3N0PSIke0RCX0hPU1R9IiBcCiAgLS1wb3J0PSIke0RCX1BPUlR9IiBcCiAgLS1zaW5nbGUtdHJhbnNhY3Rpb24gXAogIC0tc2tpcC1sb2NrLXRhYmxlcyBcCiAgIiR7REJfTkFNRX0iID4gIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0vZGIuc3FsIg==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# mysqldump will be supplied with the db credentials by writing them to ~&#x2F;.my.cnf
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;e &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[mysqldump]\nuser=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;\npassword=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.my.cnf&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mysqldump &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;host&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;port&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;single-transaction &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;skip-lock-tables &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;gt; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;&#x2F;strong&gt; We need the parameter &lt;code&gt;--single-transaction&lt;&#x2F;code&gt; to ensure a &quot;real&quot; snapshot (a single transaction copy to be
precise) that is unaffected by ongoing writes to the DB. We add &lt;code&gt;--skip-lock-tables&lt;&#x2F;code&gt; as well, to improve performance
(not locking tables is okay here, because we&#x27;re just reading from the DB).&lt;&#x2F;p&gt;

  
&lt;&#x2F;sl-tab-panel&gt;
&lt;&#x2F;sl-tab-group&gt;
&lt;p&gt;Now that we can create both, filesystem snapshots and an sql dump, we are capable of creating a consistent point-in-time
snapshot of our Nextcloud instance with zero downtime (well, actually 3 synchronized snapshots, but we&#x27;ll get to that).
Just make sure, to either trigger all three operations at the same time or perform the filesystem snapshots first (since
they are super fast, that&#x27;s basically the same thing).
It&#x27;s important that all 3 snapshots refer to the same point in time.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;merging-the-snapshots-into-one-directory&quot;&gt;Merging the snapshots into one directory&lt;&#x2F;h3&gt;
&lt;p&gt;Right now, we have 3 individual snapshots lying around. They might even be located on separate disks. For the next steps
we want one aggregated view on them, which we will achieve using &lt;strong&gt;bind mounts&lt;&#x2F;strong&gt; for btrfs (or other filesystems)
and normal mounts for LVM.
Bind mounts are a Linux feature which allows us to mount one directory to another path in our filesystem.&lt;&#x2F;p&gt;
&lt;p&gt;So, using the same variables as above, the code for this would look like follows:&lt;&#x2F;p&gt;
&lt;sl-tab-group&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;btrfs&quot;&gt;BTRFS&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;lvm&quot;&gt;LVM&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab-panel name=&quot;btrfs&quot;&gt;
  
  &lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;bW91bnQgLS1iaW5kIC1vIHJvIFwKICAiJE5DX0lOU1RBTExfU05BUFNIT1RfUEFUSCIgXAogICIkU1FMX0RVTVBfVEFSR0VUX0RJUi9uZXh0Y2xvdWQi&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;bW91bnQgLS1iaW5kIC1vIHJvIFwKICAiJFVTRVJfRklMRVNfU05BUFNIT1RfUEFUSCIgXAogICIkU1FMX0RVTVBfVEFSR0VUX0RJUi9uY19maWxlcyI=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;

&lt;sl-tab-panel name=&quot;lvm&quot;&gt;
  
  &lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBBY3RpdmF0ZSB0aGUgTFZNIHNuYXBzaG90IHNvIHdlIGNhbiBtb3VudCBpdApsdmNoYW5nZSAtYXkgLUsgIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IgojIE1vdW50IHRoZSBzbmFwc2hvdCByZWFkLW9ubHkgaW5zaWRlICRTUUxfRFVOTVBfVEFSR0VUX0RJUiB3aXRoIG93bmVyc2hpcCBmb3JjZWQgdG8gdGhlIHVzZXIgdGhhdCBvd25zIE5leHRjbG91ZCBydW5zIGFzCm1vdW50IC1vICJybyx1aWQ9MzMsZ2lkPTMzIiBcCiAgIi9kZXYvJHtVU0VSX0ZJRUxTX1ZHfS8ke1VTRVJfRklMRVNfU05BUFNIT1RfTkFNRX0iIFwKICAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfS9uZXh0Y2xvdWQi&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Activate the LVM snapshot so we can mount it
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;ay&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Mount the snapshot read-only inside $SQL_DUNMP_TARGET_DIR with ownership forced to the user that owns Nextcloud runs as
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro,uid=33,gid=33&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FIELS_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBBY3RpdmF0ZSB0aGUgTFZNIHNuYXBzaG90IHNvIHdlIGNhbiBtb3VudCBpdApsdmNoYW5nZSAtYXkgLUsgIiR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUV9IgojIE1vdW50IHRoZSBzbmFwc2hvdCByZWFkLW9ubHkgaW5zaWRlICRTUUxfRFVOTVBfVEFSR0VUX0RJUiB3aXRoIG93bmVyc2hpcCBmb3JjZWQgdG8gdGhlIHVzZXIgdGhhdCBvd25zIE5leHRjbG91ZCBydW5zIGFzCm1vdW50IC1vICJybyx1aWQ9MzMsZ2lkPTMzIiBcCiAgIi9kZXYvJHtOQ19JTlNUQUxMX1ZHfS8ke05DX0lOU1RBTExfU05BUFNIT1RfTkFNRX0iIFwKICAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfS9uZXh0Y2xvdWQi&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Activate the LVM snapshot so we can mount it
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;ay&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Mount the snapshot read-only inside $SQL_DUNMP_TARGET_DIR with ownership forced to the user that owns Nextcloud runs as
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro,uid=33,gid=33&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;
&lt;&#x2F;sl-tab-group&gt;
&lt;p&gt;The result is a directory (&lt;code&gt;&#x2F;tmp&#x2F;nc_backup&lt;&#x2F;code&gt;) which looks like it contains all filesystem snapshots and the sql dump:&lt;&#x2F;p&gt;
&lt;pre style=&quot;background-color:#2b2c2f;color:#cccece;&quot;&gt;&lt;code&gt;&lt;span&gt;&#x2F;tmp&#x2F;nc_backup
&lt;&#x2F;span&gt;&lt;span&gt;├── nextcloud  # nextcloud installation directory
&lt;&#x2F;span&gt;&lt;span&gt;├── nc_files   # user files directory
&lt;&#x2F;span&gt;&lt;span&gt;└── db.sql     # sql dump of the database
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h2 id=&quot;step-2-providing-backup-storage&quot;&gt;Step 2: Providing Backup Storage&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;choosing-our-remote-storage-location&quot;&gt;Choosing our remote storage location&lt;&#x2F;h3&gt;
&lt;p&gt;As we have established, we need our backups to not be affected by a number of local hazards, including hardware failure
or fires. Therefore, we need to store them somewhere else.
Because we also want ransomware protection, we need a storage type with one of two options:&lt;&#x2F;p&gt;
&lt;p&gt;Either&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;object locking (preferred) or&lt;&#x2F;li&gt;
&lt;li&gt;restricted access permissions, that allow creating but not modifying&#x2F;deleting backups&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;These features (which I will explain in more detail later) will allow us to prevent attackers (e.g. ransomware) from
destroying our backups.&lt;&#x2F;p&gt;
&lt;p&gt;In this guide, we will focus on object locking to ensure ransomware protection.
If you want to use restricted access permissions, please refer to the &lt;a href=&quot;https:&#x2F;&#x2F;kopia.io&#x2F;docs&#x2F;advanced&#x2F;ransomware-protection&#x2F;#using-application-keys-to-protect-your-data&quot;&gt;Kopia documentation&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Because we need those features, we can&#x27;t go with many of the storage options offered by Kopia and are left with something
called &quot;object storage&quot; - basically a special kind of storage often found in cloud computing.
Apart from big cloud providers, this kind of storage is so ubiquitous today, that you will find it offered by numerous
providers and you can even self-host it.
Because we will encrypt the backups you don&#x27;t need to have a high level of trust in your provider, though (apart from
trust in their capability of not &lt;em&gt;losing&lt;&#x2F;em&gt; your data, of course).
Here are some options:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Google Cloud Storage&lt;&#x2F;li&gt;
&lt;li&gt;Azure Cloud Storage&lt;&#x2F;li&gt;
&lt;li&gt;Amazon AWS S3 &lt;sl-badge variant=&quot;neutral&quot;&gt;S3 compatible&lt;&#x2F;sl-badge&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Backblaze B2 &lt;sl-badge variant=&quot;neutral&quot;&gt;S3 compatible&lt;&#x2F;sl-badge&gt;
&lt;ul&gt;
&lt;li&gt;includcode,kbding object locks and separate access permissions&lt;&#x2F;li&gt;
&lt;li&gt;quite cheap compared to competitors&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Hetzner S3 Storage &lt;sl-badge variant=&quot;neutral&quot;&gt;S3 compatible&lt;&#x2F;sl-badge&gt;
&lt;ul&gt;
&lt;li&gt;Hosting in EU (Germany)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Min-IO &lt;sl-badge variant=&quot;neutral&quot;&gt;S3 compatible&lt;&#x2F;sl-badge&gt;
&lt;ul&gt;
&lt;li&gt;Self-Hosting option&lt;&#x2F;li&gt;
&lt;li&gt;No &lt;em&gt;official&lt;&#x2F;em&gt; UI for admin operations (managing users, access keys, buckets, etc.)&lt;&#x2F;li&gt;
&lt;li&gt;licensed under AGPL&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Ceph with RadosGW &lt;sl-badge variant=&quot;neutral&quot;&gt;S3 compatible&lt;&#x2F;sl-badge&gt;
&lt;ul&gt;
&lt;li&gt;Self-Hosting option&lt;&#x2F;li&gt;
&lt;li&gt;licensed under LGPL 2.1 and 3.0&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;!--- Zenko CloudServer
    - S3 compatible with support for object locks and separate access permissions (unverified)
    - TODO: clarify file backend
    - licensed under Apache license--&gt;
&lt;p&gt;*Note: All options marked with &lt;sl-badge&gt;S3 compatible&lt;&#x2F;sl-badge&gt; will share the same code snippets under the name &quot;S3 compatible&quot; going forward.&lt;&#x2F;p&gt;
&lt;p&gt;Setting up one of the self-hosting options is out of scope for this guide, however, I will provide instructions for AWS S3,
Google Cloud Storage and Min-IO going forward (maybe I&#x27;ll add Ceph at a later point).&lt;&#x2F;p&gt;
&lt;p&gt;For reference though: My personal storage server is formed by a RaspberryPi 5 8GB running Min-IO and coupled with a
&lt;sl-tooltip content=&quot;just a bunch of disks&quot;&gt;
  &lt;span class=&quot;tooltip-trigger&quot;&gt;JBOD&lt;&#x2F;span&gt;
&lt;&#x2F;sl-tooltip&gt; system that contains 4 8TB disks.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;configuring-a-bucket&quot;&gt;Configuring a bucket&lt;&#x2F;h3&gt;
&lt;p&gt;So now, that you have chosen (or become!) a storage provider, you need to create a bucket (which is comparable to the
concept of directories in traditional file systems, although they can&#x27;t be nested).
If you need object locking than you need to make sure it is supported by your provider and enabled for your bucket.&lt;&#x2F;p&gt;
&lt;p&gt;Now you need to create credentials for your bucket. Depending on your storage provider that can look differently.&lt;&#x2F;p&gt;
&lt;sl-tab-group&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;s3&quot;&gt;S3 compatible&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;gcs&quot;&gt;Google Cloud Storage&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab-panel name=&quot;s3&quot;&gt;
  
  &lt;p&gt;For S3 compatible providers you need to create user and a policy and potentially an access key.&lt;&#x2F;p&gt;
&lt;p&gt;Assuming your bucket is named &lt;code&gt;kopia&lt;&#x2F;code&gt;, here is what a policy could look like:&lt;&#x2F;p&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;ewogIlZlcnNpb24iOiAiMjAxMi0xMC0xNyIsCiAiU3RhdGVtZW50IjogWwogIHsKICAgIkVmZmVjdCI6ICJBbGxvdyIsCiAgICJBY3Rpb24iOiBbCiAgICAiczM6KiIKICAgXSwKICAgIlJlc291cmNlIjogWwogICAgImFybjphd3M6czM6Ojprb3BpYSIsCiAgICAiYXJuOmF3czpzMzo6OmtvcGlhLyoiCiAgIF0KICB9LAogIHsKICAgIkVmZmVjdCI6ICJEZW55IiwKICAgIkFjdGlvbiI6IFsKICAgICJzMzpEZWxldGVCdWNrZXQiLAogICAgInMzOkRlbGV0ZUJ1Y2tldFBvbGljeSIKICAgXSwKICAgIlJlc291cmNlIjogWwogICAgImFybjphd3M6czM6Ojprb3BpYSIsCiAgICAiYXJuOmF3czpzMzo6OmtvcGlhLyoiCiAgIF0KICB9CiBdCn0KVG8gYXBwbHkgKHVzaW5nIHRoZSBbTWluLUlPIGNsaSAobWNsaSldKGh0dHBzOi8vZG9jcy5taW4uaW8vY29tbXVuaXR5L21pbmlvLW9iamVjdC1zdG9yZS9yZWZlcmVuY2UvbWluaW8tbWMuaHRtbCkpOgoKMS4gU2F2ZSB0aGUgcG9saWN5IGFzIGBrb3BpYXdyaXRlci5qc29uYAoyLiBFZGl0IGl0IHRvIG1hdGNoIHlvdXIgQWJ1Y2tldCBuYW1lCjMuIE5vdyBleGVjdXRlIHRoZSBmb2xsb3dpbmcgY29tbWFuZHM6Cgo8ZGl2IGNsYXNzPSJjb2RlLWdyb3VwIj4KICA8ZGl2IGNsYXNzPSJjb2RlLXdyYXBwZXIiPgogIDxkaXYgY2xhc3M9ImNvZGUtY29weS1idXR0b24td3JhcHBlciI+CjxzbC1idXR0b24KICAgICAgICBjbGFzcz0ic2wtdGhlbWUtZGFyayBjb2RlLWNvcHktYnV0dG9uIgogICAgICAgIGNpcmNsZQogICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCiAgICAgICAgbGFiZWw9IkNvcHkgdG8gQ2xpcGJvYXJkIgogICAgICAgIGRhdGEtY29udGVudD0iSXlCRGIyNW1hV2QxY21VZ2VXOTFjaUJUTXlCemRHOXlZV2RsQ20xaklHRnNhV0Z6SUhObGRDQmlZV05yZFhCelpYSjJaWElnUEVoUFUxUk9RVTFGUGlBOFFVTkRSVk5UWDB0RldUNGdQRk5GUTFKRlZGOUxSVmsrIj4KICA8c2wtaWNvbiBuYW1lPSJjb3B5Ij48L3NsLWljb24+Cjwvc2wtYnV0dG9uPgo8cHJlIGRhdGEtbGFuZz0iYmFzaCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IzJiMmMyZjtjb2xvcjojY2NjZWNlOyIgY2xhc3M9Imxhbmd1YWdlLWJhc2ggIj48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtYmFzaCIgZGF0YS1sYW5nPSJiYXNoIj48c3BhbiBzdHlsZT0iY29sb3I6IzVmNjM2NDsiPiMgQ29uZmlndXJlIHlvdXIgUzMgc3RvcmFnZQo8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2Njk5Y2M7Ij5tYyBhbGlhcyBzZXQgYmFja3Vwc2VydmVyIDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzVmYjNiMzsiPiZsdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2Njk5Y2M7Ij5IT1NUTkFNRTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzVmYjNiMzsiPiZndDsgJmx0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2OTljYzsiPkFDQ0VTU19LRVk8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM1ZmIzYjM7Ij4mZ3Q7ICZsdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2Njk5Y2M7Ij5TRUNSRVRfS0VZPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNWZiM2IzOyI+Jmd0Owo8L3NwYW4+PC9jb2RlPjwvcHJlPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY29kZS1jb3B5LWJ1dHRvbi13cmFwcGVyIj4KPHNsLWJ1dHRvbgogICAgICAgIGNsYXNzPSJzbC10aGVtZS1kYXJrIGNvZGUtY29weS1idXR0b24iCiAgICAgICAgY2lyY2xlCiAgICAgICAgdmFyaWFudD0icHJpbWFyeSIKICAgICAgICBsYWJlbD0iQ29weSB0byBDbGlwYm9hcmQiCiAgICAgICAgZGF0YS1jb250ZW50PSJJeUJEY21WaGRHVWdZU0J1WlhjZ2RYTmxjZ3B0WXlCaFpHMXBiaUIxYzJWeUlHRmtaQ0JpWVdOcmRYQnpaWEoyWlhJZ2EyOXdhV0VnUEd0dmNHbGhMV3h2WjJsdUxYTmxZM0psZEQ0PSI+CiAgPHNsLWljb24gbmFtZT0iY29weSI+PC9zbC1pY29uPgo8L3NsLWJ1dHRvbj4KPHByZSBkYXRhLWxhbmc9ImJhc2giIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMyYjJjMmY7Y29sb3I6I2NjY2VjZTsiIGNsYXNzPSJsYW5ndWFnZS1iYXNoICI+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLWJhc2giIGRhdGEtbGFuZz0iYmFzaCI+PHNwYW4gc3R5bGU9ImNvbG9yOiM1ZjYzNjQ7Ij4jIENyZWF0ZSBhIG5ldyB1c2VyCjwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzY2OTljYzsiPm1jIGFkbWluIHVzZXIgYWRkIGJhY2t1cHNlcnZlciBrb3BpYSA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM1ZmIzYjM7Ij4mbHQ7PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNjY5OWNjOyI+a29waWEtbG9naW4tc2VjcmV0PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNWZiM2IzOyI+Jmd0Owo8L3NwYW4+PC9jb2RlPjwvcHJlPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY29kZS1jb3B5LWJ1dHRvbi13cmFwcGVyIj4KPHNsLWJ1dHRvbgogICAgICAgIGNsYXNzPSJzbC10aGVtZS1kYXJrIGNvZGUtY29weS1idXR0b24iCiAgICAgICAgY2lyY2xlCiAgICAgICAgdmFyaWFudD0icHJpbWFyeSIKICAgICAgICBsYWJlbD0iQ29weSB0byBDbGlwYm9hcmQiCiAgICAgICAgZGF0YS1jb250ZW50PSJJeUJCWkdRZ2RHaGxJSEJ2YkdsamVTQjBieUI1YjNWeUlGTXpJSE5sY25abGNncHRZMnhwSUdGa2JXbHVJSEJ2YkdsamVTQmhaR1FnWW1GamEzVndjMlZ5ZG1WeUlHdHZjR2xoZDNKcGRHVnlJR3R2Y0dsaGQzSnBkR1Z5TG1wemIyND0iPgogIDxzbC1pY29uIG5hbWU9ImNvcHkiPjwvc2wtaWNvbj4KPC9zbC1idXR0b24+CjxwcmUgZGF0YS1sYW5nPSJiYXNoIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojMmIyYzJmO2NvbG9yOiNjY2NlY2U7IiBjbGFzcz0ibGFuZ3VhZ2UtYmFzaCAiPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS1iYXNoIiBkYXRhLWxhbmc9ImJhc2giPjxzcGFuIHN0eWxlPSJjb2xvcjojNWY2MzY0OyI+IyBBZGQgdGhlIHBvbGljeSB0byB5b3VyIFMzIHNlcnZlcgo8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2Njk5Y2M7Ij5tY2xpIGFkbWluIHBvbGljeSBhZGQgYmFja3Vwc2VydmVyIGtvcGlhd3JpdGVyIGtvcGlhd3JpdGVyLmpzb24KPC9zcGFuPjwvY29kZT48L3ByZT4KPC9kaXY+CjxkaXYgY2xhc3M9ImNvZGUtY29weS1idXR0b24td3JhcHBlciI+CjxzbC1idXR0b24KICAgICAgICBjbGFzcz0ic2wtdGhlbWUtZGFyayBjb2RlLWNvcHktYnV0dG9uIgogICAgICAgIGNpcmNsZQogICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCiAgICAgICAgbGFiZWw9IkNvcHkgdG8gQ2xpcGJvYXJkIgogICAgICAgIGRhdGEtY29udGVudD0iSXlCQmRIUmhZMmdnZEdobElIQnZiR2xqZVNCMGJ5QjBhR1VnYTI5d2FXRWdkWE5sY2dwdFkyeHBJR0ZrYldsdUlIQnZiR2xqZVNCelpYUWdZbUZqYTNWd2MyVnlkbVZ5SUd0dmNHbGhkM0pwZEdWeUlIVnpaWEk5YTI5d2FXRT0iPgogIDxzbC1pY29uIG5hbWU9ImNvcHkiPjwvc2wtaWNvbj4KPC9zbC1idXR0b24+CjxwcmUgZGF0YS1sYW5nPSJiYXNoIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojMmIyYzJmO2NvbG9yOiNjY2NlY2U7IiBjbGFzcz0ibGFuZ3VhZ2UtYmFzaCAiPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS1iYXNoIiBkYXRhLWxhbmc9ImJhc2giPjxzcGFuIHN0eWxlPSJjb2xvcjojNWY2MzY0OyI+IyBBdHRhY2ggdGhlIHBvbGljeSB0byB0aGUga29waWEgdXNlcgo8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiM2Njk5Y2M7Ij5tY2xpIGFkbWluIHBvbGljeSBzZXQgYmFja3Vwc2VydmVyIGtvcGlhd3JpdGVyIHVzZXI9a29waWEKPC9zcGFuPjwvY29kZT48L3ByZT4KPC9kaXY+CiAgPC9kaXY+CjwvZGl2PgoKTm93IHlvdSBjYW4gYWNjZXNzIHRoZSBidWNrZXQgd2l0aCBgYWNjZXNza2V5PWtvcGlhYCBhbmQgYHNlY3JldGFjY2Vzc2tleT08a29waWEtbG9naW4tc2VjcmV0PmAu&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;json&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-json &quot;&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;{
&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Version&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;: &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;2012-10-17&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;,
&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Statement&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;: [
&lt;&#x2F;span&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;{
&lt;&#x2F;span&gt;&lt;span&gt;   &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Effect&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;: &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Allow&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;,
&lt;&#x2F;span&gt;&lt;span&gt;   &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Action&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;: [
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;s3:*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;   &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;],
&lt;&#x2F;span&gt;&lt;span&gt;   &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Resource&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;: [
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;arn:aws:s3:::kopia&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;,
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;arn:aws:s3:::kopia&#x2F;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;   &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]
&lt;&#x2F;span&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;},
&lt;&#x2F;span&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;{
&lt;&#x2F;span&gt;&lt;span&gt;   &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Effect&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;: &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Deny&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;,
&lt;&#x2F;span&gt;&lt;span&gt;   &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Action&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;: [
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;s3:DeleteBucket&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;,
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;s3:DeleteBucketPolicy&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;   &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;],
&lt;&#x2F;span&gt;&lt;span&gt;   &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Resource&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;: [
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;arn:aws:s3:::kopia&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;,
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;arn:aws:s3:::kopia&#x2F;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;   &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]
&lt;&#x2F;span&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;span&gt; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;To apply (using the &lt;a href=&quot;https:&#x2F;&#x2F;docs.min.io&#x2F;community&#x2F;minio-object-store&#x2F;reference&#x2F;minio-mc.html&quot;&gt;Min-IO cli (mcli)&lt;&#x2F;a&gt;):&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Save the policy as &lt;code&gt;kopiawriter.json&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Edit it to match your Abucket name&lt;&#x2F;li&gt;
&lt;li&gt;Now execute the following commands:&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBDb25maWd1cmUgeW91ciBTMyBzdG9yYWdlCm1jIGFsaWFzIHNldCBiYWNrdXBzZXJ2ZXIgPEhPU1ROQU1FPiA8QUNDRVNTX0tFWT4gPFNFQ1JFVF9LRVk+&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure your S3 storage
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mc alias set backupserver &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;HOSTNAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ACCESS_KEY&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;SECRET_KEY&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBDcmVhdGUgYSBuZXcgdXNlcgptYyBhZG1pbiB1c2VyIGFkZCBiYWNrdXBzZXJ2ZXIga29waWEgPGtvcGlhLWxvZ2luLXNlY3JldD4=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Create a new user
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mc admin user add backupserver kopia &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia-login-secret&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBBZGQgdGhlIHBvbGljeSB0byB5b3VyIFMzIHNlcnZlcgptY2xpIGFkbWluIHBvbGljeSBhZGQgYmFja3Vwc2VydmVyIGtvcGlhd3JpdGVyIGtvcGlhd3JpdGVyLmpzb24=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Add the policy to your S3 server
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mcli admin policy add backupserver kopiawriter kopiawriter.json
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBBdHRhY2ggdGhlIHBvbGljeSB0byB0aGUga29waWEgdXNlcgptY2xpIGFkbWluIHBvbGljeSBzZXQgYmFja3Vwc2VydmVyIGtvcGlhd3JpdGVyIHVzZXI9a29waWE=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Attach the policy to the kopia user
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mcli admin policy set backupserver kopiawriter user=kopia
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Now you can access the bucket with &lt;code&gt;accesskey=kopia&lt;&#x2F;code&gt; and &lt;code&gt;secretaccesskey=&amp;lt;kopia-login-secret&amp;gt;&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;

&lt;sl-tab-panel name=&quot;gcs&quot;&gt;
  
  &lt;p&gt;If you want to use Google Cloud Storage, I recommend &lt;a href=&quot;https:&#x2F;&#x2F;cloud.google.com&#x2F;storage&#x2F;docs&#x2F;access-control&#x2F;iam&quot;&gt;setting up a service account&lt;&#x2F;a&gt;
that you will then &lt;a href=&quot;https:&#x2F;&#x2F;cloud.google.com&#x2F;storage&#x2F;docs&#x2F;access-control&#x2F;iam&quot;&gt;grant access&lt;&#x2F;a&gt; to your google storage bucket.
Finally, you will need to &lt;a href=&quot;https:&#x2F;&#x2F;cloud.google.com&#x2F;iam&#x2F;docs&#x2F;keys-create-delete&quot;&gt;create a service account key&lt;&#x2F;a&gt; for your
service account that you will later use to connect the storage.&lt;&#x2F;p&gt;
&lt;p&gt;For this guide, I won&#x27;t go into more detail on those steps. Please follow the linked official documentation instead.&lt;&#x2F;p&gt;

  
&lt;&#x2F;sl-tab-panel&gt;
&lt;&#x2F;sl-tab-group&gt;&lt;h2 id=&quot;step-3-connecting-our-storage&quot;&gt;Step 3: Connecting our Storage&lt;&#x2F;h2&gt;
&lt;p&gt;By now, we have a snapshot of our instance and we have some remote storage for our backups. Now let&#x27;s address getting
our backup there.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;introducing-kopia&quot;&gt;Introducing Kopia&lt;&#x2F;h3&gt;
&lt;p&gt;To turn our instance snapshot into a backup that ticks all the boxes from our backup criteria, we will need a specialized backup tool.
There are a number of options available, notably Restic, Borg and Kopia, which should all cover most of our needs.
Because I have the most experience with it and use it for my own backups, we&#x27;re going with Kopia in this guide (feel
free to supply information on how to do the same with another tool and I&#x27;ll consider adding it).&lt;&#x2F;p&gt;
&lt;sl-details summary=&quot;Rationale&quot; class=&quot;infobox&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;&lt;strong&gt;Why do we need a specialized tool?&lt;&#x2F;strong&gt;
While we could implement some of its features ourselves, this would be more error-prone and very complex to achieve.
Some features, like error correction and ransomware protection are especially infeasible to solve by hand.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;For which features do we use Kopia?&lt;&#x2F;strong&gt;
Notable features of Kopia that we rely on are:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Deduplication&lt;&#x2F;li&gt;
&lt;li&gt;Compression&lt;&#x2F;li&gt;
&lt;li&gt;Error correction&lt;&#x2F;li&gt;
&lt;li&gt;Support for many remote storage options&lt;&#x2F;li&gt;
&lt;li&gt;Repository synchronization&lt;&#x2F;li&gt;
&lt;li&gt;Backup validation&lt;&#x2F;li&gt;
&lt;li&gt;Object locking (for ransomware protection)&lt;&#x2F;li&gt;
&lt;li&gt;Retention and automatic cleanup of backups&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;&#x2F;sl-details&gt;
&lt;p&gt;Before proceeding, please make sure you have Kopia installed on your server as per the
&lt;a href=&quot;https:&#x2F;&#x2F;kopia.io&#x2F;docs&#x2F;installation&#x2F;&quot;&gt;installation instructions&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;writing-the-backup&quot;&gt;Writing the backup&lt;&#x2F;h3&gt;
&lt;p&gt;Now, that we have our backup tool ready, we&#x27;re going take our instance snapshot and write it to our object storage.&lt;&#x2F;p&gt;
&lt;p&gt;Let&#x27;s first setup a &lt;sl-tooltip content=&quot;A Kopia Repository is a storage location paired with a repository key which will be used to encrypt all backups
transferred to it.&quot;&gt;
  &lt;span class=&quot;tooltip-trigger&quot;&gt;Kopia Repository&lt;&#x2F;span&gt;
&lt;&#x2F;sl-tooltip&gt;.&lt;&#x2F;p&gt;
&lt;sl-tab-group&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;S3&quot;&gt;S3 compatible&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;gcs&quot;&gt;Google CLoud Storage&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab-panel name=&quot;S3&quot;&gt;
  
  &lt;p&gt;Use the following commands to initialize a Kopia repository. Adjust the variables
&lt;code&gt;ENDPOINT&lt;&#x2F;code&gt;,&lt;code&gt;BUCKET_NAME&lt;&#x2F;code&gt;, &lt;code&gt;ACCESS_KEY&lt;&#x2F;code&gt;, &lt;code&gt;SECRET_ACCESS_KEY&lt;&#x2F;code&gt;, &lt;code&gt;PREFIX&lt;&#x2F;code&gt; according to your S3 storage.&lt;&#x2F;p&gt;
&lt;p&gt;For all available paremeters, refer to the &lt;a href=&quot;https:&#x2F;&#x2F;kopia.io&#x2F;docs&#x2F;reference&#x2F;command-line&#x2F;common&#x2F;repository-create-s3&#x2F;&quot;&gt;kopia documentation&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;RU5EUE9JTlQ9InMzLmFtYXpvbmF3cy5jb20iICMgVGhlIGVuZHBvaW50IHdoZXJlIHRvIGZpbmQgeW91ciBTMyBjb21wYXRpYmxlIHNlcnZlciAoaW5jbHVkaW5nIHBvcnQsIGV4Y2x1ZGluZyBwcm90b2NvbCkKQlVDS0VUX05BTUU9Im15LWJhY2t1cC1idWNrZXQiICMgVGhlIG5hbWUgb2YgeW91ciBTMyBidWNrZXQKQUNDRVNTX0tFWT0ibXktczMtdXNlciIgIyBZb3VyIGFjY2VzcyBrZXkgY291bGQgYmUgeW91ciB1c2VyIG5hbWUgb3IgYW4gSUQgYXR0YWNoZWQgdG8gYSBzcGVjaWZpYyBjcmVkZW50aWFsIChkZXBlbmRpbmcgb24geW91ciBwcm92aWRlciBhbmQgY29uZmlndXJhdGlvbikKU0VDUkVUX0FDQ0VTU19LRVk9Im15LXNlY3JldC1zMy1wYXNzd29yZCIgIyBUaGUgc2VjcmV0IHBhcnQgb2YgeW91ciBhY2Nlc3Mga2V5IC0gY291bGQgYmUgeW91ciB1c2VyIHBhc3N3b3JkIG9yIGEgc2VjcmV0IGF0dGFjaGVkIHRvIGEgc3BlY2lmaWMgY3JlZGVudGlhbCAoZGVwZW5kaW5nIG9uIHlvdXIgcHJvdmlkZXIgYW5kIGNvbmZpZ3VyYXRpb24KUFJFRklYPSIvIiAjIFBhdGggcHJlZml4IGZvciBhbGwgb2JqZWN0cyB3cml0dGVuIGJ5IEtvcGlh&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span&gt;ENDPOINT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;s3.amazonaws.com&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# The endpoint where to find your S3 compatible server (including port, excluding protocol)
&lt;&#x2F;span&gt;&lt;span&gt;BUCKET_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;my-backup-bucket&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# The name of your S3 bucket
&lt;&#x2F;span&gt;&lt;span&gt;ACCESS_KEY&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;my-s3-user&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Your access key could be your user name or an ID attached to a specific credential (depending on your provider and configuration)
&lt;&#x2F;span&gt;&lt;span&gt;SECRET_ACCESS_KEY&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;my-secret-s3-password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# The secret part of your access key - could be your user password or a secret attached to a specific credential (depending on your provider and configuration
&lt;&#x2F;span&gt;&lt;span&gt;PREFIX&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path prefix for all objects written by Kopia
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;a29waWEgcmVwb3NpdG9yeSBjcmVhdGUgczMgXAogIC0tZW5kcG9pbnQgIiRFTkRQT0lOVCIgXAogIC0tYnVja2V0ICIkQlVDS0VUX05BTUUiIFwKICAtLWFjY2Vzcy1rZXkgIiRBQ0NFU1NfS0VZIiBcCiAgLS1zZWNyZXQtYWNjZXNzLWtleSAiJFNFQ1JFVF9BQ0NFU1NfS0VZIiBcCiAgLS1wcmVmaXggIiRQUkVGSVgiIFw=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia repository create s3 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;endpoint &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;ENDPOINT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bucket &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;BUCKET_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;access-key &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;ACCESS_KEY&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;secret-access-key &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SECRET_ACCESS_KEY&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;prefix &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;PREFIX&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;

&lt;sl-tab-panel name=&quot;gcs&quot;&gt;
  
  &lt;p&gt;Use the following commands to initialize a Kopia repository. Adjust the variables
&lt;code&gt;BUCKET_NAME&lt;&#x2F;code&gt;, &lt;code&gt;SERVICE_ACCOUNT_CREDENTIALS_FILES&lt;&#x2F;code&gt;, &lt;code&gt;PREFIX&lt;&#x2F;code&gt; according to your setup.&lt;&#x2F;p&gt;
&lt;p&gt;For all available paremeters, refer to the &lt;a href=&quot;https:&#x2F;&#x2F;kopia.io&#x2F;docs&#x2F;reference&#x2F;command-line&#x2F;common&#x2F;repository-create-gcs&#x2F;&quot;&gt;kopia documentation&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;QlVDS0VUX05BTUU9Im15LWJhY2t1cC1idWNrZXQiICMgVGhlIG5hbWUgb2YgeW91ciBHb29nbGUgYnVja2V0ClNFUlZJQ0VfQUNDT1VOVF9DUkVERU5USUFMU19GSUxFPSIvcGF0aC90by9jcmVkZW50aWFscy5qc29uIiAjIFlvdSBjYW4gc2tpcCB0aGUgLS1jcmVkZW50aWFscy1maWxlIHBhcmFtZXRlciB0byB1c2UgeW91ciBkZWZhdWx0IGdvb2dsZSBjcmVkZW50aWFscwpQUkVGSVg9Ii8iICMgUGF0aCBwcmVmaXggZm9yIGFsbCBvYmplY3RzIHdyaXR0ZW4gYnkgS29waWE=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span&gt;BUCKET_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;my-backup-bucket&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# The name of your Google bucket
&lt;&#x2F;span&gt;&lt;span&gt;SERVICE_ACCOUNT_CREDENTIALS_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;path&#x2F;to&#x2F;credentials.json&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# You can skip the --credentials-file parameter to use your default google credentials
&lt;&#x2F;span&gt;&lt;span&gt;PREFIX&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path prefix for all objects written by Kopia
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;a29waWEgcmVwb3NpdG9yeSBjcmVhdGUgZ2NzIFwKICAtLWJ1Y2tldCAiJEJVQ0tFVF9OQU1FIiBcCiAgLS1jcmVkZW50aWFscy1maWxlICIke1NFUlZJQ0VfQUNDT1VOVF9DUkVERU5USUFMU19GSUxFfSIgXAogIC0tcHJlZml4ICIkUFJFRklYIiBc&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia repository create gcs &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bucket &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;BUCKET_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;credentials-file &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SERVICE_ACCOUNT_CREDENTIALS_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;prefix &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;PREFIX&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;
&lt;&#x2F;sl-tab-group&gt;
&lt;p&gt;Now we need to actually enable the use of object locks in Kopia:&lt;&#x2F;p&gt;

&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;a29waWEgbWFpbnRlbmFuY2Ugc2V0IC0tZXh0ZW5kLW9iamVjdC1sb2NrcyB0cnVlCg==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia maintenance set&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;extend-object-locks&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; true
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;
&lt;p&gt;And adjust our Kopia global policy (we could also do this per repository, but since we only have one, this is fine).
Here we setup how many backups to retain and the type of compression to use.
You can find the full list of parameters in the &lt;a href=&quot;https:&#x2F;&#x2F;kopia.io&#x2F;docs&#x2F;reference&#x2F;command-line&#x2F;common&#x2F;policy-set&#x2F;&quot;&gt;Kopia documentation&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;a29waWEgcG9saWN5IHNldCBcCiAgLS1jb21wcmVzc2lvbiB6c3RkIFwKICAtLWNvbXByZXNzaW9uLW1pbi1zaXplIDEwMEsgXAogIC0ta2VlcC1hbm51YWwgMiBcCiAgLS1rZWVwLW1vbnRobHkgMjQgXAogIC0ta2VlcC13ZWVrbHkgOCBcCiAgLS1rZWVwLWRhaWx5IDE0IFwKICAtLWtlZXAtaG91cmx5IDQ4&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia policy set &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;compression&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; zstd &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;compression-min-size&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 100K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;keep-annual&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 2 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;keep-monthly&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 24 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;keep-weekly&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 8 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;keep-daily&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 14 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;keep-hourly&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 48
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;
&lt;p&gt;All set! We&#x27;re finally ready to actually transfer the snapshot to the backup storage:&lt;&#x2F;p&gt;

&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;a29waWEgc25hcHNob3QgY3JlYXRlIFwKICAtLXBhcmFsbGVsPTQgXAogIC0tdGFncyAiam9iOm5jLWZ1bGwtYmFja3VwLG5jLWZpbGVzOnllcyxuYy1kYjp5ZXMsbmMtbmV4dGNsb3VkOnllcyIgXAogICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9Ig==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot create &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;parallel&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;4 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tags &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;job:nc-full-backup,nc-files:yes,nc-db:yes,nc-nextcloud:yes&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;
&lt;sl-details summary=&quot;Some notes on Kopia&quot; class=&quot;infobox&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;Kopia does a lot of things for us. Apart from the things that we have configured explicitly (like retention, encryption, compression)
we get very efficient deduplication, meaning we only need space for data that is actually new.
That&#x27;s also, why we don&#x27;t compress our database dump - because that way we can make use of the more efficient compression
and deduplication Kopia provides.&lt;&#x2F;p&gt;
&lt;p&gt;One particularly nice thing about Kopia backups is, that the progress of a partially transferred backup that got aborted due to e.g.
network issues will be picked up during the next try, because Kopia still stores all the data blocks that were transferred
and never transfers the same data block again (because of deduplication).
In other words: If we need 10 attempts to create our initial backup, because we have a large amount of data, we will still
make progress during every attempt and end up with a complete backup at the end.&lt;&#x2F;p&gt;

&lt;&#x2F;sl-details&gt;&lt;h2 id=&quot;step-4-cleanup&quot;&gt;Step 4: Cleanup&lt;&#x2F;h2&gt;
&lt;p&gt;Lastly, we can cleanup the snapshots, we don&#x27;t need it anymore.
Here&#x27;s a script snippet to do that depending on the filesystem used:&lt;&#x2F;p&gt;
&lt;sl-tab-group&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;btrfs&quot;&gt;BTRFS&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;lvm&quot;&gt;LVM&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab-panel name=&quot;btrfs&quot;&gt;
  
  &lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBVbm1vdW50IG91ciAtLWJpbmQgbW91bnRzCnVtb3VudCAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfS9uZXh0Y2xvdWQiCnVtb3VudCAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfS9uY19maWxlcyIKCiMgUmVtb3ZlIHRoZSBzbmFwc2hvdCBkaXJlY3RvcnkgKGluY2x1ZGluZyB0aGUgZGIuc3FsKQpybSAtcmYgIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0i&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Unmount our --bind mounts
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove the snapshot directory (including the db.sql)
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBSZW1vdmUgdGhlIGZpbGVzeXN0ZW0gc25hcHNob3RzCmJ0cmZzIHN1YnZvbHVtZSBkZWxldGUgIiRVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEgiCmJ0cmZzIHN1YnZvbHVtZSBkZWxldGUgIiROQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEgi&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove the filesystem snapshots
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume delete &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume delete &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;

&lt;sl-tab-panel name=&quot;lvm&quot;&gt;
  
  &lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBVbm1vdW50IG91ciBzbmFwc2hvdCBtb3VudHMKdW1vdW50ICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9L25leHRjbG91ZCIKdW1vdW50ICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9L25jX2ZpbGVzIgoKIyBSZW1vdmUgdGhlIHNuYXBzaG90IGRpcmVjdG9yeSAoaW5jbHVkaW5nIHRoZSBkYi5zcWwpCnJtIC1yZiAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfSI=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Unmount our snapshot mounts
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove the snapshot directory (including the db.sql)
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBSZW1vdmUgdGhlIGZpbGVzeXN0ZW0gc25hcHNob3RzCmx2Y2hhbmdlIC1hbiAtSyAiJHtOQ19JTlNUQUxMX1ZPTEdST1VQfS8ke05DX0lOU1RBTExfU05BUFNIT1R9IgpsdnJlbW92ZSAiL2Rldi8ke05DX0lOU1RBTExfVk9MR1JPVVB9LyR7TkNfSU5TVEFMTF9TTkFQU0hPVH0iCgpsdmNoYW5nZSAtYW4gLUsgIiR7TkNfRklMRVNfVk9MR1JPVVB9LyR7TkNfRklMRVNfU05BUFNIT1R9IgpsdnJlbW92ZSAiL2Rldi8ke05DX0ZJTEVTX1ZPTEdST1VQfS8ke05DX0ZJTEVTX1NOQVBTSE9UfSI=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove the filesystem snapshots
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;an&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLGROUP&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvremove &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLGROUP&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;an&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_FILES_VOLGROUP&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_FILES_SNAPSHOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvremove &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_FILES_VOLGROUP&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_FILES_SNAPSHOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;

&lt;!--
&lt;sl-tab-panel name=&quot;zfs&quot;&gt;
  
  &lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Unmount our --bind mounts
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove the snapshot directory (including the db.sql)
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove the filesystem snapshots
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;zfs destroy pool&#x2F;nextcloud@nc-backup
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;zfs destroy pool&#x2F;nc-files@nc-backup
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

  
&lt;&#x2F;sl-tab-panel&gt;
--&gt;
&lt;&#x2F;sl-tab-group&gt;&lt;h1 id=&quot;putting-it-all-together&quot;&gt;Putting it all together&lt;&#x2F;h1&gt;
&lt;p&gt;Now that we know how to create a backup, let&#x27;s automate the process and run it on a schedule.
For your convenience, here is a script, that you can drop in &lt;code&gt;&#x2F;etc&#x2F;cron.hourly&#x2F;&lt;&#x2F;code&gt; or use in a systemd service unit with
corresponding &lt;a href=&quot;https:&#x2F;&#x2F;www.freedesktop.org&#x2F;software&#x2F;systemd&#x2F;man&#x2F;latest&#x2F;systemd.timer.html#DeferReactivation=&quot;&gt;systemd timer&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;setup-kopia-repository&quot;&gt;Setup Kopia Repository&lt;&#x2F;h2&gt;
&lt;p&gt;If you haven&#x27;t done it already, execute the following snippet (as root) to configure your Kopia Repository.
Select the type of remote repository that matches your setup.&lt;&#x2F;p&gt;
&lt;sl-tab-group&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;s3&quot;&gt;S3 compatible&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;gcs&quot;&gt;Google Cloud Storage&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab-panel name=&quot;s3&quot;&gt;
  
  &lt;sl-card style=&quot;width: 100%;&quot;&gt;

After configuring the options to match your backup storage setup, run this script snippet as root to setup your Kopia repository.

&lt;p&gt;&lt;&#x2F;p&gt;













&lt;parameterized-script
        data-script-id=&quot;nc-backup-setup-kopia-s3&quot;
        data-parameters=&quot;{&amp;quot;ENDPOINT&amp;quot;:&amp;quot;s3.amazonaws.com&amp;quot;,&amp;quot;BUCKET_NAME&amp;quot;:&amp;quot;my-backup-bucket&amp;quot;,&amp;quot;PREFIX&amp;quot;:&amp;quot;&amp;quot;}&quot;&gt;

&lt;form&gt;
  
  
    
    &lt;sl-input
            data-script-id=&quot;script_config.scriptId&quot;
            class=&quot;script-parameter&quot;
            name=&quot;ENDPOINT&quot;
            label=&quot;S3 Endpoint&quot;
            help-text=&quot;The endpoint where to find your S3 compatible server (including port, excluding protocol)&quot;
            placeholder=&quot;s3.amazonaws.com&quot;
            value=&quot;s3.amazonaws.com&quot;&gt;
    &lt;&#x2F;sl-input&gt;
    
    
  
  
    
    &lt;sl-input
            data-script-id=&quot;script_config.scriptId&quot;
            class=&quot;script-parameter&quot;
            name=&quot;BUCKET_NAME&quot;
            label=&quot;S3 Bucket Name&quot;
            help-text=&quot;The name of your S3 bucket&quot;
            placeholder=&quot;my-backup-bucket&quot;
            value=&quot;my-backup-bucket&quot;&gt;
    &lt;&#x2F;sl-input&gt;
    
    
  
  
    
    &lt;sl-input
            data-script-id=&quot;script_config.scriptId&quot;
            class=&quot;script-parameter&quot;
            name=&quot;PREFIX&quot;
            label=&quot;Path Prefix&quot;
            help-text=&quot;Path prefix for all objects written by Kopia&quot;
            placeholder=&quot;&quot;
            value=&quot;&quot;&gt;
    &lt;&#x2F;sl-input&gt;
    
    
  
&lt;&#x2F;form&gt;



  &lt;context-condition data-script-id=&quot;nc-backup-setup-kopia-s3&quot; data-condition=&quot;{}&quot; data-context=&quot;{}&quot;&gt;
    &lt;div class=&quot;codeblock&quot;&gt;
      
      
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBZb3Ugd2lsbCBiZSBhc2tlZCBmb3IgeW91ciBhY2Nlc3Mga2V5IGFuZCBhY2Nlc3Mga2V5IHNlY3JldC4KIyBZb3VyIGFjY2VzcyBrZXkgY291bGQgYmUgeW91ciB1c2VyIG5hbWUgb3IgYW4gSUQgYXR0YWNoZWQgdG8gYSBzcGVjaWZpYyBjcmVkZW50aWFsIChkZXBlbmRpbmcgb24geW91ciBwcm92aWRlciBhbmQgY29uZmlndXJhdGlvbikKIyBUaGUgc2VjcmV0IHBhcnQgb2YgeW91ciBhY2Nlc3Mga2V5IC0gY291bGQgYmUgeW91ciB1c2VyIHBhc3N3b3JkIG9yIGEgc2VjcmV0IGF0dGFjaGVkIHRvIGEgc3BlY2lmaWMgY3JlZGVudGlhbCAoZGVwZW5kaW5nIG9uIHlvdXIgcHJvdmlkZXIgYW5kIGNvbmZpZ3VyYXRpb24KcmVhZCAtcnNwICdFbnRlciBTMyBBY2Nlc3MgS2V5IElEOiAnIEFDQ0VTU19LRVkgXAogICYmIHJlYWQgLXJzcCAkJ1xuJydFbnRlciBTMyBTZWNyZXQgQWNjZXNzIEtleTogJyBTRUNSRVRfQUNDRVNTX0tFWSBcCiAgJiYga29waWEgcmVwb3NpdG9yeSBjcmVhdGUgczMgXAogIC0tZW5kcG9pbnQgIltbRU5EUE9JTlRdXSIgXAogIC0tYnVja2V0ICJbW0JVQ0tFVF9OQU1FXV0iIFwKICAtLWFjY2Vzcy1rZXkgIiR7QUNDRVNTX0tFWT99IiBcCiAgLS1zZWNyZXQtYWNjZXNzLWtleSAiJHtTRUNSRVRfQUNDRVNTX0tFWT99IiBcCiAgLS1wcmVmaXggIltbUFJFRklYXV0iIFwKICAtLXJldGVudGlvbi1tb2RlIGdvdmVybmFuY2UgXAogICYmIGtvcGlhIG1haW50ZW5hbmNlIHNldCAtLWV4dGVuZC1vYmplY3QtbG9ja3MgdHJ1ZQ==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# You will be asked for your access key and access key secret.
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Your access key could be your user name or an ID attached to a specific credential (depending on your provider and configuration)
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# The secret part of your access key - could be your user password or a secret attached to a specific credential (depending on your provider and configuration
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;read -rsp &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Enter S3 Access Key ID: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ACCESS_KEY &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;read -rsp &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$&amp;#39;\n&amp;#39;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Enter S3 Secret Access Key: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; SECRET_ACCESS_KEY &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia repository create s3 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;endpoint &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[[ENDPOINT]]&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bucket &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[[BUCKET_NAME]]&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;access-key &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;ACCESS_KEY&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;secret-access-key &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SECRET_ACCESS_KEY&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;prefix &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[[PREFIX]]&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;retention-mode&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; governance &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia maintenance set&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;extend-object-locks&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; true
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;

    &lt;&#x2F;div&gt;
  &lt;&#x2F;context-condition&gt;
&lt;&#x2F;parameterized-script&gt;


&lt;&#x2F;sl-card&gt;
  
&lt;&#x2F;sl-tab-panel&gt;
&lt;sl-tab-panel name=&quot;gcs&quot;&gt;
  
  &lt;sl-card style=&quot;width: 100%;&quot;&gt;

After configuring the options to match your backup storage setup, run this script snippet as root to setup your Kopia repository.

&lt;p&gt;&lt;&#x2F;p&gt;














&lt;parameterized-script
        data-script-id=&quot;nc-backup-setup-kopia-gcs&quot;
        data-parameters=&quot;{&amp;quot;use_default_credentials&amp;quot;:&amp;quot;yes&amp;quot;,&amp;quot;GOOGLE_CREDENTIALS_FILE&amp;quot;:&amp;quot;&amp;#x2F;path&amp;#x2F;to&amp;#x2F;service-account.json&amp;quot;,&amp;quot;BUCKET_NAME&amp;quot;:&amp;quot;my-backup-bucket&amp;quot;,&amp;quot;PREFIX&amp;quot;:&amp;quot;&amp;quot;}&quot;&gt;

&lt;form&gt;
  
  
    
    &lt;sl-select
            data-script-id=&quot;script_config.scriptId&quot;
            class=&quot;script-parameter&quot;
            name=&quot;use_default_credentials&quot;
            label=&quot;Google Credentials Mode&quot;
            help-text=&quot;WHether to use Google default credentials or a service account key&quot;
            value=&quot;yes&quot;
    &gt;
      
      &lt;sl-option value=&quot;yes&quot;&gt;Google Default Credentials&lt;&#x2F;sl-option&gt;
      
      &lt;sl-option value=&quot;no&quot;&gt;Google Service Account key file&lt;&#x2F;sl-option&gt;
      
    &lt;&#x2F;sl-select&gt;
    
    
  
  
  &lt;context-condition data-condition=&quot;{&amp;quot;use_default_credentials&amp;quot;:&amp;quot;no&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
    
    
    &lt;sl-input
            data-script-id=&quot;script_config.scriptId&quot;
            class=&quot;script-parameter&quot;
            name=&quot;GOOGLE_CREDENTIALS_FILE&quot;
            label=&quot;Google Service Account Key File&quot;
            help-text=&quot;Path to your service account key (in json format)&quot;
            placeholder=&quot;&amp;#x2F;path&amp;#x2F;to&amp;#x2F;service-account.json&quot;
            value=&quot;&amp;#x2F;path&amp;#x2F;to&amp;#x2F;service-account.json&quot;&gt;
    &lt;&#x2F;sl-input&gt;
    
    
  &lt;&#x2F;context-condition&gt;
  
  
  
    
    &lt;sl-input
            data-script-id=&quot;script_config.scriptId&quot;
            class=&quot;script-parameter&quot;
            name=&quot;BUCKET_NAME&quot;
            label=&quot;S3 Bucket Name&quot;
            help-text=&quot;The name of your S3 bucket&quot;
            placeholder=&quot;my-backup-bucket&quot;
            value=&quot;my-backup-bucket&quot;&gt;
    &lt;&#x2F;sl-input&gt;
    
    
  
  
    
    &lt;sl-input
            data-script-id=&quot;script_config.scriptId&quot;
            class=&quot;script-parameter&quot;
            name=&quot;PREFIX&quot;
            label=&quot;Path Prefix&quot;
            help-text=&quot;Path prefix for all objects written by Kopia&quot;
            placeholder=&quot;&quot;
            value=&quot;&quot;&gt;
    &lt;&#x2F;sl-input&gt;
    
    
  
&lt;&#x2F;form&gt;



  

  
  &lt;context-condition data-condition=&quot;{&amp;quot;use_default_credentials&amp;quot;:&amp;quot;yes&amp;quot;}&quot; data-context=&quot;{}&quot; data-script-id=&quot;nc-backup-setup-kopia-s3&quot;&gt;
    &lt;div class=&quot;codeblock&quot;&gt;
      
      
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;a29waWEgcmVwb3NpdG9yeSBjcmVhdGUgZ2NzIFwKICAtLWJ1Y2tldCAiW1tCVUNLRVRfTkFNRV1dIiBcCiAgLS1wcmVmaXggIltbUFJFRklYXV0iIFwKICAtLXJldGVudGlvbi1tb2RlIGdvdmVybmFuY2UgXAogICYmIGtvcGlhIG1haW50ZW5hbmNlIHNldCAtLWV4dGVuZC1vYmplY3QtbG9ja3MgdHJ1ZQ==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia repository create gcs &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bucket &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[[BUCKET_NAME]]&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;prefix &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[[PREFIX]]&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;retention-mode&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; governance &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia maintenance set&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;extend-object-locks&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; true
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;

    &lt;&#x2F;div&gt;
  &lt;&#x2F;context-condition&gt;
  

  
  &lt;context-condition data-condition=&quot;{&amp;quot;use_default_credentials&amp;quot;:&amp;quot;no&amp;quot;}&quot; data-context=&quot;{}&quot; data-script-id=&quot;nc-backup-setup-kopia-s3&quot;&gt;
    &lt;div class=&quot;codeblock&quot;&gt;
      
      
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;a29waWEgcmVwb3NpdG9yeSBjcmVhdGUgZ2NzIFwKICAtLWJ1Y2tldCAiW1tCVUNLRVRfTkFNRV1dIiBcCiAgLS1jcmVkZW50aWFscyAiW1tHT09HTEVfQ1JFREVOVElBTFNfRklMRV1dIiBcCiAgLS1wcmVmaXggIltbUFJFRklYXV0iIFwKICAtLXJldGVudGlvbi1tb2RlIGdvdmVybmFuY2UgXAogICYmIGtvcGlhIG1haW50ZW5hbmNlIHNldCAtLWV4dGVuZC1vYmplY3QtbG9ja3MgdHJ1ZQ==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia repository create gcs &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bucket &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[[BUCKET_NAME]]&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;credentials &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[[GOOGLE_CREDENTIALS_FILE]]&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;prefix &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[[PREFIX]]&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;retention-mode&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; governance &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia maintenance set&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;extend-object-locks&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; true
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;

    &lt;&#x2F;div&gt;
  &lt;&#x2F;context-condition&gt;
  

&lt;&#x2F;parameterized-script&gt;


&lt;&#x2F;sl-card&gt;
  
&lt;&#x2F;sl-tab-panel&gt;
&lt;&#x2F;sl-tab-group&gt;&lt;h2 id=&quot;setup-the-backup-script&quot;&gt;Setup the backup script&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;backup-script&quot;&gt;Backup Script&lt;&#x2F;h3&gt;
&lt;p&gt;Following, configure the options to match your setup and then copy or download the backup script.
Afterward, adjust the configuration section at the top of the script (mostly paths to your Nextcloud setup)
and run it as root. The backup script will use your default Kopia repository (which you have initialized in the previous step).&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Note: Make sure to save the script with permissions&lt;&#x2F;strong&gt; &lt;code&gt;0700&lt;&#x2F;code&gt; &lt;strong&gt;or&lt;&#x2F;strong&gt; &lt;code&gt;0500&lt;&#x2F;code&gt; &lt;strong&gt;to avoid other users from reading the credentials inside!
(Or move them outside the script, e.g. inside &lt;a href=&quot;https:&#x2F;&#x2F;systemd.io&#x2F;CREDENTIALS&#x2F;&quot;&gt;systemd credentials&lt;&#x2F;a&gt;).&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;







  

  

  

  


&lt;parameterized-script data-parameters=&quot;{&amp;quot;object_storage&amp;quot;:&amp;quot;s3&amp;quot;,&amp;quot;nc_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;mariadb&amp;quot;}&quot; data-script-id=&quot;nc_next_lvl_backups&quot;&gt;

  
&lt;form&gt;
  
  
    
    &lt;sl-select
            data-script-id=&quot;nc_next_lvl_backups&quot;
            class=&quot;script-parameter&quot;
            name=&quot;object_storage&quot;
            label=&quot;Remote backup storage type&quot;
            help-text=&quot;The type of remote (object) storage to use for backups&quot;
            value=&quot;s3&quot;
    &gt;
      
      &lt;sl-option value=&quot;s3&quot;&gt;S3 or S3 compatible&lt;&#x2F;sl-option&gt;
      
      &lt;sl-option value=&quot;gcs&quot;&gt;Google cloud Storage&lt;&#x2F;sl-option&gt;
      
    &lt;&#x2F;sl-select&gt;
    
    
  
  
    
    &lt;sl-select
            data-script-id=&quot;nc_next_lvl_backups&quot;
            class=&quot;script-parameter&quot;
            name=&quot;nc_filesystem&quot;
            label=&quot;Nextcloud installation filesystem&quot;
            help-text=&quot;The filesystem backing your nextcloud installation directory&quot;
            value=&quot;btrfs&quot;
    &gt;
      
      &lt;sl-option value=&quot;btrfs&quot;&gt;BTRFS&lt;&#x2F;sl-option&gt;
      
      &lt;sl-option value=&quot;lvm&quot;&gt;LVM&lt;&#x2F;sl-option&gt;
      
    &lt;&#x2F;sl-select&gt;
    
    
  
  
    
    &lt;sl-select
            data-script-id=&quot;nc_next_lvl_backups&quot;
            class=&quot;script-parameter&quot;
            name=&quot;nc_files_filesystem&quot;
            label=&quot;Nextcloud files filesystem&quot;
            help-text=&quot;The filesystem backing your nextcloud files (data) directory&quot;
            value=&quot;btrfs&quot;
    &gt;
      
      &lt;sl-option value=&quot;btrfs&quot;&gt;BTRFS&lt;&#x2F;sl-option&gt;
      
      &lt;sl-option value=&quot;lvm&quot;&gt;LVM&lt;&#x2F;sl-option&gt;
      
    &lt;&#x2F;sl-select&gt;
    
    
  
  
    
    &lt;sl-select
            data-script-id=&quot;nc_next_lvl_backups&quot;
            class=&quot;script-parameter&quot;
            name=&quot;db&quot;
            label=&quot;Database Type&quot;
            help-text=&quot;&quot;
            value=&quot;mariadb&quot;
    &gt;
      
      &lt;sl-option value=&quot;mariadb&quot;&gt;MariaDB&lt;&#x2F;sl-option&gt;
      
      &lt;sl-option value=&quot;postgres&quot;&gt;PostgreSQL&lt;&#x2F;sl-option&gt;
      
    &lt;&#x2F;sl-select&gt;
    
    
  
&lt;&#x2F;form&gt;



 &lt;hl style=&quot;margin: 0 1em;&quot;&gt;&lt;&#x2F;hl&gt;
  &lt;sl-details summary=&quot;nextcloud-backup.sh&quot; class=&quot;neutral&quot;&gt;
    &lt;div slot=&quot;summary&quot; class=&quot;script-details-header&quot;&gt;
      nextcloud-backup.sh
      
      
      &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;mariadb&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
        &lt;sl-button onclick=&quot;downloadAsFile(content=atob(&#x27;IyEvYmluL2Jhc2gKCnNldCAtZXVvIHBpcGVmYWlsCgojIyMgPT09PT09PT09PSAjIyMKIyBQcm9jZWR1cmUKIyAtIFRoZSBzY3JpcHQgd2lsbCBjcmVhdGUgc25hcHNob3RzIG9mIHRoZSBsdm0gcm9vdCB2b2x1bWUgYW5kIHRoZSBidHJmcyBzdWJ2b2x1bWUgYmFja2luZyBOZXh0Y2xvdWQncyB1c2VyIGZpbGVzLiBUaGVuIGl0IHdpbGwgc3RhcnQgYW4gc3FsZHVtcCBvZiB0aGUgZGF0YWJhc2UKIyAtIEFmdGVyd2FyZHMsIGFsbCAzIHNuYXBzaG90cyB3aWxsIGJlIG1vdW50ZWQvY29waWVkIGluIHRoZSBzYW1lIHBhcmVudCBkaXJlY3RvcnkgYW5kIHVwbG9hZGVkIHRvIGEga29waWEgcmVwb3NpdG9yeQojIyMgPT09PT09PT09PSAjIyMKCiMjIyBDT05GSUdVUkFUSU9OCgojIGZpbGUgZm9yIHdyaXRpbmcgbG9ncy4gQ2FuIGJlIGxlZnQgZW1wdHkgdG8gb25seSBsb2cgdG8gc3Rkb3V0CkxPR19GSUxFPSIvdmFyL2xvZy9uYy1iYWNrdXAubG9nIgoKIyMgTmV4dGNsb3VkIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgY29uZmlnCiMgUGF0aCB0byB0aGUgYnRyZnMgc3Vidm9sdW1lIGNvbnRhaW5pbmcgeW91ciBOQyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5Ck5DX0lOU1RBTExfVk9MVU1FPSIvdmFyL3d3dy9uZXh0Y2xvdWQiCiMgUGF0aCB3aGVyZSB0aGUgKHRlbXBvcmFyeSkgYnRyZnMgc25hcHNob3QgZm9yIHRoZSBOQyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IHNob3VsZCBiZSBjcmVhdGVkCk5DX0lOU1RBTExfU05BUFNIT1RfUEFUSD0iL3Zhci93d3cvLm5jX3NuYXBzaG90IgojIEFkanVzdCB0aGlzIGlmIHRoZSBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IGlzIG5vdCBpbiB0aGUgcm9vdCBvZiB0aGUgYmFja2luZyBmaWxlc3lzdGVtIHZvbHVtZQpOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEg9Ii8iCgojIyBOZXh0Y2xvdWQgZmlsZXMgZGlyZWN0b3J5IGNvbmZpZwojIFBhdGggdG8gdGhlIGJ0cmZzIHN1YnZvbHVtZSBjb250YWluaW5nIHlvdXIgTkMgZmlsZXMgZGlyZWN0b3J5ClVTRVJfRklMRVNfVk9MVU1FPSIvbW50L2RhdGEvbmNkYXRhIgojIFBhdGggd2hlcmUgdGhlICh0ZW1wb3JhcnkpIGJ0cmZzIHNuYXBzaG90IGZvciB0aGUgTkMgZmlsZXMgZGlyZWN0b3J5IHNob3VsZCBiZSBjcmVhdGVkClVTRVJfRklMRVNfU05BUFNIT1RfUEFUSD0iL21udC9kYXRhLy5uY19maWxlc19zbmFwc2hvdCIKIyBEQiBkdW1wIGNvbmZpZwojIFBhdGggd2hlcmUgdG8gdGVtcG9yYXJpbHkgc3RvcmUgZGF0YWJhc2UgZHVtcCAoc2hvdWxkIGhhdmUgZW5vdWdoIGZyZWUgc3BhY2UpClNRTF9EVU1QX1RBUkdFVF9ESVI9Ii92YXIvbmMtYmFja3VwLWRiIgojIFdoYXRldmVyIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuIHNxbGR1bXAgKGluY2x1ZGluZyBwYXJhbWV0ZXJzIGxpa2UgdXNlciwgaG9zdCwgZGJuYW1lLCBwYXNzd29yZCBjZmcgLi4uKQojIC0gSWYgeW91ciBEQiBpcyBydW4gaW5zaWRlIGRvY2tlciwganVzdCBwcmVwZW5kIHRoZSBjb21tYW5kIHdpdGggd2hhdGV2ZXIgaXMgbmVlZGVkIHRvIHJ1biBhIGNvbW1hbmQgaW5zaWRlIHRoZSBjb250YWluZXIsCiMgICBmb3IgZXhhbXBsZTogU1FMRFVNUF9DTUQ9KGRvY2tlciBleGVjIDxjb250YWluZXJuYW1lPiBwZ19kdW1wIC1VIHBvc3RncmVzIC1kIG5jKQojIC0gRm9yIE1hcmlhREIgKHdpdGggdGhlIElubm9EQiBlbmdpbmUpLCBtYWtlIHN1cmUgdG8gdXNlIC0tc2luZ2xlLXRyYW5zYWN0aW9uIChhbmQgb3B0aW9uYWxseSAtLXNraXAtbG9jay10YWJsZXMgdG8gYXZvaWQgc2xvdyBkb3ducyBmb3IgeW91ciBzeXN0ZW0pIHRvIGF2b2lkIHNpZGUgZWZmZWN0cy4KIyAgIFNlZSBodHRwczovL215c3FsZHVtcC5ndXJ1L215c3FsZHVtcC1zaW5nbGUtdHJhbnNhY3Rpb24tZmxhZy5odG1sIGZvciBtb3JlIGluZm8uCiMgLSBGb3IgcG9zdGdyZXNxbCwgbm8gYWRqdXN0ZW1udHMgYXJlIG5lZWRlZAoKIyBDb25maWd1cmUgdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBmb3IgeW91ciBkYXRhYmFzZToKREJfVVNFUj0ibmV4dGNsb3VkIgpEQl9OQU1FPSJuZXh0Y2xvdWQiCkRCX1BBU1NXT1JEPSJwYXNzd29yZCIKREJfSE9TVD0iMTI3LjAuMC4xIgpEQl9QT1JUPSI1NDMyIgoKIyBteXNxbGR1bXAgd2lsbCBiZSBzdXBwbGllZCB3aXRoIHRoZSBkYiBjcmVkZW50aWFscyBieSB3cml0aW5nIHRoZW0gdG8gfi8ubXkuY25mCk1ZQ05GX1BBVEg9IiRIT01FLy5teS5jbmYiCmluc3RhbGwgLW0gMDYwMCA8KGVjaG8gLWUgIltteXNxbGR1bXBdXG51c2VyPSR7REJfVVNFUn1cbnBhc3N3b3JkPSR7REJfUEFTU1dPUkR9IikgIiR7TVlDTkZfUEFUSH0iClNRTERVTVBfQ01EPShteXNxbGR1bXAgLS1ob3N0PSIke0RCX0hPU1R9IiAtLXBvcnQ9IiR7REJfUE9SVH0iIC0tc2luZ2xlLXRyYW5zYWN0aW9uIC0tc2tpcC1sb2NrLXRhYmxlcyAiJHtEQl9OQU1FfSIpCgoKIyBTZXR1cCBhbnkgdGFncyBoZXJlIHRoYXQgeW91IHdhbnQgdG8gYmUgYWRkZWQgdG8geW91ciB5b3VyIGtvcGlhIHNuYXBzaG90IChjb21tYSBzZXBhcmF0ZWQgaW4gdGhlIGZvcm1hdCBsYWJlbDp2YWx1ZSkKS09QSUFfVEFHUz0iam9iOm5leHRjbG91ZC1mdWxsLWJhY2t1cCxuYy1maWxlczp5ZXMsbmMtZGI6eWVzLG5jLW5leHRjbG91ZDp5ZXMiCgojIyMgQURWQU5DRUQvSU5URVJOQUwgQ09ORklHIC0gb25seSBhZGp1c3QgaWYgeW91IGFyZSBzdXJlIHRoYXQgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcgIyMjCk5DX0lOU1RBTExfRlNUWVBFPSJidHJmcyIKClVTRVJfRklMRVNfRlNUWVBFPSJidHJmcyIKCgojIEZPUkNFIFVJRCBhbmQgR0lEIHRoYXQgYWxsIGZpbGVzIGZyb20gdGhlIG5leHRjbG91ZCBpbnN0YWxsIGRpcmVjdG9yeSBzaG91bGQgaGF2ZSBpbiB0aGUgYmFja3VwIChlLmcuIHRoYXQgb2YgeW91ciB3d3ctZGF0YSB1c2VyIGFuZCBncm91cCkKTkNfT1dORVJfVUlEPTMzCk5DX09XTkVSX0dJRD0zMwoKIyBGT1JDRSBVSUQgYW5kIEdJRCB0aGF0IGFsbCB1c2VyIGZpbGVzIHNob3VsZCBoYXZlIGluIHRoZSBiYWNrdXAgKGUuZy4gdGhhdCBvZiB5b3VyIHd3dy1kYXRhIHVzZXIgYW5kIGdyb3VwKQpVU0VSX0ZJTEVTX09XTkVSX1VJRD0zMwpVU0VSX0ZJTEVTX09XTkVSX0dJRD0zMwoKIyBDb25maWd1cmUgcGF0aCB3aGVyZSBhbGwgcGFydHMgb2YgdGhlIGJhY2t1cCB3aWxsIGJlIG1hcHBlZCB0byBiZWZvcmUgdHJhbnNmZXJyaW5nIHdpdGggS29waWEKQkFDS1VQX1JPT1Q9Ii9ydW4vbmMtYmFja3VwIgoKCiMjIyBZb3UgdXN1YWxseSBzaG91bGQgbm90IG5lZWQgdG8gdG91Y2ggdGhlIGZvbGxvd2luZyB2YXJpYWJsZXMKCl9VU0VSX0ZJTEVTX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L25jX2ZpbGVzIgpfTkNfSU5TVEFMTF9CSU5EPSIke0JBQ0tVUF9ST09UfS9uZXh0Y2xvdWQiCl9EQl9CSU5EPSIke0JBQ0tVUF9ST09UfS9kYiIKCiMgZmlsZSBmb3Iga2VlcGluZyB0cmFjayBvZiBydW5uaW5nIGJhY2t1cCBvcGVyYXRpb25zCl9QSURfRklMRT0iL3Zhci9ydW4vbmMtYmFja3VwLnBpZCIKCgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGxvZ2dpbmcgdG8gYm90aCB0aGUgbG9nIGZpbGUgYW5kIHN0ZG91dApsb2coKSB7CiAgbG9jYWwgbXNnIG1lc3NhZ2UKCiAgZndkPShlY2hvKQogIGlmIFtbIC1uICIkTE9HX0ZJTEUiIF1dCiAgdGhlbgogIGZ3ZD0odGVlIC1hICIkTE9HX0ZJTEUiKQogIGZpCgogIGlmIFtbIC16ICIkezE6LX0iIF1dCiAgdGhlbgogIHdoaWxlIHJlYWQgLXIgbWVzc2FnZQogIGRvCiAgZWNobyAiXCQkJD4kKGRhdGUgLUlzKT0+IiAiJHttZXNzYWdlW0BdfSIgMj4mMSB8ICIke2Z3ZFtAXX0iCiAgZG9uZQogIHJldHVybgogIGZpCgogIGVjaG8gIlwkJCQ+JChkYXRlIC1Jcyk9PiIgIiR7QH0iIDI+JjEgfCAiJHtmd2RbQF19Igp9CgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGNsZWFuaW5nIHVwIHNuYXBzaG90cywgcGlkIGZpbGUsIGV0Yy4KY2xlYW51cCgpIHsKICBzZXQgK2V1CiAgZWNobyAiQ2xlYW51cC4uLiIKICAKICBybSAtcmYgIiR7UEdQQVNTX1BBVEh9IgogIAogIAogIHVtb3VudCAiJF9EQl9CSU5EIgogIHVtb3VudCAiJF9OQ19JTlNUQUxMX0JJTkQiCiAgdW1vdW50ICIkX1VTRVJfRklMRVNfQklORCIKCiAgW1sgLXogIiR7VVNFUl9GSUxFU19NT1VOVH0iIF1dIHx8IHVtb3VudCAiJFVTRVJfRklMRVNfTU9VTlQiCiAgW1sgLXogIiR7TkNfSU5TVEFMTF9NT1VOVH0iIF1dIHx8IHVtb3VudCAiJE5DX0lOU1RBTExfTU9VTlQiCgogIHJtIC1yZiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiOwogICMgQ2xlYW51cCBOQyBpbnN0YWxsIGRpciBzbmFwc2hvdAogIAogIGJ0cmZzIHN1YnZvbHVtZSBkZWxldGUgIiROQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEgiCiAgCiAgIyBDbGVhbnVwIE5DIGZpbGVzIHNuYXBzaG90CiAgCiAgYnRyZnMgc3Vidm9sdW1lIGRlbGV0ZSAiJFVTRVJfRklMRVNfU05BUFNIT1RfUEFUSCIKICAKICAKICAjIFJlbW92ZSBQSUQgZmlsZQogIHJtICIkX1BJRF9GSUxFIgogIGVjaG8gIkRvbmUuIgp9CgoKCiMjIERldGVjdCB3aGV0aGVyIGEgYmFja3VwIGlzIHN0aWxsIHJ1bm5pbmcgKGFuZCBhYm9ydCBpbiB0aGlzIGNhc2UpCiMgSWYgdGhlIGJhY2t1cCBoYXMgYmVlbiBydW5uaW5nIGZvciBtb3JlIHRoYW4gMTAgaG91cnMsIGl0IGlzIGFzc3VtZWQgdG8gYmUgc3R1Y2sgYW5kIGl0cyBwcm9jZXNzIGtpbGxlZAppZiBbWyAtZiAiJF9QSURfRklMRSIgXV0gJiYgcHMgLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiID4gL2Rldi9udWxsCnRoZW4KICBlbGFwc2VkPSIkKHBzIC1vIGV0aW1lcz0gLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiKSIKICBpZiBbWyAiJHtlbGFwc2VkLy8gL30iIC1ndCAkKCgxMCAqIDM2MDApKSBdXQogIHRoZW4KICAgIGxvZyAiRGV0ZWN0ZWQgYmFja3VwIHByb2Nlc3MgZ29pbmcgZm9yIG92ZXIgMTAgaG91cnMsIGtpbGxpbmcgaXQuLi4iCiAgICBraWxsIC05ICIkKGNhdCAiJF9QSURfRklMRSIpIgogIGVsc2UKICAgIGxvZyAiT25nb2luZyBiYWNrdXAgcHJvY2VzcyBkZXRlY3RlZC4gQWJvcnRpbmcuLi4iCiAgICBleGl0IDAKICBmaQpmaQoKIyBjbGVhbnVwIGxlZnRvdmVycyBmcm9tIGxhc3QgcnVuIGlmIGFueQpjbGVhbnVwID4gL2Rldi9udWxsIDI+JjEgfHw6CgojIFNhdmUgY3VycmVudCBwcm9jZXNzIGlkIHRvIHBpZCBmaWxlCmVjaG8gIiQkIiA+ICIkX1BJRF9GSUxFIgoKIyBjbGVhbnVwIHdpbGwgYmUgcnVuIGF0IHRoZSBlbmQgb2YgdGhlIHNjcmlwdCB3aGV0aGVyIGl0IGZhaWxzIG9yIHN1Y2NlZWRzCnRyYXAgJ2NsZWFudXAgMj4mMSB8IGxvZycgRVhJVAoKIyBNYWtlIHN1cmUgZGlyZWN0b3JpZXMgZXhpc3QKbWtkaXIgLXAgIiRfVVNFUl9GSUxFU19CSU5EIiAiJF9OQ19JTlNUQUxMX0JJTkQiICIkX0RCX0JJTkQiICIkVVNFUl9GSUxFU19NT1VOVCIgIiROQ19JTlNUQUxMX01PVU5UIiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiCgp0aW1lc3RhbXA9IiQoZGF0ZSAiKyVZLSVtLSVkICVIOiVNOiVTICVaIikiCmxvZyAiU3RhcnRpbmcgTmV4dGNsb3VkIFNuYXBzaG90IGF0ICR0aW1lc3RhbXAiCgojIFNuYXBzaG90IGRpc2tzCmxvZyAiQ3JlYXRlIHNuYXBzaG90cy4uLiIKCmJ0cmZzIHN1YnZvbHVtZSBzbmFwc2hvdCAtciAiJHtOQ19JTlNUQUxMX1ZPTFVNRX0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCgpidHJmcyBzdWJ2b2x1bWUgc25hcHNob3QgLXIgIiR7VVNFUl9GSUxFU19WT0xVTUV9IiAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IiAyPiYxIHwgbG9nCgpsb2cgIkRvbmUuIgoKIyBEdW1wIERCCmxvZyAiQ3JlYXRlIERCIGR1bXAuLi4iCiIke1NRTERVTVBfQ01EW0BdfSIgPiAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfS9kYi5zcWwiCmxvZyAiRG9uZS4iCgojIEJpbmQgbW91bnQgYWxsIGluZGl2aWR1YWwgc25hcHNob3RzIGludG8gYSBjb21tb24gcGFyZW50IGRpcmVjdG9yeQpsb2cgIkNyZWF0ZSBiaW5kIG1vdW50cy4uLiIKbW91bnQgLS1iaW5kIC1vICJybyx1aWQ9JHtOQ19PV05FUl9VSUR9LGdpZD0ke05DX09XTkVSX0dJRH0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0vJHtOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfTkNfSU5TVEFMTF9CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD0ke1VTRVJfRklMRVNfT1dORVJfVUlEfSxnaWQ9JHtVU0VSX0ZJTEVTX09XTkVSX0dJRH0gICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0vJHtVU0VSX0ZJTEVTX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfVVNFUl9GSUxFU19CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD1yb290LGdpZD1yb290ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtfREJfQklORH0iICAgICAgICAgICAgIDI+JjEgfCBsb2cKbG9nICJEb25lLiIKCiMgQ3JlYXRlIHRoZSBmaW5hbCBzbmFwc2hvdCB3aXRoIGtvcGlhIHVzaW5nIHRoZSBkZWZhdWx0IGtvcGlhIHJlcG9zaXRvcnkgY29uZmlnIChpZiBuZWVkZWQsIHlvdSBjYW4gY2hhbmdlIHRoZSBjb25maWcgZmlsZSB3aXRoIHRoZSAtLWNvbmZpZy1maWxlIHBhcmFtZXRlcikKbG9nICJDcmVhdGUga29waWEgc25hcHNob3QuLi4iCiMgVGVtcG9yYXJ5IGxvZyBmaWxlIGFzIGEgd29ya2Fyb3VuZCB0byBwYXNzIGtvcGlhIGxvZ3MgdG8gb3VyIGxvZyBmdW5jdGlvbgprb3BpYV9sb2dmaWxlPSIkKG1rdGVtcCAtLXRtcGRpciBrb3BpYS1zbmFwc2hvdC5YWFhYWC5sb2cpIgp0YWlsIC1mICIka29waWFfbG9nZmlsZSIgJgprb3BpYSBzbmFwc2hvdCBjcmVhdGUgLS1wYXJhbGxlbD00IC0tdGFncyAiJHtLT1BJQV9UQUdTfSIgLS1zdGFydC10aW1lPSIkdGltZXN0YW1wIiAtLWxvZy1maWxlPSIka29waWFfbG9nZmlsZSIgLS1maWxlLWxvZy1sZXZlbD0iaW5mbyIgIiR7QkFDS1VQX1JPT1R9IgpjYXQgIiR7a29waWFfbG9nZmlsZSUubG9nfSIqLmxvZyB8IGxvZyA+IC9kZXYvbnVsbApsb2cgIkRvbmUuIg==&#x27;), &#x27;nextcloud-backup.sh&#x27;)&quot;&gt;
          Download
        &lt;&#x2F;sl-button&gt;
      &lt;&#x2F;context-condition&gt;
      
      
      &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;postgres&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
        &lt;sl-button onclick=&quot;downloadAsFile(content=atob(&#x27;IyEvYmluL2Jhc2gKCnNldCAtZXVvIHBpcGVmYWlsCgojIyMgPT09PT09PT09PSAjIyMKIyBQcm9jZWR1cmUKIyAtIFRoZSBzY3JpcHQgd2lsbCBjcmVhdGUgc25hcHNob3RzIG9mIHRoZSBsdm0gcm9vdCB2b2x1bWUgYW5kIHRoZSBidHJmcyBzdWJ2b2x1bWUgYmFja2luZyBOZXh0Y2xvdWQncyB1c2VyIGZpbGVzLiBUaGVuIGl0IHdpbGwgc3RhcnQgYW4gc3FsZHVtcCBvZiB0aGUgZGF0YWJhc2UKIyAtIEFmdGVyd2FyZHMsIGFsbCAzIHNuYXBzaG90cyB3aWxsIGJlIG1vdW50ZWQvY29waWVkIGluIHRoZSBzYW1lIHBhcmVudCBkaXJlY3RvcnkgYW5kIHVwbG9hZGVkIHRvIGEga29waWEgcmVwb3NpdG9yeQojIyMgPT09PT09PT09PSAjIyMKCiMjIyBDT05GSUdVUkFUSU9OCgojIGZpbGUgZm9yIHdyaXRpbmcgbG9ncy4gQ2FuIGJlIGxlZnQgZW1wdHkgdG8gb25seSBsb2cgdG8gc3Rkb3V0CkxPR19GSUxFPSIvdmFyL2xvZy9uYy1iYWNrdXAubG9nIgoKIyMgTmV4dGNsb3VkIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgY29uZmlnCiMgUGF0aCB0byB0aGUgYnRyZnMgc3Vidm9sdW1lIGNvbnRhaW5pbmcgeW91ciBOQyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5Ck5DX0lOU1RBTExfVk9MVU1FPSIvdmFyL3d3dy9uZXh0Y2xvdWQiCiMgUGF0aCB3aGVyZSB0aGUgKHRlbXBvcmFyeSkgYnRyZnMgc25hcHNob3QgZm9yIHRoZSBOQyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IHNob3VsZCBiZSBjcmVhdGVkCk5DX0lOU1RBTExfU05BUFNIT1RfUEFUSD0iL3Zhci93d3cvLm5jX3NuYXBzaG90IgojIEFkanVzdCB0aGlzIGlmIHRoZSBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IGlzIG5vdCBpbiB0aGUgcm9vdCBvZiB0aGUgYmFja2luZyBmaWxlc3lzdGVtIHZvbHVtZQpOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEg9Ii8iCgojIyBOZXh0Y2xvdWQgZmlsZXMgZGlyZWN0b3J5IGNvbmZpZwojIFBhdGggdG8gdGhlIGJ0cmZzIHN1YnZvbHVtZSBjb250YWluaW5nIHlvdXIgTkMgZmlsZXMgZGlyZWN0b3J5ClVTRVJfRklMRVNfVk9MVU1FPSIvbW50L2RhdGEvbmNkYXRhIgojIFBhdGggd2hlcmUgdGhlICh0ZW1wb3JhcnkpIGJ0cmZzIHNuYXBzaG90IGZvciB0aGUgTkMgZmlsZXMgZGlyZWN0b3J5IHNob3VsZCBiZSBjcmVhdGVkClVTRVJfRklMRVNfU05BUFNIT1RfUEFUSD0iL21udC9kYXRhLy5uY19maWxlc19zbmFwc2hvdCIKIyBEQiBkdW1wIGNvbmZpZwojIFBhdGggd2hlcmUgdG8gdGVtcG9yYXJpbHkgc3RvcmUgZGF0YWJhc2UgZHVtcCAoc2hvdWxkIGhhdmUgZW5vdWdoIGZyZWUgc3BhY2UpClNRTF9EVU1QX1RBUkdFVF9ESVI9Ii92YXIvbmMtYmFja3VwLWRiIgojIFdoYXRldmVyIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuIHNxbGR1bXAgKGluY2x1ZGluZyBwYXJhbWV0ZXJzIGxpa2UgdXNlciwgaG9zdCwgZGJuYW1lLCBwYXNzd29yZCBjZmcgLi4uKQojIC0gSWYgeW91ciBEQiBpcyBydW4gaW5zaWRlIGRvY2tlciwganVzdCBwcmVwZW5kIHRoZSBjb21tYW5kIHdpdGggd2hhdGV2ZXIgaXMgbmVlZGVkIHRvIHJ1biBhIGNvbW1hbmQgaW5zaWRlIHRoZSBjb250YWluZXIsCiMgICBmb3IgZXhhbXBsZTogU1FMRFVNUF9DTUQ9KGRvY2tlciBleGVjIDxjb250YWluZXJuYW1lPiBwZ19kdW1wIC1VIHBvc3RncmVzIC1kIG5jKQojIC0gRm9yIE1hcmlhREIgKHdpdGggdGhlIElubm9EQiBlbmdpbmUpLCBtYWtlIHN1cmUgdG8gdXNlIC0tc2luZ2xlLXRyYW5zYWN0aW9uIChhbmQgb3B0aW9uYWxseSAtLXNraXAtbG9jay10YWJsZXMgdG8gYXZvaWQgc2xvdyBkb3ducyBmb3IgeW91ciBzeXN0ZW0pIHRvIGF2b2lkIHNpZGUgZWZmZWN0cy4KIyAgIFNlZSBodHRwczovL215c3FsZHVtcC5ndXJ1L215c3FsZHVtcC1zaW5nbGUtdHJhbnNhY3Rpb24tZmxhZy5odG1sIGZvciBtb3JlIGluZm8uCiMgLSBGb3IgcG9zdGdyZXNxbCwgbm8gYWRqdXN0ZW1udHMgYXJlIG5lZWRlZAoKIyBDb25maWd1cmUgdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBmb3IgeW91ciBkYXRhYmFzZToKREJfVVNFUj0ibmV4dGNsb3VkIgpEQl9OQU1FPSJuZXh0Y2xvdWQiCkRCX1BBU1NXT1JEPSJwYXNzd29yZCIKREJfSE9TVD0iMTI3LjAuMC4xIgpEQl9QT1JUPSI1NDMyIgoKCiMgcGdfZHVtcCB3aWxsIGJlIHN1cHBsaWVkIHdpdGggdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBieSB3cml0aW5nIHRoZW0gdG8gfi8ucGdwYXNzClBHUEFTU19QQVRIPSIke0hPTUV9Ly5wZ3Bhc3MiCmluc3RhbGwgLW0gMDYwMCA8KGVjaG8gIiR7REJfSE9TVH06JHtEQl9QT1JUfToke0RCX05BTUV9OiR7REJfVVNFUn06JHtEQl9QQVNTV09SRH0iKSAiJHtQR1BBU1NfUEFUSH0iClNRTERVTVBfQ01EPShwZ19kdW1wICIke0RCX05BTUV9IikKCiMgU2V0dXAgYW55IHRhZ3MgaGVyZSB0aGF0IHlvdSB3YW50IHRvIGJlIGFkZGVkIHRvIHlvdXIgeW91ciBrb3BpYSBzbmFwc2hvdCAoY29tbWEgc2VwYXJhdGVkIGluIHRoZSBmb3JtYXQgbGFiZWw6dmFsdWUpCktPUElBX1RBR1M9ImpvYjpuZXh0Y2xvdWQtZnVsbC1iYWNrdXAsbmMtZmlsZXM6eWVzLG5jLWRiOnllcyxuYy1uZXh0Y2xvdWQ6eWVzIgoKIyMjIEFEVkFOQ0VEL0lOVEVSTkFMIENPTkZJRyAtIG9ubHkgYWRqdXN0IGlmIHlvdSBhcmUgc3VyZSB0aGF0IHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nICMjIwpOQ19JTlNUQUxMX0ZTVFlQRT0iYnRyZnMiCgpVU0VSX0ZJTEVTX0ZTVFlQRT0iYnRyZnMiCgoKIyBGT1JDRSBVSUQgYW5kIEdJRCB0aGF0IGFsbCBmaWxlcyBmcm9tIHRoZSBuZXh0Y2xvdWQgaW5zdGFsbCBkaXJlY3Rvcnkgc2hvdWxkIGhhdmUgaW4gdGhlIGJhY2t1cCAoZS5nLiB0aGF0IG9mIHlvdXIgd3d3LWRhdGEgdXNlciBhbmQgZ3JvdXApCk5DX09XTkVSX1VJRD0zMwpOQ19PV05FUl9HSUQ9MzMKCiMgRk9SQ0UgVUlEIGFuZCBHSUQgdGhhdCBhbGwgdXNlciBmaWxlcyBzaG91bGQgaGF2ZSBpbiB0aGUgYmFja3VwIChlLmcuIHRoYXQgb2YgeW91ciB3d3ctZGF0YSB1c2VyIGFuZCBncm91cCkKVVNFUl9GSUxFU19PV05FUl9VSUQ9MzMKVVNFUl9GSUxFU19PV05FUl9HSUQ9MzMKCiMgQ29uZmlndXJlIHBhdGggd2hlcmUgYWxsIHBhcnRzIG9mIHRoZSBiYWNrdXAgd2lsbCBiZSBtYXBwZWQgdG8gYmVmb3JlIHRyYW5zZmVycmluZyB3aXRoIEtvcGlhCkJBQ0tVUF9ST09UPSIvcnVuL25jLWJhY2t1cCIKCgojIyMgWW91IHVzdWFsbHkgc2hvdWxkIG5vdCBuZWVkIHRvIHRvdWNoIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzCgpfVVNFUl9GSUxFU19CSU5EPSIke0JBQ0tVUF9ST09UfS9uY19maWxlcyIKX05DX0lOU1RBTExfQklORD0iJHtCQUNLVVBfUk9PVH0vbmV4dGNsb3VkIgpfREJfQklORD0iJHtCQUNLVVBfUk9PVH0vZGIiCgojIGZpbGUgZm9yIGtlZXBpbmcgdHJhY2sgb2YgcnVubmluZyBiYWNrdXAgb3BlcmF0aW9ucwpfUElEX0ZJTEU9Ii92YXIvcnVuL25jLWJhY2t1cC5waWQiCgoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBsb2dnaW5nIHRvIGJvdGggdGhlIGxvZyBmaWxlIGFuZCBzdGRvdXQKbG9nKCkgewogIGxvY2FsIG1zZyBtZXNzYWdlCgogIGZ3ZD0oZWNobykKICBpZiBbWyAtbiAiJExPR19GSUxFIiBdXQogIHRoZW4KICBmd2Q9KHRlZSAtYSAiJExPR19GSUxFIikKICBmaQoKICBpZiBbWyAteiAiJHsxOi19IiBdXQogIHRoZW4KICB3aGlsZSByZWFkIC1yIG1lc3NhZ2UKICBkbwogIGVjaG8gIlwkJCQ+JChkYXRlIC1Jcyk9PiIgIiR7bWVzc2FnZVtAXX0iIDI+JjEgfCAiJHtmd2RbQF19IgogIGRvbmUKICByZXR1cm4KICBmaQoKICBlY2hvICJcJCQkPiQoZGF0ZSAtSXMpPT4iICIke0B9IiAyPiYxIHwgIiR7ZndkW0BdfSIKfQoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjbGVhbmluZyB1cCBzbmFwc2hvdHMsIHBpZCBmaWxlLCBldGMuCmNsZWFudXAoKSB7CiAgc2V0ICtldQogIGVjaG8gIkNsZWFudXAuLi4iCiAgCiAgcm0gLXJmICIke1BHUEFTU19QQVRIfSIKICAKICAKICB1bW91bnQgIiRfREJfQklORCIKICB1bW91bnQgIiRfTkNfSU5TVEFMTF9CSU5EIgogIHVtb3VudCAiJF9VU0VSX0ZJTEVTX0JJTkQiCgogIFtbIC16ICIke1VTRVJfRklMRVNfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiRVU0VSX0ZJTEVTX01PVU5UIgogIFtbIC16ICIke05DX0lOU1RBTExfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiROQ19JTlNUQUxMX01PVU5UIgoKICBybSAtcmYgIiRTUUxfRFVNUF9UQVJHRVRfRElSIjsKICAjIENsZWFudXAgTkMgaW5zdGFsbCBkaXIgc25hcHNob3QKICAKICBidHJmcyBzdWJ2b2x1bWUgZGVsZXRlICIkTkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIIgogIAogICMgQ2xlYW51cCBOQyBmaWxlcyBzbmFwc2hvdAogIAogIGJ0cmZzIHN1YnZvbHVtZSBkZWxldGUgIiRVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEgiCiAgCiAgCiAgIyBSZW1vdmUgUElEIGZpbGUKICBybSAiJF9QSURfRklMRSIKICBlY2hvICJEb25lLiIKfQoKCgojIyBEZXRlY3Qgd2hldGhlciBhIGJhY2t1cCBpcyBzdGlsbCBydW5uaW5nIChhbmQgYWJvcnQgaW4gdGhpcyBjYXNlKQojIElmIHRoZSBiYWNrdXAgaGFzIGJlZW4gcnVubmluZyBmb3IgbW9yZSB0aGFuIDEwIGhvdXJzLCBpdCBpcyBhc3N1bWVkIHRvIGJlIHN0dWNrIGFuZCBpdHMgcHJvY2VzcyBraWxsZWQKaWYgW1sgLWYgIiRfUElEX0ZJTEUiIF1dICYmIHBzIC1wICIkKGNhdCAiJF9QSURfRklMRSIpIiA+IC9kZXYvbnVsbAp0aGVuCiAgZWxhcHNlZD0iJChwcyAtbyBldGltZXM9IC1wICIkKGNhdCAiJF9QSURfRklMRSIpIikiCiAgaWYgW1sgIiR7ZWxhcHNlZC8vIC99IiAtZ3QgJCgoMTAgKiAzNjAwKSkgXV0KICB0aGVuCiAgICBsb2cgIkRldGVjdGVkIGJhY2t1cCBwcm9jZXNzIGdvaW5nIGZvciBvdmVyIDEwIGhvdXJzLCBraWxsaW5nIGl0Li4uIgogICAga2lsbCAtOSAiJChjYXQgIiRfUElEX0ZJTEUiKSIKICBlbHNlCiAgICBsb2cgIk9uZ29pbmcgYmFja3VwIHByb2Nlc3MgZGV0ZWN0ZWQuIEFib3J0aW5nLi4uIgogICAgZXhpdCAwCiAgZmkKZmkKCiMgY2xlYW51cCBsZWZ0b3ZlcnMgZnJvbSBsYXN0IHJ1biBpZiBhbnkKY2xlYW51cCA+IC9kZXYvbnVsbCAyPiYxIHx8OgoKIyBTYXZlIGN1cnJlbnQgcHJvY2VzcyBpZCB0byBwaWQgZmlsZQplY2hvICIkJCIgPiAiJF9QSURfRklMRSIKCiMgY2xlYW51cCB3aWxsIGJlIHJ1biBhdCB0aGUgZW5kIG9mIHRoZSBzY3JpcHQgd2hldGhlciBpdCBmYWlscyBvciBzdWNjZWVkcwp0cmFwICdjbGVhbnVwIDI+JjEgfCBsb2cnIEVYSVQKCiMgTWFrZSBzdXJlIGRpcmVjdG9yaWVzIGV4aXN0Cm1rZGlyIC1wICIkX1VTRVJfRklMRVNfQklORCIgIiRfTkNfSU5TVEFMTF9CSU5EIiAiJF9EQl9CSU5EIiAiJFVTRVJfRklMRVNfTU9VTlQiICIkTkNfSU5TVEFMTF9NT1VOVCIgIiRTUUxfRFVNUF9UQVJHRVRfRElSIgoKdGltZXN0YW1wPSIkKGRhdGUgIislWS0lbS0lZCAlSDolTTolUyAlWiIpIgpsb2cgIlN0YXJ0aW5nIE5leHRjbG91ZCBTbmFwc2hvdCBhdCAkdGltZXN0YW1wIgoKIyBTbmFwc2hvdCBkaXNrcwpsb2cgIkNyZWF0ZSBzbmFwc2hvdHMuLi4iCgpidHJmcyBzdWJ2b2x1bWUgc25hcHNob3QgLXIgIiR7TkNfSU5TVEFMTF9WT0xVTUV9IiAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9IiAyPiYxIHwgbG9nCgoKYnRyZnMgc3Vidm9sdW1lIHNuYXBzaG90IC1yICIke1VTRVJfRklMRVNfVk9MVU1FfSIgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfSIgMj4mMSB8IGxvZwoKbG9nICJEb25lLiIKCiMgRHVtcCBEQgpsb2cgIkNyZWF0ZSBEQiBkdW1wLi4uIgoiJHtTUUxEVU1QX0NNRFtAXX0iID4gIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0vZGIuc3FsIgpsb2cgIkRvbmUuIgoKIyBCaW5kIG1vdW50IGFsbCBpbmRpdmlkdWFsIHNuYXBzaG90cyBpbnRvIGEgY29tbW9uIHBhcmVudCBkaXJlY3RvcnkKbG9nICJDcmVhdGUgYmluZCBtb3VudHMuLi4iCm1vdW50IC0tYmluZCAtbyAicm8sdWlkPSR7TkNfT1dORVJfVUlEfSxnaWQ9JHtOQ19PV05FUl9HSUR9IiAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9LyR7TkNfSU5TVEFMTF9SRUxBVElWRV9QQVRIIy99IiAgICAgIiR7X05DX0lOU1RBTExfQklORH0iICAgICAyPiYxIHwgbG9nCm1vdW50IC0tYmluZCAtbyBybyx1aWQ9JHtVU0VSX0ZJTEVTX09XTkVSX1VJRH0sZ2lkPSR7VVNFUl9GSUxFU19PV05FUl9HSUR9ICAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9LyR7VVNFUl9GSUxFU19SRUxBVElWRV9QQVRIIy99IiAgICAgIiR7X1VTRVJfRklMRVNfQklORH0iICAgICAyPiYxIHwgbG9nCm1vdW50IC0tYmluZCAtbyBybyx1aWQ9cm9vdCxnaWQ9cm9vdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7X0RCX0JJTkR9IiAgICAgICAgICAgICAyPiYxIHwgbG9nCmxvZyAiRG9uZS4iCgojIENyZWF0ZSB0aGUgZmluYWwgc25hcHNob3Qgd2l0aCBrb3BpYSB1c2luZyB0aGUgZGVmYXVsdCBrb3BpYSByZXBvc2l0b3J5IGNvbmZpZyAoaWYgbmVlZGVkLCB5b3UgY2FuIGNoYW5nZSB0aGUgY29uZmlnIGZpbGUgd2l0aCB0aGUgLS1jb25maWctZmlsZSBwYXJhbWV0ZXIpCmxvZyAiQ3JlYXRlIGtvcGlhIHNuYXBzaG90Li4uIgojIFRlbXBvcmFyeSBsb2cgZmlsZSBhcyBhIHdvcmthcm91bmQgdG8gcGFzcyBrb3BpYSBsb2dzIHRvIG91ciBsb2cgZnVuY3Rpb24Ka29waWFfbG9nZmlsZT0iJChta3RlbXAgLS10bXBkaXIga29waWEtc25hcHNob3QuWFhYWFgubG9nKSIKdGFpbCAtZiAiJGtvcGlhX2xvZ2ZpbGUiICYKa29waWEgc25hcHNob3QgY3JlYXRlIC0tcGFyYWxsZWw9NCAtLXRhZ3MgIiR7S09QSUFfVEFHU30iIC0tc3RhcnQtdGltZT0iJHRpbWVzdGFtcCIgLS1sb2ctZmlsZT0iJGtvcGlhX2xvZ2ZpbGUiIC0tZmlsZS1sb2ctbGV2ZWw9ImluZm8iICIke0JBQ0tVUF9ST09UfSIKY2F0ICIke2tvcGlhX2xvZ2ZpbGUlLmxvZ30iKi5sb2cgfCBsb2cgPiAvZGV2L251bGwKbG9nICJEb25lLiI=&#x27;), &#x27;nextcloud-backup.sh&#x27;)&quot;&gt;
          Download
        &lt;&#x2F;sl-button&gt;
      &lt;&#x2F;context-condition&gt;
      
      
      &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;mariadb&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
        &lt;sl-button onclick=&quot;downloadAsFile(content=atob(&#x27;IyEvYmluL2Jhc2gKCnNldCAtZXVvIHBpcGVmYWlsCgojIyMgPT09PT09PT09PSAjIyMKIyBQcm9jZWR1cmUKIyAtIFRoZSBzY3JpcHQgd2lsbCBjcmVhdGUgc25hcHNob3RzIG9mIHRoZSBsdm0gcm9vdCB2b2x1bWUgYW5kIHRoZSBidHJmcyBzdWJ2b2x1bWUgYmFja2luZyBOZXh0Y2xvdWQncyB1c2VyIGZpbGVzLiBUaGVuIGl0IHdpbGwgc3RhcnQgYW4gc3FsZHVtcCBvZiB0aGUgZGF0YWJhc2UKIyAtIEFmdGVyd2FyZHMsIGFsbCAzIHNuYXBzaG90cyB3aWxsIGJlIG1vdW50ZWQvY29waWVkIGluIHRoZSBzYW1lIHBhcmVudCBkaXJlY3RvcnkgYW5kIHVwbG9hZGVkIHRvIGEga29waWEgcmVwb3NpdG9yeQojIyMgPT09PT09PT09PSAjIyMKCiMjIyBDT05GSUdVUkFUSU9OCgojIGZpbGUgZm9yIHdyaXRpbmcgbG9ncy4gQ2FuIGJlIGxlZnQgZW1wdHkgdG8gb25seSBsb2cgdG8gc3Rkb3V0CkxPR19GSUxFPSIvdmFyL2xvZy9uYy1iYWNrdXAubG9nIgoKIyMgTmV4dGNsb3VkIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgY29uZmlnCiMgUGF0aCB0byB0aGUgYnRyZnMgc3Vidm9sdW1lIGNvbnRhaW5pbmcgeW91ciBOQyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5Ck5DX0lOU1RBTExfVk9MVU1FPSIvdmFyL3d3dy9uZXh0Y2xvdWQiCiMgUGF0aCB3aGVyZSB0aGUgKHRlbXBvcmFyeSkgYnRyZnMgc25hcHNob3QgZm9yIHRoZSBOQyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IHNob3VsZCBiZSBjcmVhdGVkCk5DX0lOU1RBTExfU05BUFNIT1RfUEFUSD0iL3Zhci93d3cvLm5jX3NuYXBzaG90IgojIEFkanVzdCB0aGlzIGlmIHRoZSBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IGlzIG5vdCBpbiB0aGUgcm9vdCBvZiB0aGUgYmFja2luZyBmaWxlc3lzdGVtIHZvbHVtZQpOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEg9Ii8iCgojIyBOZXh0Y2xvdWQgZmlsZXMgZGlyZWN0b3J5IGNvbmZpZwpVU0VSX0ZJTEVTX1ZHPSJsdm0tMSIgIyBBZGp1c3QgdG8gbWF0Y2ggdGhlIExWTSB2b2x1bWUgZ3JvdXAgY29udGFpbmluZyB5b3VyIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKVVNFUl9GSUxFU19MVj0ibmMtZmlsZXMiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBsb2dpY2FsIHZvbHVtZSBuYW1lIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5CiMgREIgZHVtcCBjb25maWcKIyBQYXRoIHdoZXJlIHRvIHRlbXBvcmFyaWx5IHN0b3JlIGRhdGFiYXNlIGR1bXAgKHNob3VsZCBoYXZlIGVub3VnaCBmcmVlIHNwYWNlKQpTUUxfRFVNUF9UQVJHRVRfRElSPSIvdmFyL25jLWJhY2t1cC1kYiIKIyBXaGF0ZXZlciBjb21tYW5kIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhbiBzcWxkdW1wIChpbmNsdWRpbmcgcGFyYW1ldGVycyBsaWtlIHVzZXIsIGhvc3QsIGRibmFtZSwgcGFzc3dvcmQgY2ZnIC4uLikKIyAtIElmIHlvdXIgREIgaXMgcnVuIGluc2lkZSBkb2NrZXIsIGp1c3QgcHJlcGVuZCB0aGUgY29tbWFuZCB3aXRoIHdoYXRldmVyIGlzIG5lZWRlZCB0byBydW4gYSBjb21tYW5kIGluc2lkZSB0aGUgY29udGFpbmVyLAojICAgZm9yIGV4YW1wbGU6IFNRTERVTVBfQ01EPShkb2NrZXIgZXhlYyA8Y29udGFpbmVybmFtZT4gcGdfZHVtcCAtVSBwb3N0Z3JlcyAtZCBuYykKIyAtIEZvciBNYXJpYURCICh3aXRoIHRoZSBJbm5vREIgZW5naW5lKSwgbWFrZSBzdXJlIHRvIHVzZSAtLXNpbmdsZS10cmFuc2FjdGlvbiAoYW5kIG9wdGlvbmFsbHkgLS1za2lwLWxvY2stdGFibGVzIHRvIGF2b2lkIHNsb3cgZG93bnMgZm9yIHlvdXIgc3lzdGVtKSB0byBhdm9pZCBzaWRlIGVmZmVjdHMuCiMgICBTZWUgaHR0cHM6Ly9teXNxbGR1bXAuZ3VydS9teXNxbGR1bXAtc2luZ2xlLXRyYW5zYWN0aW9uLWZsYWcuaHRtbCBmb3IgbW9yZSBpbmZvLgojIC0gRm9yIHBvc3RncmVzcWwsIG5vIGFkanVzdGVtbnRzIGFyZSBuZWVkZWQKCiMgQ29uZmlndXJlIHRoZSBjb25uZWN0aW9uIG9wdGlvbnMgZm9yIHlvdXIgZGF0YWJhc2U6CkRCX1VTRVI9Im5leHRjbG91ZCIKREJfTkFNRT0ibmV4dGNsb3VkIgpEQl9QQVNTV09SRD0icGFzc3dvcmQiCkRCX0hPU1Q9IjEyNy4wLjAuMSIKREJfUE9SVD0iNTQzMiIKCiMgbXlzcWxkdW1wIHdpbGwgYmUgc3VwcGxpZWQgd2l0aCB0aGUgZGIgY3JlZGVudGlhbHMgYnkgd3JpdGluZyB0aGVtIHRvIH4vLm15LmNuZgpNWUNORl9QQVRIPSIkSE9NRS8ubXkuY25mIgppbnN0YWxsIC1tIDA2MDAgPChlY2hvIC1lICJbbXlzcWxkdW1wXVxudXNlcj0ke0RCX1VTRVJ9XG5wYXNzd29yZD0ke0RCX1BBU1NXT1JEfSIpICIke01ZQ05GX1BBVEh9IgpTUUxEVU1QX0NNRD0obXlzcWxkdW1wIC0taG9zdD0iJHtEQl9IT1NUfSIgLS1wb3J0PSIke0RCX1BPUlR9IiAtLXNpbmdsZS10cmFuc2FjdGlvbiAtLXNraXAtbG9jay10YWJsZXMgIiR7REJfTkFNRX0iKQoKCiMgU2V0dXAgYW55IHRhZ3MgaGVyZSB0aGF0IHlvdSB3YW50IHRvIGJlIGFkZGVkIHRvIHlvdXIgeW91ciBrb3BpYSBzbmFwc2hvdCAoY29tbWEgc2VwYXJhdGVkIGluIHRoZSBmb3JtYXQgbGFiZWw6dmFsdWUpCktPUElBX1RBR1M9ImpvYjpuZXh0Y2xvdWQtZnVsbC1iYWNrdXAsbmMtZmlsZXM6eWVzLG5jLWRiOnllcyxuYy1uZXh0Y2xvdWQ6eWVzIgoKIyMjIEFEVkFOQ0VEL0lOVEVSTkFMIENPTkZJRyAtIG9ubHkgYWRqdXN0IGlmIHlvdSBhcmUgc3VyZSB0aGF0IHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nICMjIwpOQ19JTlNUQUxMX0ZTVFlQRT0iYnRyZnMiCgpVU0VSX0ZJTEVTX0ZTVFlQRT0ibHZtIgojIE5DIGZpbGVzIExWTSBzbmFwc2hvdCBuYW1lClVTRVJfRklMRVNfU05BUFNIT1RfTkFNRT0ibmMtYmFja3VwLW5jLWZpbGVzIgpVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEg9Ii9ydW4vbW50L25jLWJhY2t1cC1sdm0tbmMtZmlsZXMiCgoKIyBGT1JDRSBVSUQgYW5kIEdJRCB0aGF0IGFsbCBmaWxlcyBmcm9tIHRoZSBuZXh0Y2xvdWQgaW5zdGFsbCBkaXJlY3Rvcnkgc2hvdWxkIGhhdmUgaW4gdGhlIGJhY2t1cCAoZS5nLiB0aGF0IG9mIHlvdXIgd3d3LWRhdGEgdXNlciBhbmQgZ3JvdXApCk5DX09XTkVSX1VJRD0zMwpOQ19PV05FUl9HSUQ9MzMKCiMgRk9SQ0UgVUlEIGFuZCBHSUQgdGhhdCBhbGwgdXNlciBmaWxlcyBzaG91bGQgaGF2ZSBpbiB0aGUgYmFja3VwIChlLmcuIHRoYXQgb2YgeW91ciB3d3ctZGF0YSB1c2VyIGFuZCBncm91cCkKVVNFUl9GSUxFU19PV05FUl9VSUQ9MzMKVVNFUl9GSUxFU19PV05FUl9HSUQ9MzMKCiMgQ29uZmlndXJlIHBhdGggd2hlcmUgYWxsIHBhcnRzIG9mIHRoZSBiYWNrdXAgd2lsbCBiZSBtYXBwZWQgdG8gYmVmb3JlIHRyYW5zZmVycmluZyB3aXRoIEtvcGlhCkJBQ0tVUF9ST09UPSIvcnVuL25jLWJhY2t1cCIKCgojIyMgWW91IHVzdWFsbHkgc2hvdWxkIG5vdCBuZWVkIHRvIHRvdWNoIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzCgpfVVNFUl9GSUxFU19CSU5EPSIke0JBQ0tVUF9ST09UfS9uY19maWxlcyIKX05DX0lOU1RBTExfQklORD0iJHtCQUNLVVBfUk9PVH0vbmV4dGNsb3VkIgpfREJfQklORD0iJHtCQUNLVVBfUk9PVH0vZGIiCgojIGZpbGUgZm9yIGtlZXBpbmcgdHJhY2sgb2YgcnVubmluZyBiYWNrdXAgb3BlcmF0aW9ucwpfUElEX0ZJTEU9Ii92YXIvcnVuL25jLWJhY2t1cC5waWQiCgoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBsb2dnaW5nIHRvIGJvdGggdGhlIGxvZyBmaWxlIGFuZCBzdGRvdXQKbG9nKCkgewogIGxvY2FsIG1zZyBtZXNzYWdlCgogIGZ3ZD0oZWNobykKICBpZiBbWyAtbiAiJExPR19GSUxFIiBdXQogIHRoZW4KICBmd2Q9KHRlZSAtYSAiJExPR19GSUxFIikKICBmaQoKICBpZiBbWyAteiAiJHsxOi19IiBdXQogIHRoZW4KICB3aGlsZSByZWFkIC1yIG1lc3NhZ2UKICBkbwogIGVjaG8gIlwkJCQ+JChkYXRlIC1Jcyk9PiIgIiR7bWVzc2FnZVtAXX0iIDI+JjEgfCAiJHtmd2RbQF19IgogIGRvbmUKICByZXR1cm4KICBmaQoKICBlY2hvICJcJCQkPiQoZGF0ZSAtSXMpPT4iICIke0B9IiAyPiYxIHwgIiR7ZndkW0BdfSIKfQoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjbGVhbmluZyB1cCBzbmFwc2hvdHMsIHBpZCBmaWxlLCBldGMuCmNsZWFudXAoKSB7CiAgc2V0ICtldQogIGVjaG8gIkNsZWFudXAuLi4iCiAgCiAgcm0gLXJmICIke1BHUEFTU19QQVRIfSIKICAKICAKICB1bW91bnQgIiRfREJfQklORCIKICB1bW91bnQgIiRfTkNfSU5TVEFMTF9CSU5EIgogIHVtb3VudCAiJF9VU0VSX0ZJTEVTX0JJTkQiCgogIFtbIC16ICIke1VTRVJfRklMRVNfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiRVU0VSX0ZJTEVTX01PVU5UIgogIFtbIC16ICIke05DX0lOU1RBTExfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiROQ19JTlNUQUxMX01PVU5UIgoKICBybSAtcmYgIiRTUUxfRFVNUF9UQVJHRVRfRElSIjsKICAjIENsZWFudXAgTkMgaW5zdGFsbCBkaXIgc25hcHNob3QKICAKICBidHJmcyBzdWJ2b2x1bWUgZGVsZXRlICIkTkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIIgogIAogICMgQ2xlYW51cCBOQyBmaWxlcyBzbmFwc2hvdAogIAogIHVtb3VudCAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IgogIHJtIC1yZiAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IgogIGx2Y2hhbmdlIC1hbiAtSyAiJHtVU0VSX0ZJTEVTX1ZHfS8ke1VTRVJfRklMRVNfU05BUFNIT1RfTkFNRX0iCiAgbHZyZW1vdmUgIi9kZXYvJHtVU0VSX0ZJTEVTX1ZHfS8ke1VTRVJfRklMRVNfU05BUFNIT1RfTkFNRX0iCiAgCiAgCiAgIyBSZW1vdmUgUElEIGZpbGUKICBybSAiJF9QSURfRklMRSIKICBlY2hvICJEb25lLiIKfQoKCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgbW91bnRpbmcgbHZtIHNuYXBzaG90IHRvIGEgbW91bnRwb2ludAptb3VudF9zbmFwc2hvdF9sdm0oKSB7CiAgbG9jYWwgc25hcHNob3QgbW91bnRwb2ludCBvd25lcnNoaXAKICBzbmFwc2hvdD0iJHsxP30iCiAgbW91bnRwb2ludD0iJHsyP30iCiAgbWtkaXIgLXAgIiR7bW91bnRwb2ludH0iCiAgbHZjaGFuZ2UgLWF5IC1LICIke3NuYXBzaG90fSIKICBtb3VudCAtbyAicm8iICIvZGV2LyR7c25hcHNob3R9IiAiJHttb3VudHBvaW50fSIKfQoKCiMjIERldGVjdCB3aGV0aGVyIGEgYmFja3VwIGlzIHN0aWxsIHJ1bm5pbmcgKGFuZCBhYm9ydCBpbiB0aGlzIGNhc2UpCiMgSWYgdGhlIGJhY2t1cCBoYXMgYmVlbiBydW5uaW5nIGZvciBtb3JlIHRoYW4gMTAgaG91cnMsIGl0IGlzIGFzc3VtZWQgdG8gYmUgc3R1Y2sgYW5kIGl0cyBwcm9jZXNzIGtpbGxlZAppZiBbWyAtZiAiJF9QSURfRklMRSIgXV0gJiYgcHMgLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiID4gL2Rldi9udWxsCnRoZW4KICBlbGFwc2VkPSIkKHBzIC1vIGV0aW1lcz0gLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiKSIKICBpZiBbWyAiJHtlbGFwc2VkLy8gL30iIC1ndCAkKCgxMCAqIDM2MDApKSBdXQogIHRoZW4KICAgIGxvZyAiRGV0ZWN0ZWQgYmFja3VwIHByb2Nlc3MgZ29pbmcgZm9yIG92ZXIgMTAgaG91cnMsIGtpbGxpbmcgaXQuLi4iCiAgICBraWxsIC05ICIkKGNhdCAiJF9QSURfRklMRSIpIgogIGVsc2UKICAgIGxvZyAiT25nb2luZyBiYWNrdXAgcHJvY2VzcyBkZXRlY3RlZC4gQWJvcnRpbmcuLi4iCiAgICBleGl0IDAKICBmaQpmaQoKIyBjbGVhbnVwIGxlZnRvdmVycyBmcm9tIGxhc3QgcnVuIGlmIGFueQpjbGVhbnVwID4gL2Rldi9udWxsIDI+JjEgfHw6CgojIFNhdmUgY3VycmVudCBwcm9jZXNzIGlkIHRvIHBpZCBmaWxlCmVjaG8gIiQkIiA+ICIkX1BJRF9GSUxFIgoKIyBjbGVhbnVwIHdpbGwgYmUgcnVuIGF0IHRoZSBlbmQgb2YgdGhlIHNjcmlwdCB3aGV0aGVyIGl0IGZhaWxzIG9yIHN1Y2NlZWRzCnRyYXAgJ2NsZWFudXAgMj4mMSB8IGxvZycgRVhJVAoKIyBNYWtlIHN1cmUgZGlyZWN0b3JpZXMgZXhpc3QKbWtkaXIgLXAgIiRfVVNFUl9GSUxFU19CSU5EIiAiJF9OQ19JTlNUQUxMX0JJTkQiICIkX0RCX0JJTkQiICIkVVNFUl9GSUxFU19NT1VOVCIgIiROQ19JTlNUQUxMX01PVU5UIiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiCgp0aW1lc3RhbXA9IiQoZGF0ZSAiKyVZLSVtLSVkICVIOiVNOiVTICVaIikiCmxvZyAiU3RhcnRpbmcgTmV4dGNsb3VkIFNuYXBzaG90IGF0ICR0aW1lc3RhbXAiCgojIFNuYXBzaG90IGRpc2tzCmxvZyAiQ3JlYXRlIHNuYXBzaG90cy4uLiIKCmJ0cmZzIHN1YnZvbHVtZSBzbmFwc2hvdCAtciAiJHtOQ19JTlNUQUxMX1ZPTFVNRX0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCgpsdmNyZWF0ZSAtcyAtLW5hbWUgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FfSIgIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX0xWfSIgMj4mMSB8IGxvZwptb3VudF9zbmFwc2hvdF9sdm0gIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IiAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IiAyPiYxIHwgbG9nCgpsb2cgIkRvbmUuIgoKIyBEdW1wIERCCmxvZyAiQ3JlYXRlIERCIGR1bXAuLi4iCiIke1NRTERVTVBfQ01EW0BdfSIgPiAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfS9kYi5zcWwiCmxvZyAiRG9uZS4iCgojIEJpbmQgbW91bnQgYWxsIGluZGl2aWR1YWwgc25hcHNob3RzIGludG8gYSBjb21tb24gcGFyZW50IGRpcmVjdG9yeQpsb2cgIkNyZWF0ZSBiaW5kIG1vdW50cy4uLiIKbW91bnQgLS1iaW5kIC1vICJybyx1aWQ9JHtOQ19PV05FUl9VSUR9LGdpZD0ke05DX09XTkVSX0dJRH0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0vJHtOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfTkNfSU5TVEFMTF9CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD0ke1VTRVJfRklMRVNfT1dORVJfVUlEfSxnaWQ9JHtVU0VSX0ZJTEVTX09XTkVSX0dJRH0gICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0vJHtVU0VSX0ZJTEVTX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfVVNFUl9GSUxFU19CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD1yb290LGdpZD1yb290ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtfREJfQklORH0iICAgICAgICAgICAgIDI+JjEgfCBsb2cKbG9nICJEb25lLiIKCiMgQ3JlYXRlIHRoZSBmaW5hbCBzbmFwc2hvdCB3aXRoIGtvcGlhIHVzaW5nIHRoZSBkZWZhdWx0IGtvcGlhIHJlcG9zaXRvcnkgY29uZmlnIChpZiBuZWVkZWQsIHlvdSBjYW4gY2hhbmdlIHRoZSBjb25maWcgZmlsZSB3aXRoIHRoZSAtLWNvbmZpZy1maWxlIHBhcmFtZXRlcikKbG9nICJDcmVhdGUga29waWEgc25hcHNob3QuLi4iCiMgVGVtcG9yYXJ5IGxvZyBmaWxlIGFzIGEgd29ya2Fyb3VuZCB0byBwYXNzIGtvcGlhIGxvZ3MgdG8gb3VyIGxvZyBmdW5jdGlvbgprb3BpYV9sb2dmaWxlPSIkKG1rdGVtcCAtLXRtcGRpciBrb3BpYS1zbmFwc2hvdC5YWFhYWC5sb2cpIgp0YWlsIC1mICIka29waWFfbG9nZmlsZSIgJgprb3BpYSBzbmFwc2hvdCBjcmVhdGUgLS1wYXJhbGxlbD00IC0tdGFncyAiJHtLT1BJQV9UQUdTfSIgLS1zdGFydC10aW1lPSIkdGltZXN0YW1wIiAtLWxvZy1maWxlPSIka29waWFfbG9nZmlsZSIgLS1maWxlLWxvZy1sZXZlbD0iaW5mbyIgIiR7QkFDS1VQX1JPT1R9IgpjYXQgIiR7a29waWFfbG9nZmlsZSUubG9nfSIqLmxvZyB8IGxvZyA+IC9kZXYvbnVsbApsb2cgIkRvbmUuIg==&#x27;), &#x27;nextcloud-backup.sh&#x27;)&quot;&gt;
          Download
        &lt;&#x2F;sl-button&gt;
      &lt;&#x2F;context-condition&gt;
      
      
      &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;postgres&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
        &lt;sl-button onclick=&quot;downloadAsFile(content=atob(&#x27;IyEvYmluL2Jhc2gKCnNldCAtZXVvIHBpcGVmYWlsCgojIyMgPT09PT09PT09PSAjIyMKIyBQcm9jZWR1cmUKIyAtIFRoZSBzY3JpcHQgd2lsbCBjcmVhdGUgc25hcHNob3RzIG9mIHRoZSBsdm0gcm9vdCB2b2x1bWUgYW5kIHRoZSBidHJmcyBzdWJ2b2x1bWUgYmFja2luZyBOZXh0Y2xvdWQncyB1c2VyIGZpbGVzLiBUaGVuIGl0IHdpbGwgc3RhcnQgYW4gc3FsZHVtcCBvZiB0aGUgZGF0YWJhc2UKIyAtIEFmdGVyd2FyZHMsIGFsbCAzIHNuYXBzaG90cyB3aWxsIGJlIG1vdW50ZWQvY29waWVkIGluIHRoZSBzYW1lIHBhcmVudCBkaXJlY3RvcnkgYW5kIHVwbG9hZGVkIHRvIGEga29waWEgcmVwb3NpdG9yeQojIyMgPT09PT09PT09PSAjIyMKCiMjIyBDT05GSUdVUkFUSU9OCgojIGZpbGUgZm9yIHdyaXRpbmcgbG9ncy4gQ2FuIGJlIGxlZnQgZW1wdHkgdG8gb25seSBsb2cgdG8gc3Rkb3V0CkxPR19GSUxFPSIvdmFyL2xvZy9uYy1iYWNrdXAubG9nIgoKIyMgTmV4dGNsb3VkIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgY29uZmlnCiMgUGF0aCB0byB0aGUgYnRyZnMgc3Vidm9sdW1lIGNvbnRhaW5pbmcgeW91ciBOQyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5Ck5DX0lOU1RBTExfVk9MVU1FPSIvdmFyL3d3dy9uZXh0Y2xvdWQiCiMgUGF0aCB3aGVyZSB0aGUgKHRlbXBvcmFyeSkgYnRyZnMgc25hcHNob3QgZm9yIHRoZSBOQyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IHNob3VsZCBiZSBjcmVhdGVkCk5DX0lOU1RBTExfU05BUFNIT1RfUEFUSD0iL3Zhci93d3cvLm5jX3NuYXBzaG90IgojIEFkanVzdCB0aGlzIGlmIHRoZSBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IGlzIG5vdCBpbiB0aGUgcm9vdCBvZiB0aGUgYmFja2luZyBmaWxlc3lzdGVtIHZvbHVtZQpOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEg9Ii8iCgojIyBOZXh0Y2xvdWQgZmlsZXMgZGlyZWN0b3J5IGNvbmZpZwpVU0VSX0ZJTEVTX1ZHPSJsdm0tMSIgIyBBZGp1c3QgdG8gbWF0Y2ggdGhlIExWTSB2b2x1bWUgZ3JvdXAgY29udGFpbmluZyB5b3VyIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKVVNFUl9GSUxFU19MVj0ibmMtZmlsZXMiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBsb2dpY2FsIHZvbHVtZSBuYW1lIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5CiMgREIgZHVtcCBjb25maWcKIyBQYXRoIHdoZXJlIHRvIHRlbXBvcmFyaWx5IHN0b3JlIGRhdGFiYXNlIGR1bXAgKHNob3VsZCBoYXZlIGVub3VnaCBmcmVlIHNwYWNlKQpTUUxfRFVNUF9UQVJHRVRfRElSPSIvdmFyL25jLWJhY2t1cC1kYiIKIyBXaGF0ZXZlciBjb21tYW5kIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhbiBzcWxkdW1wIChpbmNsdWRpbmcgcGFyYW1ldGVycyBsaWtlIHVzZXIsIGhvc3QsIGRibmFtZSwgcGFzc3dvcmQgY2ZnIC4uLikKIyAtIElmIHlvdXIgREIgaXMgcnVuIGluc2lkZSBkb2NrZXIsIGp1c3QgcHJlcGVuZCB0aGUgY29tbWFuZCB3aXRoIHdoYXRldmVyIGlzIG5lZWRlZCB0byBydW4gYSBjb21tYW5kIGluc2lkZSB0aGUgY29udGFpbmVyLAojICAgZm9yIGV4YW1wbGU6IFNRTERVTVBfQ01EPShkb2NrZXIgZXhlYyA8Y29udGFpbmVybmFtZT4gcGdfZHVtcCAtVSBwb3N0Z3JlcyAtZCBuYykKIyAtIEZvciBNYXJpYURCICh3aXRoIHRoZSBJbm5vREIgZW5naW5lKSwgbWFrZSBzdXJlIHRvIHVzZSAtLXNpbmdsZS10cmFuc2FjdGlvbiAoYW5kIG9wdGlvbmFsbHkgLS1za2lwLWxvY2stdGFibGVzIHRvIGF2b2lkIHNsb3cgZG93bnMgZm9yIHlvdXIgc3lzdGVtKSB0byBhdm9pZCBzaWRlIGVmZmVjdHMuCiMgICBTZWUgaHR0cHM6Ly9teXNxbGR1bXAuZ3VydS9teXNxbGR1bXAtc2luZ2xlLXRyYW5zYWN0aW9uLWZsYWcuaHRtbCBmb3IgbW9yZSBpbmZvLgojIC0gRm9yIHBvc3RncmVzcWwsIG5vIGFkanVzdGVtbnRzIGFyZSBuZWVkZWQKCiMgQ29uZmlndXJlIHRoZSBjb25uZWN0aW9uIG9wdGlvbnMgZm9yIHlvdXIgZGF0YWJhc2U6CkRCX1VTRVI9Im5leHRjbG91ZCIKREJfTkFNRT0ibmV4dGNsb3VkIgpEQl9QQVNTV09SRD0icGFzc3dvcmQiCkRCX0hPU1Q9IjEyNy4wLjAuMSIKREJfUE9SVD0iNTQzMiIKCgojIHBnX2R1bXAgd2lsbCBiZSBzdXBwbGllZCB3aXRoIHRoZSBjb25uZWN0aW9uIG9wdGlvbnMgYnkgd3JpdGluZyB0aGVtIHRvIH4vLnBncGFzcwpQR1BBU1NfUEFUSD0iJHtIT01FfS8ucGdwYXNzIgppbnN0YWxsIC1tIDA2MDAgPChlY2hvICIke0RCX0hPU1R9OiR7REJfUE9SVH06JHtEQl9OQU1FfToke0RCX1VTRVJ9OiR7REJfUEFTU1dPUkR9IikgIiR7UEdQQVNTX1BBVEh9IgpTUUxEVU1QX0NNRD0ocGdfZHVtcCAiJHtEQl9OQU1FfSIpCgojIFNldHVwIGFueSB0YWdzIGhlcmUgdGhhdCB5b3Ugd2FudCB0byBiZSBhZGRlZCB0byB5b3VyIHlvdXIga29waWEgc25hcHNob3QgKGNvbW1hIHNlcGFyYXRlZCBpbiB0aGUgZm9ybWF0IGxhYmVsOnZhbHVlKQpLT1BJQV9UQUdTPSJqb2I6bmV4dGNsb3VkLWZ1bGwtYmFja3VwLG5jLWZpbGVzOnllcyxuYy1kYjp5ZXMsbmMtbmV4dGNsb3VkOnllcyIKCiMjIyBBRFZBTkNFRC9JTlRFUk5BTCBDT05GSUcgLSBvbmx5IGFkanVzdCBpZiB5b3UgYXJlIHN1cmUgdGhhdCB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZyAjIyMKTkNfSU5TVEFMTF9GU1RZUEU9ImJ0cmZzIgoKVVNFUl9GSUxFU19GU1RZUEU9Imx2bSIKIyBOQyBmaWxlcyBMVk0gc25hcHNob3QgbmFtZQpVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUU9Im5jLWJhY2t1cC1uYy1maWxlcyIKVVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIPSIvcnVuL21udC9uYy1iYWNrdXAtbHZtLW5jLWZpbGVzIgoKCiMgRk9SQ0UgVUlEIGFuZCBHSUQgdGhhdCBhbGwgZmlsZXMgZnJvbSB0aGUgbmV4dGNsb3VkIGluc3RhbGwgZGlyZWN0b3J5IHNob3VsZCBoYXZlIGluIHRoZSBiYWNrdXAgKGUuZy4gdGhhdCBvZiB5b3VyIHd3dy1kYXRhIHVzZXIgYW5kIGdyb3VwKQpOQ19PV05FUl9VSUQ9MzMKTkNfT1dORVJfR0lEPTMzCgojIEZPUkNFIFVJRCBhbmQgR0lEIHRoYXQgYWxsIHVzZXIgZmlsZXMgc2hvdWxkIGhhdmUgaW4gdGhlIGJhY2t1cCAoZS5nLiB0aGF0IG9mIHlvdXIgd3d3LWRhdGEgdXNlciBhbmQgZ3JvdXApClVTRVJfRklMRVNfT1dORVJfVUlEPTMzClVTRVJfRklMRVNfT1dORVJfR0lEPTMzCgojIENvbmZpZ3VyZSBwYXRoIHdoZXJlIGFsbCBwYXJ0cyBvZiB0aGUgYmFja3VwIHdpbGwgYmUgbWFwcGVkIHRvIGJlZm9yZSB0cmFuc2ZlcnJpbmcgd2l0aCBLb3BpYQpCQUNLVVBfUk9PVD0iL3J1bi9uYy1iYWNrdXAiCgoKIyMjIFlvdSB1c3VhbGx5IHNob3VsZCBub3QgbmVlZCB0byB0b3VjaCB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcwoKX1VTRVJfRklMRVNfQklORD0iJHtCQUNLVVBfUk9PVH0vbmNfZmlsZXMiCl9OQ19JTlNUQUxMX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L25leHRjbG91ZCIKX0RCX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L2RiIgoKIyBmaWxlIGZvciBrZWVwaW5nIHRyYWNrIG9mIHJ1bm5pbmcgYmFja3VwIG9wZXJhdGlvbnMKX1BJRF9GSUxFPSIvdmFyL3J1bi9uYy1iYWNrdXAucGlkIgoKCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgbG9nZ2luZyB0byBib3RoIHRoZSBsb2cgZmlsZSBhbmQgc3Rkb3V0CmxvZygpIHsKICBsb2NhbCBtc2cgbWVzc2FnZQoKICBmd2Q9KGVjaG8pCiAgaWYgW1sgLW4gIiRMT0dfRklMRSIgXV0KICB0aGVuCiAgZndkPSh0ZWUgLWEgIiRMT0dfRklMRSIpCiAgZmkKCiAgaWYgW1sgLXogIiR7MTotfSIgXV0KICB0aGVuCiAgd2hpbGUgcmVhZCAtciBtZXNzYWdlCiAgZG8KICBlY2hvICJcJCQkPiQoZGF0ZSAtSXMpPT4iICIke21lc3NhZ2VbQF19IiAyPiYxIHwgIiR7ZndkW0BdfSIKICBkb25lCiAgcmV0dXJuCiAgZmkKCiAgZWNobyAiXCQkJD4kKGRhdGUgLUlzKT0+IiAiJHtAfSIgMj4mMSB8ICIke2Z3ZFtAXX0iCn0KCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgY2xlYW5pbmcgdXAgc25hcHNob3RzLCBwaWQgZmlsZSwgZXRjLgpjbGVhbnVwKCkgewogIHNldCArZXUKICBlY2hvICJDbGVhbnVwLi4uIgogIAogIHJtIC1yZiAiJHtQR1BBU1NfUEFUSH0iCiAgCiAgCiAgdW1vdW50ICIkX0RCX0JJTkQiCiAgdW1vdW50ICIkX05DX0lOU1RBTExfQklORCIKICB1bW91bnQgIiRfVVNFUl9GSUxFU19CSU5EIgoKICBbWyAteiAiJHtVU0VSX0ZJTEVTX01PVU5UfSIgXV0gfHwgdW1vdW50ICIkVVNFUl9GSUxFU19NT1VOVCIKICBbWyAteiAiJHtOQ19JTlNUQUxMX01PVU5UfSIgXV0gfHwgdW1vdW50ICIkTkNfSU5TVEFMTF9NT1VOVCIKCiAgcm0gLXJmICIkU1FMX0RVTVBfVEFSR0VUX0RJUiI7CiAgIyBDbGVhbnVwIE5DIGluc3RhbGwgZGlyIHNuYXBzaG90CiAgCiAgYnRyZnMgc3Vidm9sdW1lIGRlbGV0ZSAiJE5DX0lOU1RBTExfU05BUFNIT1RfUEFUSCIKICAKICAjIENsZWFudXAgTkMgZmlsZXMgc25hcHNob3QKICAKICB1bW91bnQgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfSIKICBybSAtcmYgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfSIKICBsdmNoYW5nZSAtYW4gLUsgIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IgogIGx2cmVtb3ZlICIvZGV2LyR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IgogIAogIAogICMgUmVtb3ZlIFBJRCBmaWxlCiAgcm0gIiRfUElEX0ZJTEUiCiAgZWNobyAiRG9uZS4iCn0KCgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIG1vdW50aW5nIGx2bSBzbmFwc2hvdCB0byBhIG1vdW50cG9pbnQKbW91bnRfc25hcHNob3RfbHZtKCkgewogIGxvY2FsIHNuYXBzaG90IG1vdW50cG9pbnQgb3duZXJzaGlwCiAgc25hcHNob3Q9IiR7MT99IgogIG1vdW50cG9pbnQ9IiR7Mj99IgogIG1rZGlyIC1wICIke21vdW50cG9pbnR9IgogIGx2Y2hhbmdlIC1heSAtSyAiJHtzbmFwc2hvdH0iCiAgbW91bnQgLW8gInJvIiAiL2Rldi8ke3NuYXBzaG90fSIgIiR7bW91bnRwb2ludH0iCn0KCgojIyBEZXRlY3Qgd2hldGhlciBhIGJhY2t1cCBpcyBzdGlsbCBydW5uaW5nIChhbmQgYWJvcnQgaW4gdGhpcyBjYXNlKQojIElmIHRoZSBiYWNrdXAgaGFzIGJlZW4gcnVubmluZyBmb3IgbW9yZSB0aGFuIDEwIGhvdXJzLCBpdCBpcyBhc3N1bWVkIHRvIGJlIHN0dWNrIGFuZCBpdHMgcHJvY2VzcyBraWxsZWQKaWYgW1sgLWYgIiRfUElEX0ZJTEUiIF1dICYmIHBzIC1wICIkKGNhdCAiJF9QSURfRklMRSIpIiA+IC9kZXYvbnVsbAp0aGVuCiAgZWxhcHNlZD0iJChwcyAtbyBldGltZXM9IC1wICIkKGNhdCAiJF9QSURfRklMRSIpIikiCiAgaWYgW1sgIiR7ZWxhcHNlZC8vIC99IiAtZ3QgJCgoMTAgKiAzNjAwKSkgXV0KICB0aGVuCiAgICBsb2cgIkRldGVjdGVkIGJhY2t1cCBwcm9jZXNzIGdvaW5nIGZvciBvdmVyIDEwIGhvdXJzLCBraWxsaW5nIGl0Li4uIgogICAga2lsbCAtOSAiJChjYXQgIiRfUElEX0ZJTEUiKSIKICBlbHNlCiAgICBsb2cgIk9uZ29pbmcgYmFja3VwIHByb2Nlc3MgZGV0ZWN0ZWQuIEFib3J0aW5nLi4uIgogICAgZXhpdCAwCiAgZmkKZmkKCiMgY2xlYW51cCBsZWZ0b3ZlcnMgZnJvbSBsYXN0IHJ1biBpZiBhbnkKY2xlYW51cCA+IC9kZXYvbnVsbCAyPiYxIHx8OgoKIyBTYXZlIGN1cnJlbnQgcHJvY2VzcyBpZCB0byBwaWQgZmlsZQplY2hvICIkJCIgPiAiJF9QSURfRklMRSIKCiMgY2xlYW51cCB3aWxsIGJlIHJ1biBhdCB0aGUgZW5kIG9mIHRoZSBzY3JpcHQgd2hldGhlciBpdCBmYWlscyBvciBzdWNjZWVkcwp0cmFwICdjbGVhbnVwIDI+JjEgfCBsb2cnIEVYSVQKCiMgTWFrZSBzdXJlIGRpcmVjdG9yaWVzIGV4aXN0Cm1rZGlyIC1wICIkX1VTRVJfRklMRVNfQklORCIgIiRfTkNfSU5TVEFMTF9CSU5EIiAiJF9EQl9CSU5EIiAiJFVTRVJfRklMRVNfTU9VTlQiICIkTkNfSU5TVEFMTF9NT1VOVCIgIiRTUUxfRFVNUF9UQVJHRVRfRElSIgoKdGltZXN0YW1wPSIkKGRhdGUgIislWS0lbS0lZCAlSDolTTolUyAlWiIpIgpsb2cgIlN0YXJ0aW5nIE5leHRjbG91ZCBTbmFwc2hvdCBhdCAkdGltZXN0YW1wIgoKIyBTbmFwc2hvdCBkaXNrcwpsb2cgIkNyZWF0ZSBzbmFwc2hvdHMuLi4iCgpidHJmcyBzdWJ2b2x1bWUgc25hcHNob3QgLXIgIiR7TkNfSU5TVEFMTF9WT0xVTUV9IiAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9IiAyPiYxIHwgbG9nCgoKbHZjcmVhdGUgLXMgLS1uYW1lICIke1VTRVJfRklMRVNfU05BUFNIT1RfTkFNRX0iICIke1VTRVJfRklMRVNfVkd9LyR7VVNFUl9GSUxFU19MVn0iIDI+JjEgfCBsb2cKbW91bnRfc25hcHNob3RfbHZtICIke1VTRVJfRklMRVNfVkd9LyR7VVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FfSIgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfSIgMj4mMSB8IGxvZwoKbG9nICJEb25lLiIKCiMgRHVtcCBEQgpsb2cgIkNyZWF0ZSBEQiBkdW1wLi4uIgoiJHtTUUxEVU1QX0NNRFtAXX0iID4gIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0vZGIuc3FsIgpsb2cgIkRvbmUuIgoKIyBCaW5kIG1vdW50IGFsbCBpbmRpdmlkdWFsIHNuYXBzaG90cyBpbnRvIGEgY29tbW9uIHBhcmVudCBkaXJlY3RvcnkKbG9nICJDcmVhdGUgYmluZCBtb3VudHMuLi4iCm1vdW50IC0tYmluZCAtbyAicm8sdWlkPSR7TkNfT1dORVJfVUlEfSxnaWQ9JHtOQ19PV05FUl9HSUR9IiAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9LyR7TkNfSU5TVEFMTF9SRUxBVElWRV9QQVRIIy99IiAgICAgIiR7X05DX0lOU1RBTExfQklORH0iICAgICAyPiYxIHwgbG9nCm1vdW50IC0tYmluZCAtbyBybyx1aWQ9JHtVU0VSX0ZJTEVTX09XTkVSX1VJRH0sZ2lkPSR7VVNFUl9GSUxFU19PV05FUl9HSUR9ICAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9LyR7VVNFUl9GSUxFU19SRUxBVElWRV9QQVRIIy99IiAgICAgIiR7X1VTRVJfRklMRVNfQklORH0iICAgICAyPiYxIHwgbG9nCm1vdW50IC0tYmluZCAtbyBybyx1aWQ9cm9vdCxnaWQ9cm9vdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7X0RCX0JJTkR9IiAgICAgICAgICAgICAyPiYxIHwgbG9nCmxvZyAiRG9uZS4iCgojIENyZWF0ZSB0aGUgZmluYWwgc25hcHNob3Qgd2l0aCBrb3BpYSB1c2luZyB0aGUgZGVmYXVsdCBrb3BpYSByZXBvc2l0b3J5IGNvbmZpZyAoaWYgbmVlZGVkLCB5b3UgY2FuIGNoYW5nZSB0aGUgY29uZmlnIGZpbGUgd2l0aCB0aGUgLS1jb25maWctZmlsZSBwYXJhbWV0ZXIpCmxvZyAiQ3JlYXRlIGtvcGlhIHNuYXBzaG90Li4uIgojIFRlbXBvcmFyeSBsb2cgZmlsZSBhcyBhIHdvcmthcm91bmQgdG8gcGFzcyBrb3BpYSBsb2dzIHRvIG91ciBsb2cgZnVuY3Rpb24Ka29waWFfbG9nZmlsZT0iJChta3RlbXAgLS10bXBkaXIga29waWEtc25hcHNob3QuWFhYWFgubG9nKSIKdGFpbCAtZiAiJGtvcGlhX2xvZ2ZpbGUiICYKa29waWEgc25hcHNob3QgY3JlYXRlIC0tcGFyYWxsZWw9NCAtLXRhZ3MgIiR7S09QSUFfVEFHU30iIC0tc3RhcnQtdGltZT0iJHRpbWVzdGFtcCIgLS1sb2ctZmlsZT0iJGtvcGlhX2xvZ2ZpbGUiIC0tZmlsZS1sb2ctbGV2ZWw9ImluZm8iICIke0JBQ0tVUF9ST09UfSIKY2F0ICIke2tvcGlhX2xvZ2ZpbGUlLmxvZ30iKi5sb2cgfCBsb2cgPiAvZGV2L251bGwKbG9nICJEb25lLiI=&#x27;), &#x27;nextcloud-backup.sh&#x27;)&quot;&gt;
          Download
        &lt;&#x2F;sl-button&gt;
      &lt;&#x2F;context-condition&gt;
      
      
      &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;mariadb&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
        &lt;sl-button onclick=&quot;downloadAsFile(content=atob(&#x27;IyEvYmluL2Jhc2gKCnNldCAtZXVvIHBpcGVmYWlsCgojIyMgPT09PT09PT09PSAjIyMKIyBQcm9jZWR1cmUKIyAtIFRoZSBzY3JpcHQgd2lsbCBjcmVhdGUgc25hcHNob3RzIG9mIHRoZSBsdm0gcm9vdCB2b2x1bWUgYW5kIHRoZSBidHJmcyBzdWJ2b2x1bWUgYmFja2luZyBOZXh0Y2xvdWQncyB1c2VyIGZpbGVzLiBUaGVuIGl0IHdpbGwgc3RhcnQgYW4gc3FsZHVtcCBvZiB0aGUgZGF0YWJhc2UKIyAtIEFmdGVyd2FyZHMsIGFsbCAzIHNuYXBzaG90cyB3aWxsIGJlIG1vdW50ZWQvY29waWVkIGluIHRoZSBzYW1lIHBhcmVudCBkaXJlY3RvcnkgYW5kIHVwbG9hZGVkIHRvIGEga29waWEgcmVwb3NpdG9yeQojIyMgPT09PT09PT09PSAjIyMKCiMjIyBDT05GSUdVUkFUSU9OCgojIGZpbGUgZm9yIHdyaXRpbmcgbG9ncy4gQ2FuIGJlIGxlZnQgZW1wdHkgdG8gb25seSBsb2cgdG8gc3Rkb3V0CkxPR19GSUxFPSIvdmFyL2xvZy9uYy1iYWNrdXAubG9nIgoKIyMgTmV4dGNsb3VkIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgY29uZmlnCk5DX0lOU1RBTExfVkc9Imx2bS0xIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgTFZNIHZvbHVtZSBncm91cCBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQpOQ19JTlNUQUxMX1ZPTFVNRT0ibmV4dGNsb3VkIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgbG9naWNhbCB2b2x1bWUgbmFtZSBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQojIEFkanVzdCB0aGlzIGlmIHRoZSBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IGlzIG5vdCBpbiB0aGUgcm9vdCBvZiB0aGUgYmFja2luZyBmaWxlc3lzdGVtIHZvbHVtZQpOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEg9Ii8iCgojIyBOZXh0Y2xvdWQgZmlsZXMgZGlyZWN0b3J5IGNvbmZpZwojIFBhdGggdG8gdGhlIGJ0cmZzIHN1YnZvbHVtZSBjb250YWluaW5nIHlvdXIgTkMgZmlsZXMgZGlyZWN0b3J5ClVTRVJfRklMRVNfVk9MVU1FPSIvbW50L2RhdGEvbmNkYXRhIgojIFBhdGggd2hlcmUgdGhlICh0ZW1wb3JhcnkpIGJ0cmZzIHNuYXBzaG90IGZvciB0aGUgTkMgZmlsZXMgZGlyZWN0b3J5IHNob3VsZCBiZSBjcmVhdGVkClVTRVJfRklMRVNfU05BUFNIT1RfUEFUSD0iL21udC9kYXRhLy5uY19maWxlc19zbmFwc2hvdCIKIyBEQiBkdW1wIGNvbmZpZwojIFBhdGggd2hlcmUgdG8gdGVtcG9yYXJpbHkgc3RvcmUgZGF0YWJhc2UgZHVtcCAoc2hvdWxkIGhhdmUgZW5vdWdoIGZyZWUgc3BhY2UpClNRTF9EVU1QX1RBUkdFVF9ESVI9Ii92YXIvbmMtYmFja3VwLWRiIgojIFdoYXRldmVyIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuIHNxbGR1bXAgKGluY2x1ZGluZyBwYXJhbWV0ZXJzIGxpa2UgdXNlciwgaG9zdCwgZGJuYW1lLCBwYXNzd29yZCBjZmcgLi4uKQojIC0gSWYgeW91ciBEQiBpcyBydW4gaW5zaWRlIGRvY2tlciwganVzdCBwcmVwZW5kIHRoZSBjb21tYW5kIHdpdGggd2hhdGV2ZXIgaXMgbmVlZGVkIHRvIHJ1biBhIGNvbW1hbmQgaW5zaWRlIHRoZSBjb250YWluZXIsCiMgICBmb3IgZXhhbXBsZTogU1FMRFVNUF9DTUQ9KGRvY2tlciBleGVjIDxjb250YWluZXJuYW1lPiBwZ19kdW1wIC1VIHBvc3RncmVzIC1kIG5jKQojIC0gRm9yIE1hcmlhREIgKHdpdGggdGhlIElubm9EQiBlbmdpbmUpLCBtYWtlIHN1cmUgdG8gdXNlIC0tc2luZ2xlLXRyYW5zYWN0aW9uIChhbmQgb3B0aW9uYWxseSAtLXNraXAtbG9jay10YWJsZXMgdG8gYXZvaWQgc2xvdyBkb3ducyBmb3IgeW91ciBzeXN0ZW0pIHRvIGF2b2lkIHNpZGUgZWZmZWN0cy4KIyAgIFNlZSBodHRwczovL215c3FsZHVtcC5ndXJ1L215c3FsZHVtcC1zaW5nbGUtdHJhbnNhY3Rpb24tZmxhZy5odG1sIGZvciBtb3JlIGluZm8uCiMgLSBGb3IgcG9zdGdyZXNxbCwgbm8gYWRqdXN0ZW1udHMgYXJlIG5lZWRlZAoKIyBDb25maWd1cmUgdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBmb3IgeW91ciBkYXRhYmFzZToKREJfVVNFUj0ibmV4dGNsb3VkIgpEQl9OQU1FPSJuZXh0Y2xvdWQiCkRCX1BBU1NXT1JEPSJwYXNzd29yZCIKREJfSE9TVD0iMTI3LjAuMC4xIgpEQl9QT1JUPSI1NDMyIgoKIyBteXNxbGR1bXAgd2lsbCBiZSBzdXBwbGllZCB3aXRoIHRoZSBkYiBjcmVkZW50aWFscyBieSB3cml0aW5nIHRoZW0gdG8gfi8ubXkuY25mCk1ZQ05GX1BBVEg9IiRIT01FLy5teS5jbmYiCmluc3RhbGwgLW0gMDYwMCA8KGVjaG8gLWUgIltteXNxbGR1bXBdXG51c2VyPSR7REJfVVNFUn1cbnBhc3N3b3JkPSR7REJfUEFTU1dPUkR9IikgIiR7TVlDTkZfUEFUSH0iClNRTERVTVBfQ01EPShteXNxbGR1bXAgLS1ob3N0PSIke0RCX0hPU1R9IiAtLXBvcnQ9IiR7REJfUE9SVH0iIC0tc2luZ2xlLXRyYW5zYWN0aW9uIC0tc2tpcC1sb2NrLXRhYmxlcyAiJHtEQl9OQU1FfSIpCgoKIyBTZXR1cCBhbnkgdGFncyBoZXJlIHRoYXQgeW91IHdhbnQgdG8gYmUgYWRkZWQgdG8geW91ciB5b3VyIGtvcGlhIHNuYXBzaG90IChjb21tYSBzZXBhcmF0ZWQgaW4gdGhlIGZvcm1hdCBsYWJlbDp2YWx1ZSkKS09QSUFfVEFHUz0iam9iOm5leHRjbG91ZC1mdWxsLWJhY2t1cCxuYy1maWxlczp5ZXMsbmMtZGI6eWVzLG5jLW5leHRjbG91ZDp5ZXMiCgojIyMgQURWQU5DRUQvSU5URVJOQUwgQ09ORklHIC0gb25seSBhZGp1c3QgaWYgeW91IGFyZSBzdXJlIHRoYXQgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcgIyMjCk5DX0lOU1RBTExfRlNUWVBFPSJsdm0iCiMgTkMgaW5zdGFsbCBMVk0gc25hcHNob3QgbmFtZQpOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUU9Im5jLWJhY2t1cC1uZXh0Y2xvdWQiCk5DX0lOU1RBTExfU05BUFNIT1RfUEFUSD0iL3J1bi9tbnQvbmMtYmFja3VwLWx2bS1uZXh0Y2xvdWQiCgpVU0VSX0ZJTEVTX0ZTVFlQRT0iYnRyZnMiCgoKIyBGT1JDRSBVSUQgYW5kIEdJRCB0aGF0IGFsbCBmaWxlcyBmcm9tIHRoZSBuZXh0Y2xvdWQgaW5zdGFsbCBkaXJlY3Rvcnkgc2hvdWxkIGhhdmUgaW4gdGhlIGJhY2t1cCAoZS5nLiB0aGF0IG9mIHlvdXIgd3d3LWRhdGEgdXNlciBhbmQgZ3JvdXApCk5DX09XTkVSX1VJRD0zMwpOQ19PV05FUl9HSUQ9MzMKCiMgRk9SQ0UgVUlEIGFuZCBHSUQgdGhhdCBhbGwgdXNlciBmaWxlcyBzaG91bGQgaGF2ZSBpbiB0aGUgYmFja3VwIChlLmcuIHRoYXQgb2YgeW91ciB3d3ctZGF0YSB1c2VyIGFuZCBncm91cCkKVVNFUl9GSUxFU19PV05FUl9VSUQ9MzMKVVNFUl9GSUxFU19PV05FUl9HSUQ9MzMKCiMgQ29uZmlndXJlIHBhdGggd2hlcmUgYWxsIHBhcnRzIG9mIHRoZSBiYWNrdXAgd2lsbCBiZSBtYXBwZWQgdG8gYmVmb3JlIHRyYW5zZmVycmluZyB3aXRoIEtvcGlhCkJBQ0tVUF9ST09UPSIvcnVuL25jLWJhY2t1cCIKCgojIyMgWW91IHVzdWFsbHkgc2hvdWxkIG5vdCBuZWVkIHRvIHRvdWNoIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzCgpfVVNFUl9GSUxFU19CSU5EPSIke0JBQ0tVUF9ST09UfS9uY19maWxlcyIKX05DX0lOU1RBTExfQklORD0iJHtCQUNLVVBfUk9PVH0vbmV4dGNsb3VkIgpfREJfQklORD0iJHtCQUNLVVBfUk9PVH0vZGIiCgojIGZpbGUgZm9yIGtlZXBpbmcgdHJhY2sgb2YgcnVubmluZyBiYWNrdXAgb3BlcmF0aW9ucwpfUElEX0ZJTEU9Ii92YXIvcnVuL25jLWJhY2t1cC5waWQiCgoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBsb2dnaW5nIHRvIGJvdGggdGhlIGxvZyBmaWxlIGFuZCBzdGRvdXQKbG9nKCkgewogIGxvY2FsIG1zZyBtZXNzYWdlCgogIGZ3ZD0oZWNobykKICBpZiBbWyAtbiAiJExPR19GSUxFIiBdXQogIHRoZW4KICBmd2Q9KHRlZSAtYSAiJExPR19GSUxFIikKICBmaQoKICBpZiBbWyAteiAiJHsxOi19IiBdXQogIHRoZW4KICB3aGlsZSByZWFkIC1yIG1lc3NhZ2UKICBkbwogIGVjaG8gIlwkJCQ+JChkYXRlIC1Jcyk9PiIgIiR7bWVzc2FnZVtAXX0iIDI+JjEgfCAiJHtmd2RbQF19IgogIGRvbmUKICByZXR1cm4KICBmaQoKICBlY2hvICJcJCQkPiQoZGF0ZSAtSXMpPT4iICIke0B9IiAyPiYxIHwgIiR7ZndkW0BdfSIKfQoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjbGVhbmluZyB1cCBzbmFwc2hvdHMsIHBpZCBmaWxlLCBldGMuCmNsZWFudXAoKSB7CiAgc2V0ICtldQogIGVjaG8gIkNsZWFudXAuLi4iCiAgCiAgcm0gLXJmICIke1BHUEFTU19QQVRIfSIKICAKICAKICB1bW91bnQgIiRfREJfQklORCIKICB1bW91bnQgIiRfTkNfSU5TVEFMTF9CSU5EIgogIHVtb3VudCAiJF9VU0VSX0ZJTEVTX0JJTkQiCgogIFtbIC16ICIke1VTRVJfRklMRVNfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiRVU0VSX0ZJTEVTX01PVU5UIgogIFtbIC16ICIke05DX0lOU1RBTExfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiROQ19JTlNUQUxMX01PVU5UIgoKICBybSAtcmYgIiRTUUxfRFVNUF9UQVJHRVRfRElSIjsKICAjIENsZWFudXAgTkMgaW5zdGFsbCBkaXIgc25hcHNob3QKICAKICB1bW91bnQgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfSIKICBybSAtcmYgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfSIKICBsdmNoYW5nZSAtYW4gLUsgIiR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUV9IgogIGx2cmVtb3ZlICIvZGV2LyR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUV9IgogIAogICMgQ2xlYW51cCBOQyBmaWxlcyBzbmFwc2hvdAogIAogIGJ0cmZzIHN1YnZvbHVtZSBkZWxldGUgIiRVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEgiCiAgCiAgCiAgIyBSZW1vdmUgUElEIGZpbGUKICBybSAiJF9QSURfRklMRSIKICBlY2hvICJEb25lLiIKfQoKCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgbW91bnRpbmcgbHZtIHNuYXBzaG90IHRvIGEgbW91bnRwb2ludAptb3VudF9zbmFwc2hvdF9sdm0oKSB7CiAgbG9jYWwgc25hcHNob3QgbW91bnRwb2ludCBvd25lcnNoaXAKICBzbmFwc2hvdD0iJHsxP30iCiAgbW91bnRwb2ludD0iJHsyP30iCiAgbWtkaXIgLXAgIiR7bW91bnRwb2ludH0iCiAgbHZjaGFuZ2UgLWF5IC1LICIke3NuYXBzaG90fSIKICBtb3VudCAtbyAicm8iICIvZGV2LyR7c25hcHNob3R9IiAiJHttb3VudHBvaW50fSIKfQoKCiMjIERldGVjdCB3aGV0aGVyIGEgYmFja3VwIGlzIHN0aWxsIHJ1bm5pbmcgKGFuZCBhYm9ydCBpbiB0aGlzIGNhc2UpCiMgSWYgdGhlIGJhY2t1cCBoYXMgYmVlbiBydW5uaW5nIGZvciBtb3JlIHRoYW4gMTAgaG91cnMsIGl0IGlzIGFzc3VtZWQgdG8gYmUgc3R1Y2sgYW5kIGl0cyBwcm9jZXNzIGtpbGxlZAppZiBbWyAtZiAiJF9QSURfRklMRSIgXV0gJiYgcHMgLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiID4gL2Rldi9udWxsCnRoZW4KICBlbGFwc2VkPSIkKHBzIC1vIGV0aW1lcz0gLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiKSIKICBpZiBbWyAiJHtlbGFwc2VkLy8gL30iIC1ndCAkKCgxMCAqIDM2MDApKSBdXQogIHRoZW4KICAgIGxvZyAiRGV0ZWN0ZWQgYmFja3VwIHByb2Nlc3MgZ29pbmcgZm9yIG92ZXIgMTAgaG91cnMsIGtpbGxpbmcgaXQuLi4iCiAgICBraWxsIC05ICIkKGNhdCAiJF9QSURfRklMRSIpIgogIGVsc2UKICAgIGxvZyAiT25nb2luZyBiYWNrdXAgcHJvY2VzcyBkZXRlY3RlZC4gQWJvcnRpbmcuLi4iCiAgICBleGl0IDAKICBmaQpmaQoKIyBjbGVhbnVwIGxlZnRvdmVycyBmcm9tIGxhc3QgcnVuIGlmIGFueQpjbGVhbnVwID4gL2Rldi9udWxsIDI+JjEgfHw6CgojIFNhdmUgY3VycmVudCBwcm9jZXNzIGlkIHRvIHBpZCBmaWxlCmVjaG8gIiQkIiA+ICIkX1BJRF9GSUxFIgoKIyBjbGVhbnVwIHdpbGwgYmUgcnVuIGF0IHRoZSBlbmQgb2YgdGhlIHNjcmlwdCB3aGV0aGVyIGl0IGZhaWxzIG9yIHN1Y2NlZWRzCnRyYXAgJ2NsZWFudXAgMj4mMSB8IGxvZycgRVhJVAoKIyBNYWtlIHN1cmUgZGlyZWN0b3JpZXMgZXhpc3QKbWtkaXIgLXAgIiRfVVNFUl9GSUxFU19CSU5EIiAiJF9OQ19JTlNUQUxMX0JJTkQiICIkX0RCX0JJTkQiICIkVVNFUl9GSUxFU19NT1VOVCIgIiROQ19JTlNUQUxMX01PVU5UIiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiCgp0aW1lc3RhbXA9IiQoZGF0ZSAiKyVZLSVtLSVkICVIOiVNOiVTICVaIikiCmxvZyAiU3RhcnRpbmcgTmV4dGNsb3VkIFNuYXBzaG90IGF0ICR0aW1lc3RhbXAiCgojIFNuYXBzaG90IGRpc2tzCmxvZyAiQ3JlYXRlIHNuYXBzaG90cy4uLiIKCmx2Y3JlYXRlIC1zIC0tbmFtZSAiJE5DX0lOU1RBTExfU05BUFNIT1RfTkFNRSIgIiR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1ZPTFVNRX0iIDI+JjEgfCBsb2cKbW91bnRfc25hcHNob3RfbHZtICIke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FfSIgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfSIgMj4mMSB8IGxvZwoKCmJ0cmZzIHN1YnZvbHVtZSBzbmFwc2hvdCAtciAiJHtVU0VSX0ZJTEVTX1ZPTFVNRX0iICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCmxvZyAiRG9uZS4iCgojIER1bXAgREIKbG9nICJDcmVhdGUgREIgZHVtcC4uLiIKIiR7U1FMRFVNUF9DTURbQF19IiA+ICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9L2RiLnNxbCIKbG9nICJEb25lLiIKCiMgQmluZCBtb3VudCBhbGwgaW5kaXZpZHVhbCBzbmFwc2hvdHMgaW50byBhIGNvbW1vbiBwYXJlbnQgZGlyZWN0b3J5CmxvZyAiQ3JlYXRlIGJpbmQgbW91bnRzLi4uIgptb3VudCAtLWJpbmQgLW8gInJvLHVpZD0ke05DX09XTkVSX1VJRH0sZ2lkPSR7TkNfT1dORVJfR0lEfSIgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfS8ke05DX0lOU1RBTExfUkVMQVRJVkVfUEFUSCMvfSIgICAgICIke19OQ19JTlNUQUxMX0JJTkR9IiAgICAgMj4mMSB8IGxvZwptb3VudCAtLWJpbmQgLW8gcm8sdWlkPSR7VVNFUl9GSUxFU19PV05FUl9VSUR9LGdpZD0ke1VTRVJfRklMRVNfT1dORVJfR0lEfSAgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfS8ke1VTRVJfRklMRVNfUkVMQVRJVkVfUEFUSCMvfSIgICAgICIke19VU0VSX0ZJTEVTX0JJTkR9IiAgICAgMj4mMSB8IGxvZwptb3VudCAtLWJpbmQgLW8gcm8sdWlkPXJvb3QsZ2lkPXJvb3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke19EQl9CSU5EfSIgICAgICAgICAgICAgMj4mMSB8IGxvZwpsb2cgIkRvbmUuIgoKIyBDcmVhdGUgdGhlIGZpbmFsIHNuYXBzaG90IHdpdGgga29waWEgdXNpbmcgdGhlIGRlZmF1bHQga29waWEgcmVwb3NpdG9yeSBjb25maWcgKGlmIG5lZWRlZCwgeW91IGNhbiBjaGFuZ2UgdGhlIGNvbmZpZyBmaWxlIHdpdGggdGhlIC0tY29uZmlnLWZpbGUgcGFyYW1ldGVyKQpsb2cgIkNyZWF0ZSBrb3BpYSBzbmFwc2hvdC4uLiIKIyBUZW1wb3JhcnkgbG9nIGZpbGUgYXMgYSB3b3JrYXJvdW5kIHRvIHBhc3Mga29waWEgbG9ncyB0byBvdXIgbG9nIGZ1bmN0aW9uCmtvcGlhX2xvZ2ZpbGU9IiQobWt0ZW1wIC0tdG1wZGlyIGtvcGlhLXNuYXBzaG90LlhYWFhYLmxvZykiCnRhaWwgLWYgIiRrb3BpYV9sb2dmaWxlIiAmCmtvcGlhIHNuYXBzaG90IGNyZWF0ZSAtLXBhcmFsbGVsPTQgLS10YWdzICIke0tPUElBX1RBR1N9IiAtLXN0YXJ0LXRpbWU9IiR0aW1lc3RhbXAiIC0tbG9nLWZpbGU9IiRrb3BpYV9sb2dmaWxlIiAtLWZpbGUtbG9nLWxldmVsPSJpbmZvIiAiJHtCQUNLVVBfUk9PVH0iCmNhdCAiJHtrb3BpYV9sb2dmaWxlJS5sb2d9IioubG9nIHwgbG9nID4gL2Rldi9udWxsCmxvZyAiRG9uZS4i&#x27;), &#x27;nextcloud-backup.sh&#x27;)&quot;&gt;
          Download
        &lt;&#x2F;sl-button&gt;
      &lt;&#x2F;context-condition&gt;
      
      
      &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;postgres&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
        &lt;sl-button onclick=&quot;downloadAsFile(content=atob(&#x27;IyEvYmluL2Jhc2gKCnNldCAtZXVvIHBpcGVmYWlsCgojIyMgPT09PT09PT09PSAjIyMKIyBQcm9jZWR1cmUKIyAtIFRoZSBzY3JpcHQgd2lsbCBjcmVhdGUgc25hcHNob3RzIG9mIHRoZSBsdm0gcm9vdCB2b2x1bWUgYW5kIHRoZSBidHJmcyBzdWJ2b2x1bWUgYmFja2luZyBOZXh0Y2xvdWQncyB1c2VyIGZpbGVzLiBUaGVuIGl0IHdpbGwgc3RhcnQgYW4gc3FsZHVtcCBvZiB0aGUgZGF0YWJhc2UKIyAtIEFmdGVyd2FyZHMsIGFsbCAzIHNuYXBzaG90cyB3aWxsIGJlIG1vdW50ZWQvY29waWVkIGluIHRoZSBzYW1lIHBhcmVudCBkaXJlY3RvcnkgYW5kIHVwbG9hZGVkIHRvIGEga29waWEgcmVwb3NpdG9yeQojIyMgPT09PT09PT09PSAjIyMKCiMjIyBDT05GSUdVUkFUSU9OCgojIGZpbGUgZm9yIHdyaXRpbmcgbG9ncy4gQ2FuIGJlIGxlZnQgZW1wdHkgdG8gb25seSBsb2cgdG8gc3Rkb3V0CkxPR19GSUxFPSIvdmFyL2xvZy9uYy1iYWNrdXAubG9nIgoKIyMgTmV4dGNsb3VkIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgY29uZmlnCk5DX0lOU1RBTExfVkc9Imx2bS0xIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgTFZNIHZvbHVtZSBncm91cCBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQpOQ19JTlNUQUxMX1ZPTFVNRT0ibmV4dGNsb3VkIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgbG9naWNhbCB2b2x1bWUgbmFtZSBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQojIEFkanVzdCB0aGlzIGlmIHRoZSBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IGlzIG5vdCBpbiB0aGUgcm9vdCBvZiB0aGUgYmFja2luZyBmaWxlc3lzdGVtIHZvbHVtZQpOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEg9Ii8iCgojIyBOZXh0Y2xvdWQgZmlsZXMgZGlyZWN0b3J5IGNvbmZpZwojIFBhdGggdG8gdGhlIGJ0cmZzIHN1YnZvbHVtZSBjb250YWluaW5nIHlvdXIgTkMgZmlsZXMgZGlyZWN0b3J5ClVTRVJfRklMRVNfVk9MVU1FPSIvbW50L2RhdGEvbmNkYXRhIgojIFBhdGggd2hlcmUgdGhlICh0ZW1wb3JhcnkpIGJ0cmZzIHNuYXBzaG90IGZvciB0aGUgTkMgZmlsZXMgZGlyZWN0b3J5IHNob3VsZCBiZSBjcmVhdGVkClVTRVJfRklMRVNfU05BUFNIT1RfUEFUSD0iL21udC9kYXRhLy5uY19maWxlc19zbmFwc2hvdCIKIyBEQiBkdW1wIGNvbmZpZwojIFBhdGggd2hlcmUgdG8gdGVtcG9yYXJpbHkgc3RvcmUgZGF0YWJhc2UgZHVtcCAoc2hvdWxkIGhhdmUgZW5vdWdoIGZyZWUgc3BhY2UpClNRTF9EVU1QX1RBUkdFVF9ESVI9Ii92YXIvbmMtYmFja3VwLWRiIgojIFdoYXRldmVyIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuIHNxbGR1bXAgKGluY2x1ZGluZyBwYXJhbWV0ZXJzIGxpa2UgdXNlciwgaG9zdCwgZGJuYW1lLCBwYXNzd29yZCBjZmcgLi4uKQojIC0gSWYgeW91ciBEQiBpcyBydW4gaW5zaWRlIGRvY2tlciwganVzdCBwcmVwZW5kIHRoZSBjb21tYW5kIHdpdGggd2hhdGV2ZXIgaXMgbmVlZGVkIHRvIHJ1biBhIGNvbW1hbmQgaW5zaWRlIHRoZSBjb250YWluZXIsCiMgICBmb3IgZXhhbXBsZTogU1FMRFVNUF9DTUQ9KGRvY2tlciBleGVjIDxjb250YWluZXJuYW1lPiBwZ19kdW1wIC1VIHBvc3RncmVzIC1kIG5jKQojIC0gRm9yIE1hcmlhREIgKHdpdGggdGhlIElubm9EQiBlbmdpbmUpLCBtYWtlIHN1cmUgdG8gdXNlIC0tc2luZ2xlLXRyYW5zYWN0aW9uIChhbmQgb3B0aW9uYWxseSAtLXNraXAtbG9jay10YWJsZXMgdG8gYXZvaWQgc2xvdyBkb3ducyBmb3IgeW91ciBzeXN0ZW0pIHRvIGF2b2lkIHNpZGUgZWZmZWN0cy4KIyAgIFNlZSBodHRwczovL215c3FsZHVtcC5ndXJ1L215c3FsZHVtcC1zaW5nbGUtdHJhbnNhY3Rpb24tZmxhZy5odG1sIGZvciBtb3JlIGluZm8uCiMgLSBGb3IgcG9zdGdyZXNxbCwgbm8gYWRqdXN0ZW1udHMgYXJlIG5lZWRlZAoKIyBDb25maWd1cmUgdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBmb3IgeW91ciBkYXRhYmFzZToKREJfVVNFUj0ibmV4dGNsb3VkIgpEQl9OQU1FPSJuZXh0Y2xvdWQiCkRCX1BBU1NXT1JEPSJwYXNzd29yZCIKREJfSE9TVD0iMTI3LjAuMC4xIgpEQl9QT1JUPSI1NDMyIgoKCiMgcGdfZHVtcCB3aWxsIGJlIHN1cHBsaWVkIHdpdGggdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBieSB3cml0aW5nIHRoZW0gdG8gfi8ucGdwYXNzClBHUEFTU19QQVRIPSIke0hPTUV9Ly5wZ3Bhc3MiCmluc3RhbGwgLW0gMDYwMCA8KGVjaG8gIiR7REJfSE9TVH06JHtEQl9QT1JUfToke0RCX05BTUV9OiR7REJfVVNFUn06JHtEQl9QQVNTV09SRH0iKSAiJHtQR1BBU1NfUEFUSH0iClNRTERVTVBfQ01EPShwZ19kdW1wICIke0RCX05BTUV9IikKCiMgU2V0dXAgYW55IHRhZ3MgaGVyZSB0aGF0IHlvdSB3YW50IHRvIGJlIGFkZGVkIHRvIHlvdXIgeW91ciBrb3BpYSBzbmFwc2hvdCAoY29tbWEgc2VwYXJhdGVkIGluIHRoZSBmb3JtYXQgbGFiZWw6dmFsdWUpCktPUElBX1RBR1M9ImpvYjpuZXh0Y2xvdWQtZnVsbC1iYWNrdXAsbmMtZmlsZXM6eWVzLG5jLWRiOnllcyxuYy1uZXh0Y2xvdWQ6eWVzIgoKIyMjIEFEVkFOQ0VEL0lOVEVSTkFMIENPTkZJRyAtIG9ubHkgYWRqdXN0IGlmIHlvdSBhcmUgc3VyZSB0aGF0IHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nICMjIwpOQ19JTlNUQUxMX0ZTVFlQRT0ibHZtIgojIE5DIGluc3RhbGwgTFZNIHNuYXBzaG90IG5hbWUKTkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FPSJuYy1iYWNrdXAtbmV4dGNsb3VkIgpOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEg9Ii9ydW4vbW50L25jLWJhY2t1cC1sdm0tbmV4dGNsb3VkIgoKVVNFUl9GSUxFU19GU1RZUEU9ImJ0cmZzIgoKCiMgRk9SQ0UgVUlEIGFuZCBHSUQgdGhhdCBhbGwgZmlsZXMgZnJvbSB0aGUgbmV4dGNsb3VkIGluc3RhbGwgZGlyZWN0b3J5IHNob3VsZCBoYXZlIGluIHRoZSBiYWNrdXAgKGUuZy4gdGhhdCBvZiB5b3VyIHd3dy1kYXRhIHVzZXIgYW5kIGdyb3VwKQpOQ19PV05FUl9VSUQ9MzMKTkNfT1dORVJfR0lEPTMzCgojIEZPUkNFIFVJRCBhbmQgR0lEIHRoYXQgYWxsIHVzZXIgZmlsZXMgc2hvdWxkIGhhdmUgaW4gdGhlIGJhY2t1cCAoZS5nLiB0aGF0IG9mIHlvdXIgd3d3LWRhdGEgdXNlciBhbmQgZ3JvdXApClVTRVJfRklMRVNfT1dORVJfVUlEPTMzClVTRVJfRklMRVNfT1dORVJfR0lEPTMzCgojIENvbmZpZ3VyZSBwYXRoIHdoZXJlIGFsbCBwYXJ0cyBvZiB0aGUgYmFja3VwIHdpbGwgYmUgbWFwcGVkIHRvIGJlZm9yZSB0cmFuc2ZlcnJpbmcgd2l0aCBLb3BpYQpCQUNLVVBfUk9PVD0iL3J1bi9uYy1iYWNrdXAiCgoKIyMjIFlvdSB1c3VhbGx5IHNob3VsZCBub3QgbmVlZCB0byB0b3VjaCB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcwoKX1VTRVJfRklMRVNfQklORD0iJHtCQUNLVVBfUk9PVH0vbmNfZmlsZXMiCl9OQ19JTlNUQUxMX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L25leHRjbG91ZCIKX0RCX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L2RiIgoKIyBmaWxlIGZvciBrZWVwaW5nIHRyYWNrIG9mIHJ1bm5pbmcgYmFja3VwIG9wZXJhdGlvbnMKX1BJRF9GSUxFPSIvdmFyL3J1bi9uYy1iYWNrdXAucGlkIgoKCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgbG9nZ2luZyB0byBib3RoIHRoZSBsb2cgZmlsZSBhbmQgc3Rkb3V0CmxvZygpIHsKICBsb2NhbCBtc2cgbWVzc2FnZQoKICBmd2Q9KGVjaG8pCiAgaWYgW1sgLW4gIiRMT0dfRklMRSIgXV0KICB0aGVuCiAgZndkPSh0ZWUgLWEgIiRMT0dfRklMRSIpCiAgZmkKCiAgaWYgW1sgLXogIiR7MTotfSIgXV0KICB0aGVuCiAgd2hpbGUgcmVhZCAtciBtZXNzYWdlCiAgZG8KICBlY2hvICJcJCQkPiQoZGF0ZSAtSXMpPT4iICIke21lc3NhZ2VbQF19IiAyPiYxIHwgIiR7ZndkW0BdfSIKICBkb25lCiAgcmV0dXJuCiAgZmkKCiAgZWNobyAiXCQkJD4kKGRhdGUgLUlzKT0+IiAiJHtAfSIgMj4mMSB8ICIke2Z3ZFtAXX0iCn0KCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgY2xlYW5pbmcgdXAgc25hcHNob3RzLCBwaWQgZmlsZSwgZXRjLgpjbGVhbnVwKCkgewogIHNldCArZXUKICBlY2hvICJDbGVhbnVwLi4uIgogIAogIHJtIC1yZiAiJHtQR1BBU1NfUEFUSH0iCiAgCiAgCiAgdW1vdW50ICIkX0RCX0JJTkQiCiAgdW1vdW50ICIkX05DX0lOU1RBTExfQklORCIKICB1bW91bnQgIiRfVVNFUl9GSUxFU19CSU5EIgoKICBbWyAteiAiJHtVU0VSX0ZJTEVTX01PVU5UfSIgXV0gfHwgdW1vdW50ICIkVVNFUl9GSUxFU19NT1VOVCIKICBbWyAteiAiJHtOQ19JTlNUQUxMX01PVU5UfSIgXV0gfHwgdW1vdW50ICIkTkNfSU5TVEFMTF9NT1VOVCIKCiAgcm0gLXJmICIkU1FMX0RVTVBfVEFSR0VUX0RJUiI7CiAgIyBDbGVhbnVwIE5DIGluc3RhbGwgZGlyIHNuYXBzaG90CiAgCiAgdW1vdW50ICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iCiAgcm0gLXJmICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iCiAgbHZjaGFuZ2UgLWFuIC1LICIke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FfSIKICBsdnJlbW92ZSAiL2Rldi8ke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FfSIKICAKICAjIENsZWFudXAgTkMgZmlsZXMgc25hcHNob3QKICAKICBidHJmcyBzdWJ2b2x1bWUgZGVsZXRlICIkVVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIIgogIAogIAogICMgUmVtb3ZlIFBJRCBmaWxlCiAgcm0gIiRfUElEX0ZJTEUiCiAgZWNobyAiRG9uZS4iCn0KCgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIG1vdW50aW5nIGx2bSBzbmFwc2hvdCB0byBhIG1vdW50cG9pbnQKbW91bnRfc25hcHNob3RfbHZtKCkgewogIGxvY2FsIHNuYXBzaG90IG1vdW50cG9pbnQgb3duZXJzaGlwCiAgc25hcHNob3Q9IiR7MT99IgogIG1vdW50cG9pbnQ9IiR7Mj99IgogIG1rZGlyIC1wICIke21vdW50cG9pbnR9IgogIGx2Y2hhbmdlIC1heSAtSyAiJHtzbmFwc2hvdH0iCiAgbW91bnQgLW8gInJvIiAiL2Rldi8ke3NuYXBzaG90fSIgIiR7bW91bnRwb2ludH0iCn0KCgojIyBEZXRlY3Qgd2hldGhlciBhIGJhY2t1cCBpcyBzdGlsbCBydW5uaW5nIChhbmQgYWJvcnQgaW4gdGhpcyBjYXNlKQojIElmIHRoZSBiYWNrdXAgaGFzIGJlZW4gcnVubmluZyBmb3IgbW9yZSB0aGFuIDEwIGhvdXJzLCBpdCBpcyBhc3N1bWVkIHRvIGJlIHN0dWNrIGFuZCBpdHMgcHJvY2VzcyBraWxsZWQKaWYgW1sgLWYgIiRfUElEX0ZJTEUiIF1dICYmIHBzIC1wICIkKGNhdCAiJF9QSURfRklMRSIpIiA+IC9kZXYvbnVsbAp0aGVuCiAgZWxhcHNlZD0iJChwcyAtbyBldGltZXM9IC1wICIkKGNhdCAiJF9QSURfRklMRSIpIikiCiAgaWYgW1sgIiR7ZWxhcHNlZC8vIC99IiAtZ3QgJCgoMTAgKiAzNjAwKSkgXV0KICB0aGVuCiAgICBsb2cgIkRldGVjdGVkIGJhY2t1cCBwcm9jZXNzIGdvaW5nIGZvciBvdmVyIDEwIGhvdXJzLCBraWxsaW5nIGl0Li4uIgogICAga2lsbCAtOSAiJChjYXQgIiRfUElEX0ZJTEUiKSIKICBlbHNlCiAgICBsb2cgIk9uZ29pbmcgYmFja3VwIHByb2Nlc3MgZGV0ZWN0ZWQuIEFib3J0aW5nLi4uIgogICAgZXhpdCAwCiAgZmkKZmkKCiMgY2xlYW51cCBsZWZ0b3ZlcnMgZnJvbSBsYXN0IHJ1biBpZiBhbnkKY2xlYW51cCA+IC9kZXYvbnVsbCAyPiYxIHx8OgoKIyBTYXZlIGN1cnJlbnQgcHJvY2VzcyBpZCB0byBwaWQgZmlsZQplY2hvICIkJCIgPiAiJF9QSURfRklMRSIKCiMgY2xlYW51cCB3aWxsIGJlIHJ1biBhdCB0aGUgZW5kIG9mIHRoZSBzY3JpcHQgd2hldGhlciBpdCBmYWlscyBvciBzdWNjZWVkcwp0cmFwICdjbGVhbnVwIDI+JjEgfCBsb2cnIEVYSVQKCiMgTWFrZSBzdXJlIGRpcmVjdG9yaWVzIGV4aXN0Cm1rZGlyIC1wICIkX1VTRVJfRklMRVNfQklORCIgIiRfTkNfSU5TVEFMTF9CSU5EIiAiJF9EQl9CSU5EIiAiJFVTRVJfRklMRVNfTU9VTlQiICIkTkNfSU5TVEFMTF9NT1VOVCIgIiRTUUxfRFVNUF9UQVJHRVRfRElSIgoKdGltZXN0YW1wPSIkKGRhdGUgIislWS0lbS0lZCAlSDolTTolUyAlWiIpIgpsb2cgIlN0YXJ0aW5nIE5leHRjbG91ZCBTbmFwc2hvdCBhdCAkdGltZXN0YW1wIgoKIyBTbmFwc2hvdCBkaXNrcwpsb2cgIkNyZWF0ZSBzbmFwc2hvdHMuLi4iCgpsdmNyZWF0ZSAtcyAtLW5hbWUgIiROQ19JTlNUQUxMX1NOQVBTSE9UX05BTUUiICIke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9WT0xVTUV9IiAyPiYxIHwgbG9nCm1vdW50X3NuYXBzaG90X2x2bSAiJHtOQ19JTlNUQUxMX1ZHfS8ke05DX0lOU1RBTExfU05BUFNIT1RfTkFNRX0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCgpidHJmcyBzdWJ2b2x1bWUgc25hcHNob3QgLXIgIiR7VVNFUl9GSUxFU19WT0xVTUV9IiAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IiAyPiYxIHwgbG9nCgpsb2cgIkRvbmUuIgoKIyBEdW1wIERCCmxvZyAiQ3JlYXRlIERCIGR1bXAuLi4iCiIke1NRTERVTVBfQ01EW0BdfSIgPiAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfS9kYi5zcWwiCmxvZyAiRG9uZS4iCgojIEJpbmQgbW91bnQgYWxsIGluZGl2aWR1YWwgc25hcHNob3RzIGludG8gYSBjb21tb24gcGFyZW50IGRpcmVjdG9yeQpsb2cgIkNyZWF0ZSBiaW5kIG1vdW50cy4uLiIKbW91bnQgLS1iaW5kIC1vICJybyx1aWQ9JHtOQ19PV05FUl9VSUR9LGdpZD0ke05DX09XTkVSX0dJRH0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0vJHtOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfTkNfSU5TVEFMTF9CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD0ke1VTRVJfRklMRVNfT1dORVJfVUlEfSxnaWQ9JHtVU0VSX0ZJTEVTX09XTkVSX0dJRH0gICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0vJHtVU0VSX0ZJTEVTX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfVVNFUl9GSUxFU19CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD1yb290LGdpZD1yb290ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtfREJfQklORH0iICAgICAgICAgICAgIDI+JjEgfCBsb2cKbG9nICJEb25lLiIKCiMgQ3JlYXRlIHRoZSBmaW5hbCBzbmFwc2hvdCB3aXRoIGtvcGlhIHVzaW5nIHRoZSBkZWZhdWx0IGtvcGlhIHJlcG9zaXRvcnkgY29uZmlnIChpZiBuZWVkZWQsIHlvdSBjYW4gY2hhbmdlIHRoZSBjb25maWcgZmlsZSB3aXRoIHRoZSAtLWNvbmZpZy1maWxlIHBhcmFtZXRlcikKbG9nICJDcmVhdGUga29waWEgc25hcHNob3QuLi4iCiMgVGVtcG9yYXJ5IGxvZyBmaWxlIGFzIGEgd29ya2Fyb3VuZCB0byBwYXNzIGtvcGlhIGxvZ3MgdG8gb3VyIGxvZyBmdW5jdGlvbgprb3BpYV9sb2dmaWxlPSIkKG1rdGVtcCAtLXRtcGRpciBrb3BpYS1zbmFwc2hvdC5YWFhYWC5sb2cpIgp0YWlsIC1mICIka29waWFfbG9nZmlsZSIgJgprb3BpYSBzbmFwc2hvdCBjcmVhdGUgLS1wYXJhbGxlbD00IC0tdGFncyAiJHtLT1BJQV9UQUdTfSIgLS1zdGFydC10aW1lPSIkdGltZXN0YW1wIiAtLWxvZy1maWxlPSIka29waWFfbG9nZmlsZSIgLS1maWxlLWxvZy1sZXZlbD0iaW5mbyIgIiR7QkFDS1VQX1JPT1R9IgpjYXQgIiR7a29waWFfbG9nZmlsZSUubG9nfSIqLmxvZyB8IGxvZyA+IC9kZXYvbnVsbApsb2cgIkRvbmUuIg==&#x27;), &#x27;nextcloud-backup.sh&#x27;)&quot;&gt;
          Download
        &lt;&#x2F;sl-button&gt;
      &lt;&#x2F;context-condition&gt;
      
      
      &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;mariadb&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
        &lt;sl-button onclick=&quot;downloadAsFile(content=atob(&#x27;IyEvYmluL2Jhc2gKCnNldCAtZXVvIHBpcGVmYWlsCgojIyMgPT09PT09PT09PSAjIyMKIyBQcm9jZWR1cmUKIyAtIFRoZSBzY3JpcHQgd2lsbCBjcmVhdGUgc25hcHNob3RzIG9mIHRoZSBsdm0gcm9vdCB2b2x1bWUgYW5kIHRoZSBidHJmcyBzdWJ2b2x1bWUgYmFja2luZyBOZXh0Y2xvdWQncyB1c2VyIGZpbGVzLiBUaGVuIGl0IHdpbGwgc3RhcnQgYW4gc3FsZHVtcCBvZiB0aGUgZGF0YWJhc2UKIyAtIEFmdGVyd2FyZHMsIGFsbCAzIHNuYXBzaG90cyB3aWxsIGJlIG1vdW50ZWQvY29waWVkIGluIHRoZSBzYW1lIHBhcmVudCBkaXJlY3RvcnkgYW5kIHVwbG9hZGVkIHRvIGEga29waWEgcmVwb3NpdG9yeQojIyMgPT09PT09PT09PSAjIyMKCiMjIyBDT05GSUdVUkFUSU9OCgojIGZpbGUgZm9yIHdyaXRpbmcgbG9ncy4gQ2FuIGJlIGxlZnQgZW1wdHkgdG8gb25seSBsb2cgdG8gc3Rkb3V0CkxPR19GSUxFPSIvdmFyL2xvZy9uYy1iYWNrdXAubG9nIgoKIyMgTmV4dGNsb3VkIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgY29uZmlnCk5DX0lOU1RBTExfVkc9Imx2bS0xIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgTFZNIHZvbHVtZSBncm91cCBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQpOQ19JTlNUQUxMX1ZPTFVNRT0ibmV4dGNsb3VkIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgbG9naWNhbCB2b2x1bWUgbmFtZSBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQojIEFkanVzdCB0aGlzIGlmIHRoZSBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IGlzIG5vdCBpbiB0aGUgcm9vdCBvZiB0aGUgYmFja2luZyBmaWxlc3lzdGVtIHZvbHVtZQpOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEg9Ii8iCgojIyBOZXh0Y2xvdWQgZmlsZXMgZGlyZWN0b3J5IGNvbmZpZwpVU0VSX0ZJTEVTX1ZHPSJsdm0tMSIgIyBBZGp1c3QgdG8gbWF0Y2ggdGhlIExWTSB2b2x1bWUgZ3JvdXAgY29udGFpbmluZyB5b3VyIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKVVNFUl9GSUxFU19MVj0ibmMtZmlsZXMiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBsb2dpY2FsIHZvbHVtZSBuYW1lIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5CiMgREIgZHVtcCBjb25maWcKIyBQYXRoIHdoZXJlIHRvIHRlbXBvcmFyaWx5IHN0b3JlIGRhdGFiYXNlIGR1bXAgKHNob3VsZCBoYXZlIGVub3VnaCBmcmVlIHNwYWNlKQpTUUxfRFVNUF9UQVJHRVRfRElSPSIvdmFyL25jLWJhY2t1cC1kYiIKIyBXaGF0ZXZlciBjb21tYW5kIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhbiBzcWxkdW1wIChpbmNsdWRpbmcgcGFyYW1ldGVycyBsaWtlIHVzZXIsIGhvc3QsIGRibmFtZSwgcGFzc3dvcmQgY2ZnIC4uLikKIyAtIElmIHlvdXIgREIgaXMgcnVuIGluc2lkZSBkb2NrZXIsIGp1c3QgcHJlcGVuZCB0aGUgY29tbWFuZCB3aXRoIHdoYXRldmVyIGlzIG5lZWRlZCB0byBydW4gYSBjb21tYW5kIGluc2lkZSB0aGUgY29udGFpbmVyLAojICAgZm9yIGV4YW1wbGU6IFNRTERVTVBfQ01EPShkb2NrZXIgZXhlYyA8Y29udGFpbmVybmFtZT4gcGdfZHVtcCAtVSBwb3N0Z3JlcyAtZCBuYykKIyAtIEZvciBNYXJpYURCICh3aXRoIHRoZSBJbm5vREIgZW5naW5lKSwgbWFrZSBzdXJlIHRvIHVzZSAtLXNpbmdsZS10cmFuc2FjdGlvbiAoYW5kIG9wdGlvbmFsbHkgLS1za2lwLWxvY2stdGFibGVzIHRvIGF2b2lkIHNsb3cgZG93bnMgZm9yIHlvdXIgc3lzdGVtKSB0byBhdm9pZCBzaWRlIGVmZmVjdHMuCiMgICBTZWUgaHR0cHM6Ly9teXNxbGR1bXAuZ3VydS9teXNxbGR1bXAtc2luZ2xlLXRyYW5zYWN0aW9uLWZsYWcuaHRtbCBmb3IgbW9yZSBpbmZvLgojIC0gRm9yIHBvc3RncmVzcWwsIG5vIGFkanVzdGVtbnRzIGFyZSBuZWVkZWQKCiMgQ29uZmlndXJlIHRoZSBjb25uZWN0aW9uIG9wdGlvbnMgZm9yIHlvdXIgZGF0YWJhc2U6CkRCX1VTRVI9Im5leHRjbG91ZCIKREJfTkFNRT0ibmV4dGNsb3VkIgpEQl9QQVNTV09SRD0icGFzc3dvcmQiCkRCX0hPU1Q9IjEyNy4wLjAuMSIKREJfUE9SVD0iNTQzMiIKCiMgbXlzcWxkdW1wIHdpbGwgYmUgc3VwcGxpZWQgd2l0aCB0aGUgZGIgY3JlZGVudGlhbHMgYnkgd3JpdGluZyB0aGVtIHRvIH4vLm15LmNuZgpNWUNORl9QQVRIPSIkSE9NRS8ubXkuY25mIgppbnN0YWxsIC1tIDA2MDAgPChlY2hvIC1lICJbbXlzcWxkdW1wXVxudXNlcj0ke0RCX1VTRVJ9XG5wYXNzd29yZD0ke0RCX1BBU1NXT1JEfSIpICIke01ZQ05GX1BBVEh9IgpTUUxEVU1QX0NNRD0obXlzcWxkdW1wIC0taG9zdD0iJHtEQl9IT1NUfSIgLS1wb3J0PSIke0RCX1BPUlR9IiAtLXNpbmdsZS10cmFuc2FjdGlvbiAtLXNraXAtbG9jay10YWJsZXMgIiR7REJfTkFNRX0iKQoKCiMgU2V0dXAgYW55IHRhZ3MgaGVyZSB0aGF0IHlvdSB3YW50IHRvIGJlIGFkZGVkIHRvIHlvdXIgeW91ciBrb3BpYSBzbmFwc2hvdCAoY29tbWEgc2VwYXJhdGVkIGluIHRoZSBmb3JtYXQgbGFiZWw6dmFsdWUpCktPUElBX1RBR1M9ImpvYjpuZXh0Y2xvdWQtZnVsbC1iYWNrdXAsbmMtZmlsZXM6eWVzLG5jLWRiOnllcyxuYy1uZXh0Y2xvdWQ6eWVzIgoKIyMjIEFEVkFOQ0VEL0lOVEVSTkFMIENPTkZJRyAtIG9ubHkgYWRqdXN0IGlmIHlvdSBhcmUgc3VyZSB0aGF0IHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nICMjIwpOQ19JTlNUQUxMX0ZTVFlQRT0ibHZtIgojIE5DIGluc3RhbGwgTFZNIHNuYXBzaG90IG5hbWUKTkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FPSJuYy1iYWNrdXAtbmV4dGNsb3VkIgpOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEg9Ii9ydW4vbW50L25jLWJhY2t1cC1sdm0tbmV4dGNsb3VkIgoKVVNFUl9GSUxFU19GU1RZUEU9Imx2bSIKIyBOQyBmaWxlcyBMVk0gc25hcHNob3QgbmFtZQpVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUU9Im5jLWJhY2t1cC1uYy1maWxlcyIKVVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIPSIvcnVuL21udC9uYy1iYWNrdXAtbHZtLW5jLWZpbGVzIgoKCiMgRk9SQ0UgVUlEIGFuZCBHSUQgdGhhdCBhbGwgZmlsZXMgZnJvbSB0aGUgbmV4dGNsb3VkIGluc3RhbGwgZGlyZWN0b3J5IHNob3VsZCBoYXZlIGluIHRoZSBiYWNrdXAgKGUuZy4gdGhhdCBvZiB5b3VyIHd3dy1kYXRhIHVzZXIgYW5kIGdyb3VwKQpOQ19PV05FUl9VSUQ9MzMKTkNfT1dORVJfR0lEPTMzCgojIEZPUkNFIFVJRCBhbmQgR0lEIHRoYXQgYWxsIHVzZXIgZmlsZXMgc2hvdWxkIGhhdmUgaW4gdGhlIGJhY2t1cCAoZS5nLiB0aGF0IG9mIHlvdXIgd3d3LWRhdGEgdXNlciBhbmQgZ3JvdXApClVTRVJfRklMRVNfT1dORVJfVUlEPTMzClVTRVJfRklMRVNfT1dORVJfR0lEPTMzCgojIENvbmZpZ3VyZSBwYXRoIHdoZXJlIGFsbCBwYXJ0cyBvZiB0aGUgYmFja3VwIHdpbGwgYmUgbWFwcGVkIHRvIGJlZm9yZSB0cmFuc2ZlcnJpbmcgd2l0aCBLb3BpYQpCQUNLVVBfUk9PVD0iL3J1bi9uYy1iYWNrdXAiCgoKIyMjIFlvdSB1c3VhbGx5IHNob3VsZCBub3QgbmVlZCB0byB0b3VjaCB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcwoKX1VTRVJfRklMRVNfQklORD0iJHtCQUNLVVBfUk9PVH0vbmNfZmlsZXMiCl9OQ19JTlNUQUxMX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L25leHRjbG91ZCIKX0RCX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L2RiIgoKIyBmaWxlIGZvciBrZWVwaW5nIHRyYWNrIG9mIHJ1bm5pbmcgYmFja3VwIG9wZXJhdGlvbnMKX1BJRF9GSUxFPSIvdmFyL3J1bi9uYy1iYWNrdXAucGlkIgoKCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgbG9nZ2luZyB0byBib3RoIHRoZSBsb2cgZmlsZSBhbmQgc3Rkb3V0CmxvZygpIHsKICBsb2NhbCBtc2cgbWVzc2FnZQoKICBmd2Q9KGVjaG8pCiAgaWYgW1sgLW4gIiRMT0dfRklMRSIgXV0KICB0aGVuCiAgZndkPSh0ZWUgLWEgIiRMT0dfRklMRSIpCiAgZmkKCiAgaWYgW1sgLXogIiR7MTotfSIgXV0KICB0aGVuCiAgd2hpbGUgcmVhZCAtciBtZXNzYWdlCiAgZG8KICBlY2hvICJcJCQkPiQoZGF0ZSAtSXMpPT4iICIke21lc3NhZ2VbQF19IiAyPiYxIHwgIiR7ZndkW0BdfSIKICBkb25lCiAgcmV0dXJuCiAgZmkKCiAgZWNobyAiXCQkJD4kKGRhdGUgLUlzKT0+IiAiJHtAfSIgMj4mMSB8ICIke2Z3ZFtAXX0iCn0KCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgY2xlYW5pbmcgdXAgc25hcHNob3RzLCBwaWQgZmlsZSwgZXRjLgpjbGVhbnVwKCkgewogIHNldCArZXUKICBlY2hvICJDbGVhbnVwLi4uIgogIAogIHJtIC1yZiAiJHtQR1BBU1NfUEFUSH0iCiAgCiAgCiAgdW1vdW50ICIkX0RCX0JJTkQiCiAgdW1vdW50ICIkX05DX0lOU1RBTExfQklORCIKICB1bW91bnQgIiRfVVNFUl9GSUxFU19CSU5EIgoKICBbWyAteiAiJHtVU0VSX0ZJTEVTX01PVU5UfSIgXV0gfHwgdW1vdW50ICIkVVNFUl9GSUxFU19NT1VOVCIKICBbWyAteiAiJHtOQ19JTlNUQUxMX01PVU5UfSIgXV0gfHwgdW1vdW50ICIkTkNfSU5TVEFMTF9NT1VOVCIKCiAgcm0gLXJmICIkU1FMX0RVTVBfVEFSR0VUX0RJUiI7CiAgIyBDbGVhbnVwIE5DIGluc3RhbGwgZGlyIHNuYXBzaG90CiAgCiAgdW1vdW50ICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iCiAgcm0gLXJmICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iCiAgbHZjaGFuZ2UgLWFuIC1LICIke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FfSIKICBsdnJlbW92ZSAiL2Rldi8ke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FfSIKICAKICAjIENsZWFudXAgTkMgZmlsZXMgc25hcHNob3QKICAKICB1bW91bnQgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfSIKICBybSAtcmYgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfSIKICBsdmNoYW5nZSAtYW4gLUsgIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IgogIGx2cmVtb3ZlICIvZGV2LyR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IgogIAogIAogICMgUmVtb3ZlIFBJRCBmaWxlCiAgcm0gIiRfUElEX0ZJTEUiCiAgZWNobyAiRG9uZS4iCn0KCgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIG1vdW50aW5nIGx2bSBzbmFwc2hvdCB0byBhIG1vdW50cG9pbnQKbW91bnRfc25hcHNob3RfbHZtKCkgewogIGxvY2FsIHNuYXBzaG90IG1vdW50cG9pbnQgb3duZXJzaGlwCiAgc25hcHNob3Q9IiR7MT99IgogIG1vdW50cG9pbnQ9IiR7Mj99IgogIG1rZGlyIC1wICIke21vdW50cG9pbnR9IgogIGx2Y2hhbmdlIC1heSAtSyAiJHtzbmFwc2hvdH0iCiAgbW91bnQgLW8gInJvIiAiL2Rldi8ke3NuYXBzaG90fSIgIiR7bW91bnRwb2ludH0iCn0KCgojIyBEZXRlY3Qgd2hldGhlciBhIGJhY2t1cCBpcyBzdGlsbCBydW5uaW5nIChhbmQgYWJvcnQgaW4gdGhpcyBjYXNlKQojIElmIHRoZSBiYWNrdXAgaGFzIGJlZW4gcnVubmluZyBmb3IgbW9yZSB0aGFuIDEwIGhvdXJzLCBpdCBpcyBhc3N1bWVkIHRvIGJlIHN0dWNrIGFuZCBpdHMgcHJvY2VzcyBraWxsZWQKaWYgW1sgLWYgIiRfUElEX0ZJTEUiIF1dICYmIHBzIC1wICIkKGNhdCAiJF9QSURfRklMRSIpIiA+IC9kZXYvbnVsbAp0aGVuCiAgZWxhcHNlZD0iJChwcyAtbyBldGltZXM9IC1wICIkKGNhdCAiJF9QSURfRklMRSIpIikiCiAgaWYgW1sgIiR7ZWxhcHNlZC8vIC99IiAtZ3QgJCgoMTAgKiAzNjAwKSkgXV0KICB0aGVuCiAgICBsb2cgIkRldGVjdGVkIGJhY2t1cCBwcm9jZXNzIGdvaW5nIGZvciBvdmVyIDEwIGhvdXJzLCBraWxsaW5nIGl0Li4uIgogICAga2lsbCAtOSAiJChjYXQgIiRfUElEX0ZJTEUiKSIKICBlbHNlCiAgICBsb2cgIk9uZ29pbmcgYmFja3VwIHByb2Nlc3MgZGV0ZWN0ZWQuIEFib3J0aW5nLi4uIgogICAgZXhpdCAwCiAgZmkKZmkKCiMgY2xlYW51cCBsZWZ0b3ZlcnMgZnJvbSBsYXN0IHJ1biBpZiBhbnkKY2xlYW51cCA+IC9kZXYvbnVsbCAyPiYxIHx8OgoKIyBTYXZlIGN1cnJlbnQgcHJvY2VzcyBpZCB0byBwaWQgZmlsZQplY2hvICIkJCIgPiAiJF9QSURfRklMRSIKCiMgY2xlYW51cCB3aWxsIGJlIHJ1biBhdCB0aGUgZW5kIG9mIHRoZSBzY3JpcHQgd2hldGhlciBpdCBmYWlscyBvciBzdWNjZWVkcwp0cmFwICdjbGVhbnVwIDI+JjEgfCBsb2cnIEVYSVQKCiMgTWFrZSBzdXJlIGRpcmVjdG9yaWVzIGV4aXN0Cm1rZGlyIC1wICIkX1VTRVJfRklMRVNfQklORCIgIiRfTkNfSU5TVEFMTF9CSU5EIiAiJF9EQl9CSU5EIiAiJFVTRVJfRklMRVNfTU9VTlQiICIkTkNfSU5TVEFMTF9NT1VOVCIgIiRTUUxfRFVNUF9UQVJHRVRfRElSIgoKdGltZXN0YW1wPSIkKGRhdGUgIislWS0lbS0lZCAlSDolTTolUyAlWiIpIgpsb2cgIlN0YXJ0aW5nIE5leHRjbG91ZCBTbmFwc2hvdCBhdCAkdGltZXN0YW1wIgoKIyBTbmFwc2hvdCBkaXNrcwpsb2cgIkNyZWF0ZSBzbmFwc2hvdHMuLi4iCgpsdmNyZWF0ZSAtcyAtLW5hbWUgIiROQ19JTlNUQUxMX1NOQVBTSE9UX05BTUUiICIke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9WT0xVTUV9IiAyPiYxIHwgbG9nCm1vdW50X3NuYXBzaG90X2x2bSAiJHtOQ19JTlNUQUxMX1ZHfS8ke05DX0lOU1RBTExfU05BUFNIT1RfTkFNRX0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCgpsdmNyZWF0ZSAtcyAtLW5hbWUgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FfSIgIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX0xWfSIgMj4mMSB8IGxvZwptb3VudF9zbmFwc2hvdF9sdm0gIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IiAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IiAyPiYxIHwgbG9nCgpsb2cgIkRvbmUuIgoKIyBEdW1wIERCCmxvZyAiQ3JlYXRlIERCIGR1bXAuLi4iCiIke1NRTERVTVBfQ01EW0BdfSIgPiAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfS9kYi5zcWwiCmxvZyAiRG9uZS4iCgojIEJpbmQgbW91bnQgYWxsIGluZGl2aWR1YWwgc25hcHNob3RzIGludG8gYSBjb21tb24gcGFyZW50IGRpcmVjdG9yeQpsb2cgIkNyZWF0ZSBiaW5kIG1vdW50cy4uLiIKbW91bnQgLS1iaW5kIC1vICJybyx1aWQ9JHtOQ19PV05FUl9VSUR9LGdpZD0ke05DX09XTkVSX0dJRH0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0vJHtOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfTkNfSU5TVEFMTF9CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD0ke1VTRVJfRklMRVNfT1dORVJfVUlEfSxnaWQ9JHtVU0VSX0ZJTEVTX09XTkVSX0dJRH0gICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0vJHtVU0VSX0ZJTEVTX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfVVNFUl9GSUxFU19CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD1yb290LGdpZD1yb290ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtfREJfQklORH0iICAgICAgICAgICAgIDI+JjEgfCBsb2cKbG9nICJEb25lLiIKCiMgQ3JlYXRlIHRoZSBmaW5hbCBzbmFwc2hvdCB3aXRoIGtvcGlhIHVzaW5nIHRoZSBkZWZhdWx0IGtvcGlhIHJlcG9zaXRvcnkgY29uZmlnIChpZiBuZWVkZWQsIHlvdSBjYW4gY2hhbmdlIHRoZSBjb25maWcgZmlsZSB3aXRoIHRoZSAtLWNvbmZpZy1maWxlIHBhcmFtZXRlcikKbG9nICJDcmVhdGUga29waWEgc25hcHNob3QuLi4iCiMgVGVtcG9yYXJ5IGxvZyBmaWxlIGFzIGEgd29ya2Fyb3VuZCB0byBwYXNzIGtvcGlhIGxvZ3MgdG8gb3VyIGxvZyBmdW5jdGlvbgprb3BpYV9sb2dmaWxlPSIkKG1rdGVtcCAtLXRtcGRpciBrb3BpYS1zbmFwc2hvdC5YWFhYWC5sb2cpIgp0YWlsIC1mICIka29waWFfbG9nZmlsZSIgJgprb3BpYSBzbmFwc2hvdCBjcmVhdGUgLS1wYXJhbGxlbD00IC0tdGFncyAiJHtLT1BJQV9UQUdTfSIgLS1zdGFydC10aW1lPSIkdGltZXN0YW1wIiAtLWxvZy1maWxlPSIka29waWFfbG9nZmlsZSIgLS1maWxlLWxvZy1sZXZlbD0iaW5mbyIgIiR7QkFDS1VQX1JPT1R9IgpjYXQgIiR7a29waWFfbG9nZmlsZSUubG9nfSIqLmxvZyB8IGxvZyA+IC9kZXYvbnVsbApsb2cgIkRvbmUuIg==&#x27;), &#x27;nextcloud-backup.sh&#x27;)&quot;&gt;
          Download
        &lt;&#x2F;sl-button&gt;
      &lt;&#x2F;context-condition&gt;
      
      
      &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;postgres&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
        &lt;sl-button onclick=&quot;downloadAsFile(content=atob(&#x27;IyEvYmluL2Jhc2gKCnNldCAtZXVvIHBpcGVmYWlsCgojIyMgPT09PT09PT09PSAjIyMKIyBQcm9jZWR1cmUKIyAtIFRoZSBzY3JpcHQgd2lsbCBjcmVhdGUgc25hcHNob3RzIG9mIHRoZSBsdm0gcm9vdCB2b2x1bWUgYW5kIHRoZSBidHJmcyBzdWJ2b2x1bWUgYmFja2luZyBOZXh0Y2xvdWQncyB1c2VyIGZpbGVzLiBUaGVuIGl0IHdpbGwgc3RhcnQgYW4gc3FsZHVtcCBvZiB0aGUgZGF0YWJhc2UKIyAtIEFmdGVyd2FyZHMsIGFsbCAzIHNuYXBzaG90cyB3aWxsIGJlIG1vdW50ZWQvY29waWVkIGluIHRoZSBzYW1lIHBhcmVudCBkaXJlY3RvcnkgYW5kIHVwbG9hZGVkIHRvIGEga29waWEgcmVwb3NpdG9yeQojIyMgPT09PT09PT09PSAjIyMKCiMjIyBDT05GSUdVUkFUSU9OCgojIGZpbGUgZm9yIHdyaXRpbmcgbG9ncy4gQ2FuIGJlIGxlZnQgZW1wdHkgdG8gb25seSBsb2cgdG8gc3Rkb3V0CkxPR19GSUxFPSIvdmFyL2xvZy9uYy1iYWNrdXAubG9nIgoKIyMgTmV4dGNsb3VkIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgY29uZmlnCk5DX0lOU1RBTExfVkc9Imx2bS0xIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgTFZNIHZvbHVtZSBncm91cCBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQpOQ19JTlNUQUxMX1ZPTFVNRT0ibmV4dGNsb3VkIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgbG9naWNhbCB2b2x1bWUgbmFtZSBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQojIEFkanVzdCB0aGlzIGlmIHRoZSBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IGlzIG5vdCBpbiB0aGUgcm9vdCBvZiB0aGUgYmFja2luZyBmaWxlc3lzdGVtIHZvbHVtZQpOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEg9Ii8iCgojIyBOZXh0Y2xvdWQgZmlsZXMgZGlyZWN0b3J5IGNvbmZpZwpVU0VSX0ZJTEVTX1ZHPSJsdm0tMSIgIyBBZGp1c3QgdG8gbWF0Y2ggdGhlIExWTSB2b2x1bWUgZ3JvdXAgY29udGFpbmluZyB5b3VyIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKVVNFUl9GSUxFU19MVj0ibmMtZmlsZXMiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBsb2dpY2FsIHZvbHVtZSBuYW1lIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5CiMgREIgZHVtcCBjb25maWcKIyBQYXRoIHdoZXJlIHRvIHRlbXBvcmFyaWx5IHN0b3JlIGRhdGFiYXNlIGR1bXAgKHNob3VsZCBoYXZlIGVub3VnaCBmcmVlIHNwYWNlKQpTUUxfRFVNUF9UQVJHRVRfRElSPSIvdmFyL25jLWJhY2t1cC1kYiIKIyBXaGF0ZXZlciBjb21tYW5kIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhbiBzcWxkdW1wIChpbmNsdWRpbmcgcGFyYW1ldGVycyBsaWtlIHVzZXIsIGhvc3QsIGRibmFtZSwgcGFzc3dvcmQgY2ZnIC4uLikKIyAtIElmIHlvdXIgREIgaXMgcnVuIGluc2lkZSBkb2NrZXIsIGp1c3QgcHJlcGVuZCB0aGUgY29tbWFuZCB3aXRoIHdoYXRldmVyIGlzIG5lZWRlZCB0byBydW4gYSBjb21tYW5kIGluc2lkZSB0aGUgY29udGFpbmVyLAojICAgZm9yIGV4YW1wbGU6IFNRTERVTVBfQ01EPShkb2NrZXIgZXhlYyA8Y29udGFpbmVybmFtZT4gcGdfZHVtcCAtVSBwb3N0Z3JlcyAtZCBuYykKIyAtIEZvciBNYXJpYURCICh3aXRoIHRoZSBJbm5vREIgZW5naW5lKSwgbWFrZSBzdXJlIHRvIHVzZSAtLXNpbmdsZS10cmFuc2FjdGlvbiAoYW5kIG9wdGlvbmFsbHkgLS1za2lwLWxvY2stdGFibGVzIHRvIGF2b2lkIHNsb3cgZG93bnMgZm9yIHlvdXIgc3lzdGVtKSB0byBhdm9pZCBzaWRlIGVmZmVjdHMuCiMgICBTZWUgaHR0cHM6Ly9teXNxbGR1bXAuZ3VydS9teXNxbGR1bXAtc2luZ2xlLXRyYW5zYWN0aW9uLWZsYWcuaHRtbCBmb3IgbW9yZSBpbmZvLgojIC0gRm9yIHBvc3RncmVzcWwsIG5vIGFkanVzdGVtbnRzIGFyZSBuZWVkZWQKCiMgQ29uZmlndXJlIHRoZSBjb25uZWN0aW9uIG9wdGlvbnMgZm9yIHlvdXIgZGF0YWJhc2U6CkRCX1VTRVI9Im5leHRjbG91ZCIKREJfTkFNRT0ibmV4dGNsb3VkIgpEQl9QQVNTV09SRD0icGFzc3dvcmQiCkRCX0hPU1Q9IjEyNy4wLjAuMSIKREJfUE9SVD0iNTQzMiIKCgojIHBnX2R1bXAgd2lsbCBiZSBzdXBwbGllZCB3aXRoIHRoZSBjb25uZWN0aW9uIG9wdGlvbnMgYnkgd3JpdGluZyB0aGVtIHRvIH4vLnBncGFzcwpQR1BBU1NfUEFUSD0iJHtIT01FfS8ucGdwYXNzIgppbnN0YWxsIC1tIDA2MDAgPChlY2hvICIke0RCX0hPU1R9OiR7REJfUE9SVH06JHtEQl9OQU1FfToke0RCX1VTRVJ9OiR7REJfUEFTU1dPUkR9IikgIiR7UEdQQVNTX1BBVEh9IgpTUUxEVU1QX0NNRD0ocGdfZHVtcCAiJHtEQl9OQU1FfSIpCgojIFNldHVwIGFueSB0YWdzIGhlcmUgdGhhdCB5b3Ugd2FudCB0byBiZSBhZGRlZCB0byB5b3VyIHlvdXIga29waWEgc25hcHNob3QgKGNvbW1hIHNlcGFyYXRlZCBpbiB0aGUgZm9ybWF0IGxhYmVsOnZhbHVlKQpLT1BJQV9UQUdTPSJqb2I6bmV4dGNsb3VkLWZ1bGwtYmFja3VwLG5jLWZpbGVzOnllcyxuYy1kYjp5ZXMsbmMtbmV4dGNsb3VkOnllcyIKCiMjIyBBRFZBTkNFRC9JTlRFUk5BTCBDT05GSUcgLSBvbmx5IGFkanVzdCBpZiB5b3UgYXJlIHN1cmUgdGhhdCB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZyAjIyMKTkNfSU5TVEFMTF9GU1RZUEU9Imx2bSIKIyBOQyBpbnN0YWxsIExWTSBzbmFwc2hvdCBuYW1lCk5DX0lOU1RBTExfU05BUFNIT1RfTkFNRT0ibmMtYmFja3VwLW5leHRjbG91ZCIKTkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIPSIvcnVuL21udC9uYy1iYWNrdXAtbHZtLW5leHRjbG91ZCIKClVTRVJfRklMRVNfRlNUWVBFPSJsdm0iCiMgTkMgZmlsZXMgTFZNIHNuYXBzaG90IG5hbWUKVVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FPSJuYy1iYWNrdXAtbmMtZmlsZXMiClVTRVJfRklMRVNfU05BUFNIT1RfUEFUSD0iL3J1bi9tbnQvbmMtYmFja3VwLWx2bS1uYy1maWxlcyIKCgojIEZPUkNFIFVJRCBhbmQgR0lEIHRoYXQgYWxsIGZpbGVzIGZyb20gdGhlIG5leHRjbG91ZCBpbnN0YWxsIGRpcmVjdG9yeSBzaG91bGQgaGF2ZSBpbiB0aGUgYmFja3VwIChlLmcuIHRoYXQgb2YgeW91ciB3d3ctZGF0YSB1c2VyIGFuZCBncm91cCkKTkNfT1dORVJfVUlEPTMzCk5DX09XTkVSX0dJRD0zMwoKIyBGT1JDRSBVSUQgYW5kIEdJRCB0aGF0IGFsbCB1c2VyIGZpbGVzIHNob3VsZCBoYXZlIGluIHRoZSBiYWNrdXAgKGUuZy4gdGhhdCBvZiB5b3VyIHd3dy1kYXRhIHVzZXIgYW5kIGdyb3VwKQpVU0VSX0ZJTEVTX09XTkVSX1VJRD0zMwpVU0VSX0ZJTEVTX09XTkVSX0dJRD0zMwoKIyBDb25maWd1cmUgcGF0aCB3aGVyZSBhbGwgcGFydHMgb2YgdGhlIGJhY2t1cCB3aWxsIGJlIG1hcHBlZCB0byBiZWZvcmUgdHJhbnNmZXJyaW5nIHdpdGggS29waWEKQkFDS1VQX1JPT1Q9Ii9ydW4vbmMtYmFja3VwIgoKCiMjIyBZb3UgdXN1YWxseSBzaG91bGQgbm90IG5lZWQgdG8gdG91Y2ggdGhlIGZvbGxvd2luZyB2YXJpYWJsZXMKCl9VU0VSX0ZJTEVTX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L25jX2ZpbGVzIgpfTkNfSU5TVEFMTF9CSU5EPSIke0JBQ0tVUF9ST09UfS9uZXh0Y2xvdWQiCl9EQl9CSU5EPSIke0JBQ0tVUF9ST09UfS9kYiIKCiMgZmlsZSBmb3Iga2VlcGluZyB0cmFjayBvZiBydW5uaW5nIGJhY2t1cCBvcGVyYXRpb25zCl9QSURfRklMRT0iL3Zhci9ydW4vbmMtYmFja3VwLnBpZCIKCgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGxvZ2dpbmcgdG8gYm90aCB0aGUgbG9nIGZpbGUgYW5kIHN0ZG91dApsb2coKSB7CiAgbG9jYWwgbXNnIG1lc3NhZ2UKCiAgZndkPShlY2hvKQogIGlmIFtbIC1uICIkTE9HX0ZJTEUiIF1dCiAgdGhlbgogIGZ3ZD0odGVlIC1hICIkTE9HX0ZJTEUiKQogIGZpCgogIGlmIFtbIC16ICIkezE6LX0iIF1dCiAgdGhlbgogIHdoaWxlIHJlYWQgLXIgbWVzc2FnZQogIGRvCiAgZWNobyAiXCQkJD4kKGRhdGUgLUlzKT0+IiAiJHttZXNzYWdlW0BdfSIgMj4mMSB8ICIke2Z3ZFtAXX0iCiAgZG9uZQogIHJldHVybgogIGZpCgogIGVjaG8gIlwkJCQ+JChkYXRlIC1Jcyk9PiIgIiR7QH0iIDI+JjEgfCAiJHtmd2RbQF19Igp9CgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGNsZWFuaW5nIHVwIHNuYXBzaG90cywgcGlkIGZpbGUsIGV0Yy4KY2xlYW51cCgpIHsKICBzZXQgK2V1CiAgZWNobyAiQ2xlYW51cC4uLiIKICAKICBybSAtcmYgIiR7UEdQQVNTX1BBVEh9IgogIAogIAogIHVtb3VudCAiJF9EQl9CSU5EIgogIHVtb3VudCAiJF9OQ19JTlNUQUxMX0JJTkQiCiAgdW1vdW50ICIkX1VTRVJfRklMRVNfQklORCIKCiAgW1sgLXogIiR7VVNFUl9GSUxFU19NT1VOVH0iIF1dIHx8IHVtb3VudCAiJFVTRVJfRklMRVNfTU9VTlQiCiAgW1sgLXogIiR7TkNfSU5TVEFMTF9NT1VOVH0iIF1dIHx8IHVtb3VudCAiJE5DX0lOU1RBTExfTU9VTlQiCgogIHJtIC1yZiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiOwogICMgQ2xlYW51cCBOQyBpbnN0YWxsIGRpciBzbmFwc2hvdAogIAogIHVtb3VudCAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9IgogIHJtIC1yZiAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9IgogIGx2Y2hhbmdlIC1hbiAtSyAiJHtOQ19JTlNUQUxMX1ZHfS8ke05DX0lOU1RBTExfU05BUFNIT1RfTkFNRX0iCiAgbHZyZW1vdmUgIi9kZXYvJHtOQ19JTlNUQUxMX1ZHfS8ke05DX0lOU1RBTExfU05BUFNIT1RfTkFNRX0iCiAgCiAgIyBDbGVhbnVwIE5DIGZpbGVzIHNuYXBzaG90CiAgCiAgdW1vdW50ICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0iCiAgcm0gLXJmICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0iCiAgbHZjaGFuZ2UgLWFuIC1LICIke1VTRVJfRklMRVNfVkd9LyR7VVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FfSIKICBsdnJlbW92ZSAiL2Rldi8ke1VTRVJfRklMRVNfVkd9LyR7VVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FfSIKICAKICAKICAjIFJlbW92ZSBQSUQgZmlsZQogIHJtICIkX1BJRF9GSUxFIgogIGVjaG8gIkRvbmUuIgp9CgoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBtb3VudGluZyBsdm0gc25hcHNob3QgdG8gYSBtb3VudHBvaW50Cm1vdW50X3NuYXBzaG90X2x2bSgpIHsKICBsb2NhbCBzbmFwc2hvdCBtb3VudHBvaW50IG93bmVyc2hpcAogIHNuYXBzaG90PSIkezE&amp;#x2F;fSIKICBtb3VudHBvaW50PSIkezI&amp;#x2F;fSIKICBta2RpciAtcCAiJHttb3VudHBvaW50fSIKICBsdmNoYW5nZSAtYXkgLUsgIiR7c25hcHNob3R9IgogIG1vdW50IC1vICJybyIgIi9kZXYvJHtzbmFwc2hvdH0iICIke21vdW50cG9pbnR9Igp9CgoKIyMgRGV0ZWN0IHdoZXRoZXIgYSBiYWNrdXAgaXMgc3RpbGwgcnVubmluZyAoYW5kIGFib3J0IGluIHRoaXMgY2FzZSkKIyBJZiB0aGUgYmFja3VwIGhhcyBiZWVuIHJ1bm5pbmcgZm9yIG1vcmUgdGhhbiAxMCBob3VycywgaXQgaXMgYXNzdW1lZCB0byBiZSBzdHVjayBhbmQgaXRzIHByb2Nlc3Mga2lsbGVkCmlmIFtbIC1mICIkX1BJRF9GSUxFIiBdXSAmJiBwcyAtcCAiJChjYXQgIiRfUElEX0ZJTEUiKSIgPiAvZGV2L251bGwKdGhlbgogIGVsYXBzZWQ9IiQocHMgLW8gZXRpbWVzPSAtcCAiJChjYXQgIiRfUElEX0ZJTEUiKSIpIgogIGlmIFtbICIke2VsYXBzZWQvLyAvfSIgLWd0ICQoKDEwICogMzYwMCkpIF1dCiAgdGhlbgogICAgbG9nICJEZXRlY3RlZCBiYWNrdXAgcHJvY2VzcyBnb2luZyBmb3Igb3ZlciAxMCBob3Vycywga2lsbGluZyBpdC4uLiIKICAgIGtpbGwgLTkgIiQoY2F0ICIkX1BJRF9GSUxFIikiCiAgZWxzZQogICAgbG9nICJPbmdvaW5nIGJhY2t1cCBwcm9jZXNzIGRldGVjdGVkLiBBYm9ydGluZy4uLiIKICAgIGV4aXQgMAogIGZpCmZpCgojIGNsZWFudXAgbGVmdG92ZXJzIGZyb20gbGFzdCBydW4gaWYgYW55CmNsZWFudXAgPiAvZGV2L251bGwgMj4mMSB8fDoKCiMgU2F2ZSBjdXJyZW50IHByb2Nlc3MgaWQgdG8gcGlkIGZpbGUKZWNobyAiJCQiID4gIiRfUElEX0ZJTEUiCgojIGNsZWFudXAgd2lsbCBiZSBydW4gYXQgdGhlIGVuZCBvZiB0aGUgc2NyaXB0IHdoZXRoZXIgaXQgZmFpbHMgb3Igc3VjY2VlZHMKdHJhcCAnY2xlYW51cCAyPiYxIHwgbG9nJyBFWElUCgojIE1ha2Ugc3VyZSBkaXJlY3RvcmllcyBleGlzdApta2RpciAtcCAiJF9VU0VSX0ZJTEVTX0JJTkQiICIkX05DX0lOU1RBTExfQklORCIgIiRfREJfQklORCIgIiRVU0VSX0ZJTEVTX01PVU5UIiAiJE5DX0lOU1RBTExfTU9VTlQiICIkU1FMX0RVTVBfVEFSR0VUX0RJUiIKCnRpbWVzdGFtcD0iJChkYXRlICIrJVktJW0tJWQgJUg6JU06JVMgJVoiKSIKbG9nICJTdGFydGluZyBOZXh0Y2xvdWQgU25hcHNob3QgYXQgJHRpbWVzdGFtcCIKCiMgU25hcHNob3QgZGlza3MKbG9nICJDcmVhdGUgc25hcHNob3RzLi4uIgoKbHZjcmVhdGUgLXMgLS1uYW1lICIkTkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FIiAiJHtOQ19JTlNUQUxMX1ZHfS8ke05DX0lOU1RBTExfVk9MVU1FfSIgMj4mMSB8IGxvZwptb3VudF9zbmFwc2hvdF9sdm0gIiR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUV9IiAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9IiAyPiYxIHwgbG9nCgoKbHZjcmVhdGUgLXMgLS1uYW1lICIke1VTRVJfRklMRVNfU05BUFNIT1RfTkFNRX0iICIke1VTRVJfRklMRVNfVkd9LyR7VVNFUl9GSUxFU19MVn0iIDI+JjEgfCBsb2cKbW91bnRfc25hcHNob3RfbHZtICIke1VTRVJfRklMRVNfVkd9LyR7VVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FfSIgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfSIgMj4mMSB8IGxvZwoKbG9nICJEb25lLiIKCiMgRHVtcCBEQgpsb2cgIkNyZWF0ZSBEQiBkdW1wLi4uIgoiJHtTUUxEVU1QX0NNRFtAXX0iID4gIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0vZGIuc3FsIgpsb2cgIkRvbmUuIgoKIyBCaW5kIG1vdW50IGFsbCBpbmRpdmlkdWFsIHNuYXBzaG90cyBpbnRvIGEgY29tbW9uIHBhcmVudCBkaXJlY3RvcnkKbG9nICJDcmVhdGUgYmluZCBtb3VudHMuLi4iCm1vdW50IC0tYmluZCAtbyAicm8sdWlkPSR7TkNfT1dORVJfVUlEfSxnaWQ9JHtOQ19PV05FUl9HSUR9IiAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9LyR7TkNfSU5TVEFMTF9SRUxBVElWRV9QQVRIIy99IiAgICAgIiR7X05DX0lOU1RBTExfQklORH0iICAgICAyPiYxIHwgbG9nCm1vdW50IC0tYmluZCAtbyBybyx1aWQ9JHtVU0VSX0ZJTEVTX09XTkVSX1VJRH0sZ2lkPSR7VVNFUl9GSUxFU19PV05FUl9HSUR9ICAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9LyR7VVNFUl9GSUxFU19SRUxBVElWRV9QQVRIIy99IiAgICAgIiR7X1VTRVJfRklMRVNfQklORH0iICAgICAyPiYxIHwgbG9nCm1vdW50IC0tYmluZCAtbyBybyx1aWQ9cm9vdCxnaWQ9cm9vdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7X0RCX0JJTkR9IiAgICAgICAgICAgICAyPiYxIHwgbG9nCmxvZyAiRG9uZS4iCgojIENyZWF0ZSB0aGUgZmluYWwgc25hcHNob3Qgd2l0aCBrb3BpYSB1c2luZyB0aGUgZGVmYXVsdCBrb3BpYSByZXBvc2l0b3J5IGNvbmZpZyAoaWYgbmVlZGVkLCB5b3UgY2FuIGNoYW5nZSB0aGUgY29uZmlnIGZpbGUgd2l0aCB0aGUgLS1jb25maWctZmlsZSBwYXJhbWV0ZXIpCmxvZyAiQ3JlYXRlIGtvcGlhIHNuYXBzaG90Li4uIgojIFRlbXBvcmFyeSBsb2cgZmlsZSBhcyBhIHdvcmthcm91bmQgdG8gcGFzcyBrb3BpYSBsb2dzIHRvIG91ciBsb2cgZnVuY3Rpb24Ka29waWFfbG9nZmlsZT0iJChta3RlbXAgLS10bXBkaXIga29waWEtc25hcHNob3QuWFhYWFgubG9nKSIKdGFpbCAtZiAiJGtvcGlhX2xvZ2ZpbGUiICYKa29waWEgc25hcHNob3QgY3JlYXRlIC0tcGFyYWxsZWw9NCAtLXRhZ3MgIiR7S09QSUFfVEFHU30iIC0tc3RhcnQtdGltZT0iJHRpbWVzdGFtcCIgLS1sb2ctZmlsZT0iJGtvcGlhX2xvZ2ZpbGUiIC0tZmlsZS1sb2ctbGV2ZWw9ImluZm8iICIke0JBQ0tVUF9ST09UfSIKY2F0ICIke2tvcGlhX2xvZ2ZpbGUlLmxvZ30iKi5sb2cgfCBsb2cgPiAvZGV2L251bGwKbG9nICJEb25lLiI=&#x27;), &#x27;nextcloud-backup.sh&#x27;)&quot;&gt;
          Download
        &lt;&#x2F;sl-button&gt;
      &lt;&#x2F;context-condition&gt;
      
    &lt;&#x2F;div&gt;

  

    
    &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;mariadb&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
      &lt;div class=&quot;codeblock&quot;&gt;
        
        
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;CgoKCgojIS9iaW4vYmFzaAoKc2V0IC1ldW8gcGlwZWZhaWwKCiMjIyA9PT09PT09PT09ICMjIwojIFByb2NlZHVyZQojIC0gVGhlIHNjcmlwdCB3aWxsIGNyZWF0ZSBzbmFwc2hvdHMgb2YgdGhlIGx2bSByb290IHZvbHVtZSBhbmQgdGhlIGJ0cmZzIHN1YnZvbHVtZSBiYWNraW5nIE5leHRjbG91ZCdzIHVzZXIgZmlsZXMuIFRoZW4gaXQgd2lsbCBzdGFydCBhbiBzcWxkdW1wIG9mIHRoZSBkYXRhYmFzZQojIC0gQWZ0ZXJ3YXJkcywgYWxsIDMgc25hcHNob3RzIHdpbGwgYmUgbW91bnRlZC9jb3BpZWQgaW4gdGhlIHNhbWUgcGFyZW50IGRpcmVjdG9yeSBhbmQgdXBsb2FkZWQgdG8gYSBrb3BpYSByZXBvc2l0b3J5CiMjIyA9PT09PT09PT09ICMjIwoKIyMjIENPTkZJR1VSQVRJT04KCiMgZmlsZSBmb3Igd3JpdGluZyBsb2dzLiBDYW4gYmUgbGVmdCBlbXB0eSB0byBvbmx5IGxvZyB0byBzdGRvdXQKTE9HX0ZJTEU9Ii92YXIvbG9nL25jLWJhY2t1cC5sb2ciCgojIyBOZXh0Y2xvdWQgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBjb25maWcKIyBQYXRoIHRvIHRoZSBidHJmcyBzdWJ2b2x1bWUgY29udGFpbmluZyB5b3VyIE5DIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKTkNfSU5TVEFMTF9WT0xVTUU9Ii92YXIvd3d3L25leHRjbG91ZCIKIyBQYXRoIHdoZXJlIHRoZSAodGVtcG9yYXJ5KSBidHJmcyBzbmFwc2hvdCBmb3IgdGhlIE5DIGluc3RhbGxhdGlvbiBkaXJlY3Rvcnkgc2hvdWxkIGJlIGNyZWF0ZWQKTkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIPSIvdmFyL3d3dy8ubmNfc25hcHNob3QiCiMgQWRqdXN0IHRoaXMgaWYgdGhlIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgaXMgbm90IGluIHRoZSByb290IG9mIHRoZSBiYWNraW5nIGZpbGVzeXN0ZW0gdm9sdW1lCk5DX0lOU1RBTExfUkVMQVRJVkVfUEFUSD0iLyIKCiMjIE5leHRjbG91ZCBmaWxlcyBkaXJlY3RvcnkgY29uZmlnCiMgUGF0aCB0byB0aGUgYnRyZnMgc3Vidm9sdW1lIGNvbnRhaW5pbmcgeW91ciBOQyBmaWxlcyBkaXJlY3RvcnkKVVNFUl9GSUxFU19WT0xVTUU9Ii9tbnQvZGF0YS9uY2RhdGEiCiMgUGF0aCB3aGVyZSB0aGUgKHRlbXBvcmFyeSkgYnRyZnMgc25hcHNob3QgZm9yIHRoZSBOQyBmaWxlcyBkaXJlY3Rvcnkgc2hvdWxkIGJlIGNyZWF0ZWQKVVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIPSIvbW50L2RhdGEvLm5jX2ZpbGVzX3NuYXBzaG90IgojIERCIGR1bXAgY29uZmlnCiMgUGF0aCB3aGVyZSB0byB0ZW1wb3JhcmlseSBzdG9yZSBkYXRhYmFzZSBkdW1wIChzaG91bGQgaGF2ZSBlbm91Z2ggZnJlZSBzcGFjZSkKU1FMX0RVTVBfVEFSR0VUX0RJUj0iL3Zhci9uYy1iYWNrdXAtZGIiCiMgV2hhdGV2ZXIgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYW4gc3FsZHVtcCAoaW5jbHVkaW5nIHBhcmFtZXRlcnMgbGlrZSB1c2VyLCBob3N0LCBkYm5hbWUsIHBhc3N3b3JkIGNmZyAuLi4pCiMgLSBJZiB5b3VyIERCIGlzIHJ1biBpbnNpZGUgZG9ja2VyLCBqdXN0IHByZXBlbmQgdGhlIGNvbW1hbmQgd2l0aCB3aGF0ZXZlciBpcyBuZWVkZWQgdG8gcnVuIGEgY29tbWFuZCBpbnNpZGUgdGhlIGNvbnRhaW5lciwKIyAgIGZvciBleGFtcGxlOiBTUUxEVU1QX0NNRD0oZG9ja2VyIGV4ZWMgPGNvbnRhaW5lcm5hbWU+IHBnX2R1bXAgLVUgcG9zdGdyZXMgLWQgbmMpCiMgLSBGb3IgTWFyaWFEQiAod2l0aCB0aGUgSW5ub0RCIGVuZ2luZSksIG1ha2Ugc3VyZSB0byB1c2UgLS1zaW5nbGUtdHJhbnNhY3Rpb24gKGFuZCBvcHRpb25hbGx5IC0tc2tpcC1sb2NrLXRhYmxlcyB0byBhdm9pZCBzbG93IGRvd25zIGZvciB5b3VyIHN5c3RlbSkgdG8gYXZvaWQgc2lkZSBlZmZlY3RzLgojICAgU2VlIGh0dHBzOi8vbXlzcWxkdW1wLmd1cnUvbXlzcWxkdW1wLXNpbmdsZS10cmFuc2FjdGlvbi1mbGFnLmh0bWwgZm9yIG1vcmUgaW5mby4KIyAtIEZvciBwb3N0Z3Jlc3FsLCBubyBhZGp1c3RlbW50cyBhcmUgbmVlZGVkCgojIENvbmZpZ3VyZSB0aGUgY29ubmVjdGlvbiBvcHRpb25zIGZvciB5b3VyIGRhdGFiYXNlOgpEQl9VU0VSPSJuZXh0Y2xvdWQiCkRCX05BTUU9Im5leHRjbG91ZCIKREJfUEFTU1dPUkQ9InBhc3N3b3JkIgpEQl9IT1NUPSIxMjcuMC4wLjEiCkRCX1BPUlQ9IjU0MzIiCgojIG15c3FsZHVtcCB3aWxsIGJlIHN1cHBsaWVkIHdpdGggdGhlIGRiIGNyZWRlbnRpYWxzIGJ5IHdyaXRpbmcgdGhlbSB0byB+Ly5teS5jbmYKTVlDTkZfUEFUSD0iJEhPTUUvLm15LmNuZiIKaW5zdGFsbCAtbSAwNjAwIDwoZWNobyAtZSAiW215c3FsZHVtcF1cbnVzZXI9JHtEQl9VU0VSfVxucGFzc3dvcmQ9JHtEQl9QQVNTV09SRH0iKSAiJHtNWUNORl9QQVRIfSIKU1FMRFVNUF9DTUQ9KG15c3FsZHVtcCAtLWhvc3Q9IiR7REJfSE9TVH0iIC0tcG9ydD0iJHtEQl9QT1JUfSIgLS1zaW5nbGUtdHJhbnNhY3Rpb24gLS1za2lwLWxvY2stdGFibGVzICIke0RCX05BTUV9IikKCgojIFNldHVwIGFueSB0YWdzIGhlcmUgdGhhdCB5b3Ugd2FudCB0byBiZSBhZGRlZCB0byB5b3VyIHlvdXIga29waWEgc25hcHNob3QgKGNvbW1hIHNlcGFyYXRlZCBpbiB0aGUgZm9ybWF0IGxhYmVsOnZhbHVlKQpLT1BJQV9UQUdTPSJqb2I6bmV4dGNsb3VkLWZ1bGwtYmFja3VwLG5jLWZpbGVzOnllcyxuYy1kYjp5ZXMsbmMtbmV4dGNsb3VkOnllcyIKCiMjIyBBRFZBTkNFRC9JTlRFUk5BTCBDT05GSUcgLSBvbmx5IGFkanVzdCBpZiB5b3UgYXJlIHN1cmUgdGhhdCB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZyAjIyMKTkNfSU5TVEFMTF9GU1RZUEU9ImJ0cmZzIgoKVVNFUl9GSUxFU19GU1RZUEU9ImJ0cmZzIgoKCiMgRk9SQ0UgVUlEIGFuZCBHSUQgdGhhdCBhbGwgZmlsZXMgZnJvbSB0aGUgbmV4dGNsb3VkIGluc3RhbGwgZGlyZWN0b3J5IHNob3VsZCBoYXZlIGluIHRoZSBiYWNrdXAgKGUuZy4gdGhhdCBvZiB5b3VyIHd3dy1kYXRhIHVzZXIgYW5kIGdyb3VwKQpOQ19PV05FUl9VSUQ9MzMKTkNfT1dORVJfR0lEPTMzCgojIEZPUkNFIFVJRCBhbmQgR0lEIHRoYXQgYWxsIHVzZXIgZmlsZXMgc2hvdWxkIGhhdmUgaW4gdGhlIGJhY2t1cCAoZS5nLiB0aGF0IG9mIHlvdXIgd3d3LWRhdGEgdXNlciBhbmQgZ3JvdXApClVTRVJfRklMRVNfT1dORVJfVUlEPTMzClVTRVJfRklMRVNfT1dORVJfR0lEPTMzCgojIENvbmZpZ3VyZSBwYXRoIHdoZXJlIGFsbCBwYXJ0cyBvZiB0aGUgYmFja3VwIHdpbGwgYmUgbWFwcGVkIHRvIGJlZm9yZSB0cmFuc2ZlcnJpbmcgd2l0aCBLb3BpYQpCQUNLVVBfUk9PVD0iL3J1bi9uYy1iYWNrdXAiCgoKIyMjIFlvdSB1c3VhbGx5IHNob3VsZCBub3QgbmVlZCB0byB0b3VjaCB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcwoKX1VTRVJfRklMRVNfQklORD0iJHtCQUNLVVBfUk9PVH0vbmNfZmlsZXMiCl9OQ19JTlNUQUxMX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L25leHRjbG91ZCIKX0RCX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L2RiIgoKIyBmaWxlIGZvciBrZWVwaW5nIHRyYWNrIG9mIHJ1bm5pbmcgYmFja3VwIG9wZXJhdGlvbnMKX1BJRF9GSUxFPSIvdmFyL3J1bi9uYy1iYWNrdXAucGlkIgoKCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgbG9nZ2luZyB0byBib3RoIHRoZSBsb2cgZmlsZSBhbmQgc3Rkb3V0CmxvZygpIHsKICBsb2NhbCBtc2cgbWVzc2FnZQoKICBmd2Q9KGVjaG8pCiAgaWYgW1sgLW4gIiRMT0dfRklMRSIgXV0KICB0aGVuCiAgZndkPSh0ZWUgLWEgIiRMT0dfRklMRSIpCiAgZmkKCiAgaWYgW1sgLXogIiR7MTotfSIgXV0KICB0aGVuCiAgd2hpbGUgcmVhZCAtciBtZXNzYWdlCiAgZG8KICBlY2hvICJcJCQkPiQoZGF0ZSAtSXMpPT4iICIke21lc3NhZ2VbQF19IiAyPiYxIHwgIiR7ZndkW0BdfSIKICBkb25lCiAgcmV0dXJuCiAgZmkKCiAgZWNobyAiXCQkJD4kKGRhdGUgLUlzKT0+IiAiJHtAfSIgMj4mMSB8ICIke2Z3ZFtAXX0iCn0KCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgY2xlYW5pbmcgdXAgc25hcHNob3RzLCBwaWQgZmlsZSwgZXRjLgpjbGVhbnVwKCkgewogIHNldCArZXUKICBlY2hvICJDbGVhbnVwLi4uIgogIAogIHJtIC1yZiAiJHtQR1BBU1NfUEFUSH0iCiAgCiAgCiAgdW1vdW50ICIkX0RCX0JJTkQiCiAgdW1vdW50ICIkX05DX0lOU1RBTExfQklORCIKICB1bW91bnQgIiRfVVNFUl9GSUxFU19CSU5EIgoKICBbWyAteiAiJHtVU0VSX0ZJTEVTX01PVU5UfSIgXV0gfHwgdW1vdW50ICIkVVNFUl9GSUxFU19NT1VOVCIKICBbWyAteiAiJHtOQ19JTlNUQUxMX01PVU5UfSIgXV0gfHwgdW1vdW50ICIkTkNfSU5TVEFMTF9NT1VOVCIKCiAgcm0gLXJmICIkU1FMX0RVTVBfVEFSR0VUX0RJUiI7CiAgIyBDbGVhbnVwIE5DIGluc3RhbGwgZGlyIHNuYXBzaG90CiAgCiAgYnRyZnMgc3Vidm9sdW1lIGRlbGV0ZSAiJE5DX0lOU1RBTExfU05BUFNIT1RfUEFUSCIKICAKICAjIENsZWFudXAgTkMgZmlsZXMgc25hcHNob3QKICAKICBidHJmcyBzdWJ2b2x1bWUgZGVsZXRlICIkVVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIIgogIAogIAogICMgUmVtb3ZlIFBJRCBmaWxlCiAgcm0gIiRfUElEX0ZJTEUiCiAgZWNobyAiRG9uZS4iCn0KCgoKIyMgRGV0ZWN0IHdoZXRoZXIgYSBiYWNrdXAgaXMgc3RpbGwgcnVubmluZyAoYW5kIGFib3J0IGluIHRoaXMgY2FzZSkKIyBJZiB0aGUgYmFja3VwIGhhcyBiZWVuIHJ1bm5pbmcgZm9yIG1vcmUgdGhhbiAxMCBob3VycywgaXQgaXMgYXNzdW1lZCB0byBiZSBzdHVjayBhbmQgaXRzIHByb2Nlc3Mga2lsbGVkCmlmIFtbIC1mICIkX1BJRF9GSUxFIiBdXSAmJiBwcyAtcCAiJChjYXQgIiRfUElEX0ZJTEUiKSIgPiAvZGV2L251bGwKdGhlbgogIGVsYXBzZWQ9IiQocHMgLW8gZXRpbWVzPSAtcCAiJChjYXQgIiRfUElEX0ZJTEUiKSIpIgogIGlmIFtbICIke2VsYXBzZWQvLyAvfSIgLWd0ICQoKDEwICogMzYwMCkpIF1dCiAgdGhlbgogICAgbG9nICJEZXRlY3RlZCBiYWNrdXAgcHJvY2VzcyBnb2luZyBmb3Igb3ZlciAxMCBob3Vycywga2lsbGluZyBpdC4uLiIKICAgIGtpbGwgLTkgIiQoY2F0ICIkX1BJRF9GSUxFIikiCiAgZWxzZQogICAgbG9nICJPbmdvaW5nIGJhY2t1cCBwcm9jZXNzIGRldGVjdGVkLiBBYm9ydGluZy4uLiIKICAgIGV4aXQgMAogIGZpCmZpCgojIGNsZWFudXAgbGVmdG92ZXJzIGZyb20gbGFzdCBydW4gaWYgYW55CmNsZWFudXAgPiAvZGV2L251bGwgMj4mMSB8fDoKCiMgU2F2ZSBjdXJyZW50IHByb2Nlc3MgaWQgdG8gcGlkIGZpbGUKZWNobyAiJCQiID4gIiRfUElEX0ZJTEUiCgojIGNsZWFudXAgd2lsbCBiZSBydW4gYXQgdGhlIGVuZCBvZiB0aGUgc2NyaXB0IHdoZXRoZXIgaXQgZmFpbHMgb3Igc3VjY2VlZHMKdHJhcCAnY2xlYW51cCAyPiYxIHwgbG9nJyBFWElUCgojIE1ha2Ugc3VyZSBkaXJlY3RvcmllcyBleGlzdApta2RpciAtcCAiJF9VU0VSX0ZJTEVTX0JJTkQiICIkX05DX0lOU1RBTExfQklORCIgIiRfREJfQklORCIgIiRVU0VSX0ZJTEVTX01PVU5UIiAiJE5DX0lOU1RBTExfTU9VTlQiICIkU1FMX0RVTVBfVEFSR0VUX0RJUiIKCnRpbWVzdGFtcD0iJChkYXRlICIrJVktJW0tJWQgJUg6JU06JVMgJVoiKSIKbG9nICJTdGFydGluZyBOZXh0Y2xvdWQgU25hcHNob3QgYXQgJHRpbWVzdGFtcCIKCiMgU25hcHNob3QgZGlza3MKbG9nICJDcmVhdGUgc25hcHNob3RzLi4uIgoKYnRyZnMgc3Vidm9sdW1lIHNuYXBzaG90IC1yICIke05DX0lOU1RBTExfVk9MVU1FfSIgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfSIgMj4mMSB8IGxvZwoKCmJ0cmZzIHN1YnZvbHVtZSBzbmFwc2hvdCAtciAiJHtVU0VSX0ZJTEVTX1ZPTFVNRX0iICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCmxvZyAiRG9uZS4iCgojIER1bXAgREIKbG9nICJDcmVhdGUgREIgZHVtcC4uLiIKIiR7U1FMRFVNUF9DTURbQF19IiA+ICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9L2RiLnNxbCIKbG9nICJEb25lLiIKCiMgQmluZCBtb3VudCBhbGwgaW5kaXZpZHVhbCBzbmFwc2hvdHMgaW50byBhIGNvbW1vbiBwYXJlbnQgZGlyZWN0b3J5CmxvZyAiQ3JlYXRlIGJpbmQgbW91bnRzLi4uIgptb3VudCAtLWJpbmQgLW8gInJvLHVpZD0ke05DX09XTkVSX1VJRH0sZ2lkPSR7TkNfT1dORVJfR0lEfSIgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfS8ke05DX0lOU1RBTExfUkVMQVRJVkVfUEFUSCMvfSIgICAgICIke19OQ19JTlNUQUxMX0JJTkR9IiAgICAgMj4mMSB8IGxvZwptb3VudCAtLWJpbmQgLW8gcm8sdWlkPSR7VVNFUl9GSUxFU19PV05FUl9VSUR9LGdpZD0ke1VTRVJfRklMRVNfT1dORVJfR0lEfSAgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfS8ke1VTRVJfRklMRVNfUkVMQVRJVkVfUEFUSCMvfSIgICAgICIke19VU0VSX0ZJTEVTX0JJTkR9IiAgICAgMj4mMSB8IGxvZwptb3VudCAtLWJpbmQgLW8gcm8sdWlkPXJvb3QsZ2lkPXJvb3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke19EQl9CSU5EfSIgICAgICAgICAgICAgMj4mMSB8IGxvZwpsb2cgIkRvbmUuIgoKIyBDcmVhdGUgdGhlIGZpbmFsIHNuYXBzaG90IHdpdGgga29waWEgdXNpbmcgdGhlIGRlZmF1bHQga29waWEgcmVwb3NpdG9yeSBjb25maWcgKGlmIG5lZWRlZCwgeW91IGNhbiBjaGFuZ2UgdGhlIGNvbmZpZyBmaWxlIHdpdGggdGhlIC0tY29uZmlnLWZpbGUgcGFyYW1ldGVyKQpsb2cgIkNyZWF0ZSBrb3BpYSBzbmFwc2hvdC4uLiIKIyBUZW1wb3JhcnkgbG9nIGZpbGUgYXMgYSB3b3JrYXJvdW5kIHRvIHBhc3Mga29waWEgbG9ncyB0byBvdXIgbG9nIGZ1bmN0aW9uCmtvcGlhX2xvZ2ZpbGU9IiQobWt0ZW1wIC0tdG1wZGlyIGtvcGlhLXNuYXBzaG90LlhYWFhYLmxvZykiCnRhaWwgLWYgIiRrb3BpYV9sb2dmaWxlIiAmCmtvcGlhIHNuYXBzaG90IGNyZWF0ZSAtLXBhcmFsbGVsPTQgLS10YWdzICIke0tPUElBX1RBR1N9IiAtLXN0YXJ0LXRpbWU9IiR0aW1lc3RhbXAiIC0tbG9nLWZpbGU9IiRrb3BpYV9sb2dmaWxlIiAtLWZpbGUtbG9nLWxldmVsPSJpbmZvIiAiJHtCQUNLVVBfUk9PVH0iCmNhdCAiJHtrb3BpYV9sb2dmaWxlJS5sb2d9IioubG9nIHwgbG9nID4gL2Rldi9udWxsCmxvZyAiRG9uZS4i&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-linenos data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#!&#x2F;bin&#x2F;bash
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set -euo pipefail
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Procedure
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - The script will create snapshots of the lvm root volume and the btrfs subvolume backing Nextcloud&amp;#39;s user files. Then it will start an sqldump of the database
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - Afterwards, all 3 snapshots will be mounted&#x2F;copied in the same parent directory and uploaded to a kopia repository
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### CONFIGURATION
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for writing logs. Can be left empty to only log to stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;log&#x2F;nc-backup.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud installation directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;17&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path to the btrfs subvolume containing your NC installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;18&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;www&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;19&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where the (temporary) btrfs snapshot for the NC installation directory should be created
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;20&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;www&#x2F;.nc_snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;21&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust this if the nc installation directory is not in the root of the backing filesystem volume
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;22&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;23&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;24&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud files directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;25&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path to the btrfs subvolume containing your NC files directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;26&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;mnt&#x2F;data&#x2F;ncdata&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;27&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where the (temporary) btrfs snapshot for the NC files directory should be created
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;28&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;mnt&#x2F;data&#x2F;.nc_files_snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;29&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# DB dump config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;30&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where to temporarily store database dump (should have enough free space)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;31&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;nc-backup-db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;32&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Whatever command can be used to create an sqldump (including parameters like user, host, dbname, password cfg ...)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;33&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - If your DB is run inside docker, just prepend the command with whatever is needed to run a command inside the container,
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;34&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   for example: SQLDUMP_CMD=(docker exec &amp;lt;containername&amp;gt; pg_dump -U postgres -d nc)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;35&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For MariaDB (with the InnoDB engine), make sure to use --single-transaction (and optionally --skip-lock-tables to avoid slow downs for your system) to avoid side effects.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;36&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   See https:&#x2F;&#x2F;mysqldump.guru&#x2F;mysqldump-single-transaction-flag.html for more info.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;37&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For postgresql, no adjustemnts are needed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;38&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;39&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure the connection options for your database:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;40&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;41&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;42&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;43&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;127.0.0.1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;44&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;45&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;46&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# mysqldump will be supplied with the db credentials by writing them to ~&#x2F;.my.cnf
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;47&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;MYCNF_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.my.cnf&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;48&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;e &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[mysqldump]\nuser=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;\npassword=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;MYCNF_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;49&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;mysqldump --host=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; --port=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; --single-transaction --skip-lock-tables &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;50&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;51&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;52&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Setup any tags here that you want to be added to your your kopia snapshot (comma separated in the format label:value)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;53&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;job:nextcloud-full-backup,nc-files:yes,nc-db:yes,nc-nextcloud:yes&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;54&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;55&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ADVANCED&#x2F;INTERNAL CONFIG - only adjust if you are sure that you know what you&amp;#39;re doing ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;56&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;btrfs&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;57&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;58&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;btrfs&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;59&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;60&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;61&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all files from the nextcloud install directory should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;62&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;63&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;64&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;65&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all user files should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;66&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;67&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;68&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;69&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure path where all parts of the backup will be mapped to before transferring with Kopia
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;70&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;nc-backup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;71&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;72&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;73&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### You usually should not need to touch the following variables
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;74&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;75&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;76&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;77&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;78&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;79&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for keeping track of running backup operations
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;80&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;run&#x2F;nc-backup.pid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;81&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;82&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;83&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for logging to both the log file and stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;84&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;85&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;msg message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;86&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;87&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;echo&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;88&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;89&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;90&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;tee -a &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;91&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;92&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;93&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;:-}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;94&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;95&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;while &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;read &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;96&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;do
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;97&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;message&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;98&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;done
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;99&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;return
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;100&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;101&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;102&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;103&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;104&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;105&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for cleaning up snapshots, pid file, etc.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;106&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;107&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;+&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;eu
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;108&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Cleanup...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;109&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;110&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;111&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;112&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;113&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;114&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;115&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;116&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;117&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;118&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;119&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;120&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;121&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC install dir snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;122&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;123&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume delete &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;124&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;125&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC files snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;126&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;127&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume delete &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;128&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;129&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;130&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove PID file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;131&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;132&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;133&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;134&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;135&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;136&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;137&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Detect whether a backup is still running (and abort in this case)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;138&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# If the backup has been running for more than 10 hours, it is assumed to be stuck and its process killed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;139&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;140&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;141&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; etimes=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;142&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;&#x2F; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;}&amp;quot; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;gt &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$((&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;10 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;3600&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)) &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;143&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;144&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Detected backup process going for over 10 hours, killing it...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;145&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kill -9 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;146&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;else
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;147&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Ongoing backup process detected. Aborting...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;148&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;exit 0
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;149&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;150&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;151&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;152&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup leftovers from last run if any
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;153&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;||&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;154&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;155&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Save current process id to pid file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;156&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;gt; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;157&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;158&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup will be run at the end of the script whether it fails or succeeds
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;159&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;trap &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;cleanup 2&amp;gt;&amp;amp;1 | log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; EXIT
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;160&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;161&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Make sure directories exist
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;162&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;163&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;164&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;+%Y-%m-%d %H:%M:%S %Z&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;165&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Starting Nextcloud Snapshot at &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;166&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;167&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Snapshot disks
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;168&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create snapshots...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;169&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;170&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;171&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;172&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;173&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;174&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;175&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;176&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;177&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Dump DB
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;178&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create DB dump...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;179&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &amp;gt; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;180&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;181&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;182&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Bind mount all individual snapshots into a common parent directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;183&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create bind mounts...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;184&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;185&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}  &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;186&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=root,gid=root                                        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;                                        &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;             &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;187&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;188&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;189&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Create the final snapshot with kopia using the default kopia repository config (if needed, you can change the config file with the --config-file parameter)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;190&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create kopia snapshot...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;191&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Temporary log file as a workaround to pass kopia logs to our log function
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;192&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mktemp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tmpdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; kopia-snapshot.XXXXX.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;193&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;tail&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;amp;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;194&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot create&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;parallel&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tags &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;start-time&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;log-file&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;file-log-level&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;info&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;195&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;.log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;196&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;

      &lt;&#x2F;div&gt;
    &lt;&#x2F;context-condition&gt;
  

    
    &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;postgres&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
      &lt;div class=&quot;codeblock&quot;&gt;
        
        
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;CgoKCgojIS9iaW4vYmFzaAoKc2V0IC1ldW8gcGlwZWZhaWwKCiMjIyA9PT09PT09PT09ICMjIwojIFByb2NlZHVyZQojIC0gVGhlIHNjcmlwdCB3aWxsIGNyZWF0ZSBzbmFwc2hvdHMgb2YgdGhlIGx2bSByb290IHZvbHVtZSBhbmQgdGhlIGJ0cmZzIHN1YnZvbHVtZSBiYWNraW5nIE5leHRjbG91ZCdzIHVzZXIgZmlsZXMuIFRoZW4gaXQgd2lsbCBzdGFydCBhbiBzcWxkdW1wIG9mIHRoZSBkYXRhYmFzZQojIC0gQWZ0ZXJ3YXJkcywgYWxsIDMgc25hcHNob3RzIHdpbGwgYmUgbW91bnRlZC9jb3BpZWQgaW4gdGhlIHNhbWUgcGFyZW50IGRpcmVjdG9yeSBhbmQgdXBsb2FkZWQgdG8gYSBrb3BpYSByZXBvc2l0b3J5CiMjIyA9PT09PT09PT09ICMjIwoKIyMjIENPTkZJR1VSQVRJT04KCiMgZmlsZSBmb3Igd3JpdGluZyBsb2dzLiBDYW4gYmUgbGVmdCBlbXB0eSB0byBvbmx5IGxvZyB0byBzdGRvdXQKTE9HX0ZJTEU9Ii92YXIvbG9nL25jLWJhY2t1cC5sb2ciCgojIyBOZXh0Y2xvdWQgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBjb25maWcKIyBQYXRoIHRvIHRoZSBidHJmcyBzdWJ2b2x1bWUgY29udGFpbmluZyB5b3VyIE5DIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKTkNfSU5TVEFMTF9WT0xVTUU9Ii92YXIvd3d3L25leHRjbG91ZCIKIyBQYXRoIHdoZXJlIHRoZSAodGVtcG9yYXJ5KSBidHJmcyBzbmFwc2hvdCBmb3IgdGhlIE5DIGluc3RhbGxhdGlvbiBkaXJlY3Rvcnkgc2hvdWxkIGJlIGNyZWF0ZWQKTkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIPSIvdmFyL3d3dy8ubmNfc25hcHNob3QiCiMgQWRqdXN0IHRoaXMgaWYgdGhlIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgaXMgbm90IGluIHRoZSByb290IG9mIHRoZSBiYWNraW5nIGZpbGVzeXN0ZW0gdm9sdW1lCk5DX0lOU1RBTExfUkVMQVRJVkVfUEFUSD0iLyIKCiMjIE5leHRjbG91ZCBmaWxlcyBkaXJlY3RvcnkgY29uZmlnCiMgUGF0aCB0byB0aGUgYnRyZnMgc3Vidm9sdW1lIGNvbnRhaW5pbmcgeW91ciBOQyBmaWxlcyBkaXJlY3RvcnkKVVNFUl9GSUxFU19WT0xVTUU9Ii9tbnQvZGF0YS9uY2RhdGEiCiMgUGF0aCB3aGVyZSB0aGUgKHRlbXBvcmFyeSkgYnRyZnMgc25hcHNob3QgZm9yIHRoZSBOQyBmaWxlcyBkaXJlY3Rvcnkgc2hvdWxkIGJlIGNyZWF0ZWQKVVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIPSIvbW50L2RhdGEvLm5jX2ZpbGVzX3NuYXBzaG90IgojIERCIGR1bXAgY29uZmlnCiMgUGF0aCB3aGVyZSB0byB0ZW1wb3JhcmlseSBzdG9yZSBkYXRhYmFzZSBkdW1wIChzaG91bGQgaGF2ZSBlbm91Z2ggZnJlZSBzcGFjZSkKU1FMX0RVTVBfVEFSR0VUX0RJUj0iL3Zhci9uYy1iYWNrdXAtZGIiCiMgV2hhdGV2ZXIgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYW4gc3FsZHVtcCAoaW5jbHVkaW5nIHBhcmFtZXRlcnMgbGlrZSB1c2VyLCBob3N0LCBkYm5hbWUsIHBhc3N3b3JkIGNmZyAuLi4pCiMgLSBJZiB5b3VyIERCIGlzIHJ1biBpbnNpZGUgZG9ja2VyLCBqdXN0IHByZXBlbmQgdGhlIGNvbW1hbmQgd2l0aCB3aGF0ZXZlciBpcyBuZWVkZWQgdG8gcnVuIGEgY29tbWFuZCBpbnNpZGUgdGhlIGNvbnRhaW5lciwKIyAgIGZvciBleGFtcGxlOiBTUUxEVU1QX0NNRD0oZG9ja2VyIGV4ZWMgPGNvbnRhaW5lcm5hbWU+IHBnX2R1bXAgLVUgcG9zdGdyZXMgLWQgbmMpCiMgLSBGb3IgTWFyaWFEQiAod2l0aCB0aGUgSW5ub0RCIGVuZ2luZSksIG1ha2Ugc3VyZSB0byB1c2UgLS1zaW5nbGUtdHJhbnNhY3Rpb24gKGFuZCBvcHRpb25hbGx5IC0tc2tpcC1sb2NrLXRhYmxlcyB0byBhdm9pZCBzbG93IGRvd25zIGZvciB5b3VyIHN5c3RlbSkgdG8gYXZvaWQgc2lkZSBlZmZlY3RzLgojICAgU2VlIGh0dHBzOi8vbXlzcWxkdW1wLmd1cnUvbXlzcWxkdW1wLXNpbmdsZS10cmFuc2FjdGlvbi1mbGFnLmh0bWwgZm9yIG1vcmUgaW5mby4KIyAtIEZvciBwb3N0Z3Jlc3FsLCBubyBhZGp1c3RlbW50cyBhcmUgbmVlZGVkCgojIENvbmZpZ3VyZSB0aGUgY29ubmVjdGlvbiBvcHRpb25zIGZvciB5b3VyIGRhdGFiYXNlOgpEQl9VU0VSPSJuZXh0Y2xvdWQiCkRCX05BTUU9Im5leHRjbG91ZCIKREJfUEFTU1dPUkQ9InBhc3N3b3JkIgpEQl9IT1NUPSIxMjcuMC4wLjEiCkRCX1BPUlQ9IjU0MzIiCgoKIyBwZ19kdW1wIHdpbGwgYmUgc3VwcGxpZWQgd2l0aCB0aGUgY29ubmVjdGlvbiBvcHRpb25zIGJ5IHdyaXRpbmcgdGhlbSB0byB+Ly5wZ3Bhc3MKUEdQQVNTX1BBVEg9IiR7SE9NRX0vLnBncGFzcyIKaW5zdGFsbCAtbSAwNjAwIDwoZWNobyAiJHtEQl9IT1NUfToke0RCX1BPUlR9OiR7REJfTkFNRX06JHtEQl9VU0VSfToke0RCX1BBU1NXT1JEfSIpICIke1BHUEFTU19QQVRIfSIKU1FMRFVNUF9DTUQ9KHBnX2R1bXAgIiR7REJfTkFNRX0iKQoKIyBTZXR1cCBhbnkgdGFncyBoZXJlIHRoYXQgeW91IHdhbnQgdG8gYmUgYWRkZWQgdG8geW91ciB5b3VyIGtvcGlhIHNuYXBzaG90IChjb21tYSBzZXBhcmF0ZWQgaW4gdGhlIGZvcm1hdCBsYWJlbDp2YWx1ZSkKS09QSUFfVEFHUz0iam9iOm5leHRjbG91ZC1mdWxsLWJhY2t1cCxuYy1maWxlczp5ZXMsbmMtZGI6eWVzLG5jLW5leHRjbG91ZDp5ZXMiCgojIyMgQURWQU5DRUQvSU5URVJOQUwgQ09ORklHIC0gb25seSBhZGp1c3QgaWYgeW91IGFyZSBzdXJlIHRoYXQgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcgIyMjCk5DX0lOU1RBTExfRlNUWVBFPSJidHJmcyIKClVTRVJfRklMRVNfRlNUWVBFPSJidHJmcyIKCgojIEZPUkNFIFVJRCBhbmQgR0lEIHRoYXQgYWxsIGZpbGVzIGZyb20gdGhlIG5leHRjbG91ZCBpbnN0YWxsIGRpcmVjdG9yeSBzaG91bGQgaGF2ZSBpbiB0aGUgYmFja3VwIChlLmcuIHRoYXQgb2YgeW91ciB3d3ctZGF0YSB1c2VyIGFuZCBncm91cCkKTkNfT1dORVJfVUlEPTMzCk5DX09XTkVSX0dJRD0zMwoKIyBGT1JDRSBVSUQgYW5kIEdJRCB0aGF0IGFsbCB1c2VyIGZpbGVzIHNob3VsZCBoYXZlIGluIHRoZSBiYWNrdXAgKGUuZy4gdGhhdCBvZiB5b3VyIHd3dy1kYXRhIHVzZXIgYW5kIGdyb3VwKQpVU0VSX0ZJTEVTX09XTkVSX1VJRD0zMwpVU0VSX0ZJTEVTX09XTkVSX0dJRD0zMwoKIyBDb25maWd1cmUgcGF0aCB3aGVyZSBhbGwgcGFydHMgb2YgdGhlIGJhY2t1cCB3aWxsIGJlIG1hcHBlZCB0byBiZWZvcmUgdHJhbnNmZXJyaW5nIHdpdGggS29waWEKQkFDS1VQX1JPT1Q9Ii9ydW4vbmMtYmFja3VwIgoKCiMjIyBZb3UgdXN1YWxseSBzaG91bGQgbm90IG5lZWQgdG8gdG91Y2ggdGhlIGZvbGxvd2luZyB2YXJpYWJsZXMKCl9VU0VSX0ZJTEVTX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L25jX2ZpbGVzIgpfTkNfSU5TVEFMTF9CSU5EPSIke0JBQ0tVUF9ST09UfS9uZXh0Y2xvdWQiCl9EQl9CSU5EPSIke0JBQ0tVUF9ST09UfS9kYiIKCiMgZmlsZSBmb3Iga2VlcGluZyB0cmFjayBvZiBydW5uaW5nIGJhY2t1cCBvcGVyYXRpb25zCl9QSURfRklMRT0iL3Zhci9ydW4vbmMtYmFja3VwLnBpZCIKCgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGxvZ2dpbmcgdG8gYm90aCB0aGUgbG9nIGZpbGUgYW5kIHN0ZG91dApsb2coKSB7CiAgbG9jYWwgbXNnIG1lc3NhZ2UKCiAgZndkPShlY2hvKQogIGlmIFtbIC1uICIkTE9HX0ZJTEUiIF1dCiAgdGhlbgogIGZ3ZD0odGVlIC1hICIkTE9HX0ZJTEUiKQogIGZpCgogIGlmIFtbIC16ICIkezE6LX0iIF1dCiAgdGhlbgogIHdoaWxlIHJlYWQgLXIgbWVzc2FnZQogIGRvCiAgZWNobyAiXCQkJD4kKGRhdGUgLUlzKT0+IiAiJHttZXNzYWdlW0BdfSIgMj4mMSB8ICIke2Z3ZFtAXX0iCiAgZG9uZQogIHJldHVybgogIGZpCgogIGVjaG8gIlwkJCQ+JChkYXRlIC1Jcyk9PiIgIiR7QH0iIDI+JjEgfCAiJHtmd2RbQF19Igp9CgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGNsZWFuaW5nIHVwIHNuYXBzaG90cywgcGlkIGZpbGUsIGV0Yy4KY2xlYW51cCgpIHsKICBzZXQgK2V1CiAgZWNobyAiQ2xlYW51cC4uLiIKICAKICBybSAtcmYgIiR7UEdQQVNTX1BBVEh9IgogIAogIAogIHVtb3VudCAiJF9EQl9CSU5EIgogIHVtb3VudCAiJF9OQ19JTlNUQUxMX0JJTkQiCiAgdW1vdW50ICIkX1VTRVJfRklMRVNfQklORCIKCiAgW1sgLXogIiR7VVNFUl9GSUxFU19NT1VOVH0iIF1dIHx8IHVtb3VudCAiJFVTRVJfRklMRVNfTU9VTlQiCiAgW1sgLXogIiR7TkNfSU5TVEFMTF9NT1VOVH0iIF1dIHx8IHVtb3VudCAiJE5DX0lOU1RBTExfTU9VTlQiCgogIHJtIC1yZiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiOwogICMgQ2xlYW51cCBOQyBpbnN0YWxsIGRpciBzbmFwc2hvdAogIAogIGJ0cmZzIHN1YnZvbHVtZSBkZWxldGUgIiROQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEgiCiAgCiAgIyBDbGVhbnVwIE5DIGZpbGVzIHNuYXBzaG90CiAgCiAgYnRyZnMgc3Vidm9sdW1lIGRlbGV0ZSAiJFVTRVJfRklMRVNfU05BUFNIT1RfUEFUSCIKICAKICAKICAjIFJlbW92ZSBQSUQgZmlsZQogIHJtICIkX1BJRF9GSUxFIgogIGVjaG8gIkRvbmUuIgp9CgoKCiMjIERldGVjdCB3aGV0aGVyIGEgYmFja3VwIGlzIHN0aWxsIHJ1bm5pbmcgKGFuZCBhYm9ydCBpbiB0aGlzIGNhc2UpCiMgSWYgdGhlIGJhY2t1cCBoYXMgYmVlbiBydW5uaW5nIGZvciBtb3JlIHRoYW4gMTAgaG91cnMsIGl0IGlzIGFzc3VtZWQgdG8gYmUgc3R1Y2sgYW5kIGl0cyBwcm9jZXNzIGtpbGxlZAppZiBbWyAtZiAiJF9QSURfRklMRSIgXV0gJiYgcHMgLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiID4gL2Rldi9udWxsCnRoZW4KICBlbGFwc2VkPSIkKHBzIC1vIGV0aW1lcz0gLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiKSIKICBpZiBbWyAiJHtlbGFwc2VkLy8gL30iIC1ndCAkKCgxMCAqIDM2MDApKSBdXQogIHRoZW4KICAgIGxvZyAiRGV0ZWN0ZWQgYmFja3VwIHByb2Nlc3MgZ29pbmcgZm9yIG92ZXIgMTAgaG91cnMsIGtpbGxpbmcgaXQuLi4iCiAgICBraWxsIC05ICIkKGNhdCAiJF9QSURfRklMRSIpIgogIGVsc2UKICAgIGxvZyAiT25nb2luZyBiYWNrdXAgcHJvY2VzcyBkZXRlY3RlZC4gQWJvcnRpbmcuLi4iCiAgICBleGl0IDAKICBmaQpmaQoKIyBjbGVhbnVwIGxlZnRvdmVycyBmcm9tIGxhc3QgcnVuIGlmIGFueQpjbGVhbnVwID4gL2Rldi9udWxsIDI+JjEgfHw6CgojIFNhdmUgY3VycmVudCBwcm9jZXNzIGlkIHRvIHBpZCBmaWxlCmVjaG8gIiQkIiA+ICIkX1BJRF9GSUxFIgoKIyBjbGVhbnVwIHdpbGwgYmUgcnVuIGF0IHRoZSBlbmQgb2YgdGhlIHNjcmlwdCB3aGV0aGVyIGl0IGZhaWxzIG9yIHN1Y2NlZWRzCnRyYXAgJ2NsZWFudXAgMj4mMSB8IGxvZycgRVhJVAoKIyBNYWtlIHN1cmUgZGlyZWN0b3JpZXMgZXhpc3QKbWtkaXIgLXAgIiRfVVNFUl9GSUxFU19CSU5EIiAiJF9OQ19JTlNUQUxMX0JJTkQiICIkX0RCX0JJTkQiICIkVVNFUl9GSUxFU19NT1VOVCIgIiROQ19JTlNUQUxMX01PVU5UIiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiCgp0aW1lc3RhbXA9IiQoZGF0ZSAiKyVZLSVtLSVkICVIOiVNOiVTICVaIikiCmxvZyAiU3RhcnRpbmcgTmV4dGNsb3VkIFNuYXBzaG90IGF0ICR0aW1lc3RhbXAiCgojIFNuYXBzaG90IGRpc2tzCmxvZyAiQ3JlYXRlIHNuYXBzaG90cy4uLiIKCmJ0cmZzIHN1YnZvbHVtZSBzbmFwc2hvdCAtciAiJHtOQ19JTlNUQUxMX1ZPTFVNRX0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCgpidHJmcyBzdWJ2b2x1bWUgc25hcHNob3QgLXIgIiR7VVNFUl9GSUxFU19WT0xVTUV9IiAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IiAyPiYxIHwgbG9nCgpsb2cgIkRvbmUuIgoKIyBEdW1wIERCCmxvZyAiQ3JlYXRlIERCIGR1bXAuLi4iCiIke1NRTERVTVBfQ01EW0BdfSIgPiAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfS9kYi5zcWwiCmxvZyAiRG9uZS4iCgojIEJpbmQgbW91bnQgYWxsIGluZGl2aWR1YWwgc25hcHNob3RzIGludG8gYSBjb21tb24gcGFyZW50IGRpcmVjdG9yeQpsb2cgIkNyZWF0ZSBiaW5kIG1vdW50cy4uLiIKbW91bnQgLS1iaW5kIC1vICJybyx1aWQ9JHtOQ19PV05FUl9VSUR9LGdpZD0ke05DX09XTkVSX0dJRH0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0vJHtOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfTkNfSU5TVEFMTF9CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD0ke1VTRVJfRklMRVNfT1dORVJfVUlEfSxnaWQ9JHtVU0VSX0ZJTEVTX09XTkVSX0dJRH0gICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0vJHtVU0VSX0ZJTEVTX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfVVNFUl9GSUxFU19CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD1yb290LGdpZD1yb290ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtfREJfQklORH0iICAgICAgICAgICAgIDI+JjEgfCBsb2cKbG9nICJEb25lLiIKCiMgQ3JlYXRlIHRoZSBmaW5hbCBzbmFwc2hvdCB3aXRoIGtvcGlhIHVzaW5nIHRoZSBkZWZhdWx0IGtvcGlhIHJlcG9zaXRvcnkgY29uZmlnIChpZiBuZWVkZWQsIHlvdSBjYW4gY2hhbmdlIHRoZSBjb25maWcgZmlsZSB3aXRoIHRoZSAtLWNvbmZpZy1maWxlIHBhcmFtZXRlcikKbG9nICJDcmVhdGUga29waWEgc25hcHNob3QuLi4iCiMgVGVtcG9yYXJ5IGxvZyBmaWxlIGFzIGEgd29ya2Fyb3VuZCB0byBwYXNzIGtvcGlhIGxvZ3MgdG8gb3VyIGxvZyBmdW5jdGlvbgprb3BpYV9sb2dmaWxlPSIkKG1rdGVtcCAtLXRtcGRpciBrb3BpYS1zbmFwc2hvdC5YWFhYWC5sb2cpIgp0YWlsIC1mICIka29waWFfbG9nZmlsZSIgJgprb3BpYSBzbmFwc2hvdCBjcmVhdGUgLS1wYXJhbGxlbD00IC0tdGFncyAiJHtLT1BJQV9UQUdTfSIgLS1zdGFydC10aW1lPSIkdGltZXN0YW1wIiAtLWxvZy1maWxlPSIka29waWFfbG9nZmlsZSIgLS1maWxlLWxvZy1sZXZlbD0iaW5mbyIgIiR7QkFDS1VQX1JPT1R9IgpjYXQgIiR7a29waWFfbG9nZmlsZSUubG9nfSIqLmxvZyB8IGxvZyA+IC9kZXYvbnVsbApsb2cgIkRvbmUuIg==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-linenos data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#!&#x2F;bin&#x2F;bash
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set -euo pipefail
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Procedure
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - The script will create snapshots of the lvm root volume and the btrfs subvolume backing Nextcloud&amp;#39;s user files. Then it will start an sqldump of the database
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - Afterwards, all 3 snapshots will be mounted&#x2F;copied in the same parent directory and uploaded to a kopia repository
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### CONFIGURATION
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for writing logs. Can be left empty to only log to stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;log&#x2F;nc-backup.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud installation directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;17&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path to the btrfs subvolume containing your NC installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;18&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;www&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;19&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where the (temporary) btrfs snapshot for the NC installation directory should be created
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;20&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;www&#x2F;.nc_snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;21&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust this if the nc installation directory is not in the root of the backing filesystem volume
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;22&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;23&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;24&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud files directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;25&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path to the btrfs subvolume containing your NC files directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;26&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;mnt&#x2F;data&#x2F;ncdata&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;27&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where the (temporary) btrfs snapshot for the NC files directory should be created
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;28&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;mnt&#x2F;data&#x2F;.nc_files_snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;29&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# DB dump config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;30&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where to temporarily store database dump (should have enough free space)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;31&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;nc-backup-db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;32&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Whatever command can be used to create an sqldump (including parameters like user, host, dbname, password cfg ...)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;33&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - If your DB is run inside docker, just prepend the command with whatever is needed to run a command inside the container,
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;34&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   for example: SQLDUMP_CMD=(docker exec &amp;lt;containername&amp;gt; pg_dump -U postgres -d nc)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;35&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For MariaDB (with the InnoDB engine), make sure to use --single-transaction (and optionally --skip-lock-tables to avoid slow downs for your system) to avoid side effects.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;36&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   See https:&#x2F;&#x2F;mysqldump.guru&#x2F;mysqldump-single-transaction-flag.html for more info.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;37&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For postgresql, no adjustemnts are needed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;38&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;39&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure the connection options for your database:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;40&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;41&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;42&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;43&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;127.0.0.1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;44&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;45&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;46&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;47&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# pg_dump will be supplied with the connection options by writing them to ~&#x2F;.pgpass
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;48&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.pgpass&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;49&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;50&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;pg_dump &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;51&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;52&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Setup any tags here that you want to be added to your your kopia snapshot (comma separated in the format label:value)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;53&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;job:nextcloud-full-backup,nc-files:yes,nc-db:yes,nc-nextcloud:yes&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;54&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;55&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ADVANCED&#x2F;INTERNAL CONFIG - only adjust if you are sure that you know what you&amp;#39;re doing ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;56&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;btrfs&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;57&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;58&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;btrfs&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;59&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;60&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;61&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all files from the nextcloud install directory should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;62&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;63&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;64&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;65&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all user files should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;66&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;67&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;68&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;69&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure path where all parts of the backup will be mapped to before transferring with Kopia
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;70&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;nc-backup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;71&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;72&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;73&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### You usually should not need to touch the following variables
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;74&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;75&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;76&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;77&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;78&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;79&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for keeping track of running backup operations
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;80&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;run&#x2F;nc-backup.pid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;81&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;82&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;83&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for logging to both the log file and stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;84&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;85&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;msg message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;86&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;87&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;echo&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;88&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;89&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;90&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;tee -a &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;91&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;92&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;93&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;:-}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;94&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;95&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;while &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;read &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;96&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;do
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;97&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;message&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;98&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;done
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;99&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;return
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;100&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;101&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;102&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;103&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;104&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;105&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for cleaning up snapshots, pid file, etc.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;106&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;107&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;+&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;eu
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;108&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Cleanup...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;109&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;110&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;111&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;112&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;113&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;114&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;115&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;116&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;117&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;118&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;119&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;120&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;121&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC install dir snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;122&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;123&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume delete &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;124&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;125&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC files snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;126&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;127&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume delete &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;128&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;129&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;130&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove PID file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;131&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;132&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;133&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;134&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;135&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;136&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;137&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Detect whether a backup is still running (and abort in this case)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;138&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# If the backup has been running for more than 10 hours, it is assumed to be stuck and its process killed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;139&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;140&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;141&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; etimes=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;142&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;&#x2F; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;}&amp;quot; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;gt &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$((&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;10 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;3600&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)) &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;143&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;144&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Detected backup process going for over 10 hours, killing it...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;145&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kill -9 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;146&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;else
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;147&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Ongoing backup process detected. Aborting...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;148&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;exit 0
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;149&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;150&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;151&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;152&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup leftovers from last run if any
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;153&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;||&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;154&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;155&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Save current process id to pid file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;156&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;gt; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;157&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;158&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup will be run at the end of the script whether it fails or succeeds
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;159&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;trap &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;cleanup 2&amp;gt;&amp;amp;1 | log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; EXIT
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;160&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;161&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Make sure directories exist
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;162&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;163&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;164&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;+%Y-%m-%d %H:%M:%S %Z&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;165&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Starting Nextcloud Snapshot at &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;166&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;167&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Snapshot disks
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;168&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create snapshots...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;169&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;170&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;171&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;172&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;173&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;174&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;175&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;176&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;177&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Dump DB
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;178&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create DB dump...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;179&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &amp;gt; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;180&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;181&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;182&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Bind mount all individual snapshots into a common parent directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;183&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create bind mounts...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;184&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;185&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}  &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;186&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=root,gid=root                                        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;                                        &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;             &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;187&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;188&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;189&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Create the final snapshot with kopia using the default kopia repository config (if needed, you can change the config file with the --config-file parameter)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;190&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create kopia snapshot...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;191&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Temporary log file as a workaround to pass kopia logs to our log function
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;192&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mktemp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tmpdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; kopia-snapshot.XXXXX.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;193&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;tail&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;amp;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;194&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot create&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;parallel&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tags &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;start-time&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;log-file&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;file-log-level&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;info&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;195&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;.log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;196&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;

      &lt;&#x2F;div&gt;
    &lt;&#x2F;context-condition&gt;
  

    
    &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;mariadb&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
      &lt;div class=&quot;codeblock&quot;&gt;
        
        
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;CgoKCgojIS9iaW4vYmFzaAoKc2V0IC1ldW8gcGlwZWZhaWwKCiMjIyA9PT09PT09PT09ICMjIwojIFByb2NlZHVyZQojIC0gVGhlIHNjcmlwdCB3aWxsIGNyZWF0ZSBzbmFwc2hvdHMgb2YgdGhlIGx2bSByb290IHZvbHVtZSBhbmQgdGhlIGJ0cmZzIHN1YnZvbHVtZSBiYWNraW5nIE5leHRjbG91ZCdzIHVzZXIgZmlsZXMuIFRoZW4gaXQgd2lsbCBzdGFydCBhbiBzcWxkdW1wIG9mIHRoZSBkYXRhYmFzZQojIC0gQWZ0ZXJ3YXJkcywgYWxsIDMgc25hcHNob3RzIHdpbGwgYmUgbW91bnRlZC9jb3BpZWQgaW4gdGhlIHNhbWUgcGFyZW50IGRpcmVjdG9yeSBhbmQgdXBsb2FkZWQgdG8gYSBrb3BpYSByZXBvc2l0b3J5CiMjIyA9PT09PT09PT09ICMjIwoKIyMjIENPTkZJR1VSQVRJT04KCiMgZmlsZSBmb3Igd3JpdGluZyBsb2dzLiBDYW4gYmUgbGVmdCBlbXB0eSB0byBvbmx5IGxvZyB0byBzdGRvdXQKTE9HX0ZJTEU9Ii92YXIvbG9nL25jLWJhY2t1cC5sb2ciCgojIyBOZXh0Y2xvdWQgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBjb25maWcKIyBQYXRoIHRvIHRoZSBidHJmcyBzdWJ2b2x1bWUgY29udGFpbmluZyB5b3VyIE5DIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKTkNfSU5TVEFMTF9WT0xVTUU9Ii92YXIvd3d3L25leHRjbG91ZCIKIyBQYXRoIHdoZXJlIHRoZSAodGVtcG9yYXJ5KSBidHJmcyBzbmFwc2hvdCBmb3IgdGhlIE5DIGluc3RhbGxhdGlvbiBkaXJlY3Rvcnkgc2hvdWxkIGJlIGNyZWF0ZWQKTkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIPSIvdmFyL3d3dy8ubmNfc25hcHNob3QiCiMgQWRqdXN0IHRoaXMgaWYgdGhlIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgaXMgbm90IGluIHRoZSByb290IG9mIHRoZSBiYWNraW5nIGZpbGVzeXN0ZW0gdm9sdW1lCk5DX0lOU1RBTExfUkVMQVRJVkVfUEFUSD0iLyIKCiMjIE5leHRjbG91ZCBmaWxlcyBkaXJlY3RvcnkgY29uZmlnClVTRVJfRklMRVNfVkc9Imx2bS0xIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgTFZNIHZvbHVtZSBncm91cCBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQpVU0VSX0ZJTEVTX0xWPSJuYy1maWxlcyIgIyBBZGp1c3QgdG8gbWF0Y2ggdGhlIGxvZ2ljYWwgdm9sdW1lIG5hbWUgY29udGFpbmluZyB5b3VyIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKIyBEQiBkdW1wIGNvbmZpZwojIFBhdGggd2hlcmUgdG8gdGVtcG9yYXJpbHkgc3RvcmUgZGF0YWJhc2UgZHVtcCAoc2hvdWxkIGhhdmUgZW5vdWdoIGZyZWUgc3BhY2UpClNRTF9EVU1QX1RBUkdFVF9ESVI9Ii92YXIvbmMtYmFja3VwLWRiIgojIFdoYXRldmVyIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuIHNxbGR1bXAgKGluY2x1ZGluZyBwYXJhbWV0ZXJzIGxpa2UgdXNlciwgaG9zdCwgZGJuYW1lLCBwYXNzd29yZCBjZmcgLi4uKQojIC0gSWYgeW91ciBEQiBpcyBydW4gaW5zaWRlIGRvY2tlciwganVzdCBwcmVwZW5kIHRoZSBjb21tYW5kIHdpdGggd2hhdGV2ZXIgaXMgbmVlZGVkIHRvIHJ1biBhIGNvbW1hbmQgaW5zaWRlIHRoZSBjb250YWluZXIsCiMgICBmb3IgZXhhbXBsZTogU1FMRFVNUF9DTUQ9KGRvY2tlciBleGVjIDxjb250YWluZXJuYW1lPiBwZ19kdW1wIC1VIHBvc3RncmVzIC1kIG5jKQojIC0gRm9yIE1hcmlhREIgKHdpdGggdGhlIElubm9EQiBlbmdpbmUpLCBtYWtlIHN1cmUgdG8gdXNlIC0tc2luZ2xlLXRyYW5zYWN0aW9uIChhbmQgb3B0aW9uYWxseSAtLXNraXAtbG9jay10YWJsZXMgdG8gYXZvaWQgc2xvdyBkb3ducyBmb3IgeW91ciBzeXN0ZW0pIHRvIGF2b2lkIHNpZGUgZWZmZWN0cy4KIyAgIFNlZSBodHRwczovL215c3FsZHVtcC5ndXJ1L215c3FsZHVtcC1zaW5nbGUtdHJhbnNhY3Rpb24tZmxhZy5odG1sIGZvciBtb3JlIGluZm8uCiMgLSBGb3IgcG9zdGdyZXNxbCwgbm8gYWRqdXN0ZW1udHMgYXJlIG5lZWRlZAoKIyBDb25maWd1cmUgdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBmb3IgeW91ciBkYXRhYmFzZToKREJfVVNFUj0ibmV4dGNsb3VkIgpEQl9OQU1FPSJuZXh0Y2xvdWQiCkRCX1BBU1NXT1JEPSJwYXNzd29yZCIKREJfSE9TVD0iMTI3LjAuMC4xIgpEQl9QT1JUPSI1NDMyIgoKIyBteXNxbGR1bXAgd2lsbCBiZSBzdXBwbGllZCB3aXRoIHRoZSBkYiBjcmVkZW50aWFscyBieSB3cml0aW5nIHRoZW0gdG8gfi8ubXkuY25mCk1ZQ05GX1BBVEg9IiRIT01FLy5teS5jbmYiCmluc3RhbGwgLW0gMDYwMCA8KGVjaG8gLWUgIltteXNxbGR1bXBdXG51c2VyPSR7REJfVVNFUn1cbnBhc3N3b3JkPSR7REJfUEFTU1dPUkR9IikgIiR7TVlDTkZfUEFUSH0iClNRTERVTVBfQ01EPShteXNxbGR1bXAgLS1ob3N0PSIke0RCX0hPU1R9IiAtLXBvcnQ9IiR7REJfUE9SVH0iIC0tc2luZ2xlLXRyYW5zYWN0aW9uIC0tc2tpcC1sb2NrLXRhYmxlcyAiJHtEQl9OQU1FfSIpCgoKIyBTZXR1cCBhbnkgdGFncyBoZXJlIHRoYXQgeW91IHdhbnQgdG8gYmUgYWRkZWQgdG8geW91ciB5b3VyIGtvcGlhIHNuYXBzaG90IChjb21tYSBzZXBhcmF0ZWQgaW4gdGhlIGZvcm1hdCBsYWJlbDp2YWx1ZSkKS09QSUFfVEFHUz0iam9iOm5leHRjbG91ZC1mdWxsLWJhY2t1cCxuYy1maWxlczp5ZXMsbmMtZGI6eWVzLG5jLW5leHRjbG91ZDp5ZXMiCgojIyMgQURWQU5DRUQvSU5URVJOQUwgQ09ORklHIC0gb25seSBhZGp1c3QgaWYgeW91IGFyZSBzdXJlIHRoYXQgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcgIyMjCk5DX0lOU1RBTExfRlNUWVBFPSJidHJmcyIKClVTRVJfRklMRVNfRlNUWVBFPSJsdm0iCiMgTkMgZmlsZXMgTFZNIHNuYXBzaG90IG5hbWUKVVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FPSJuYy1iYWNrdXAtbmMtZmlsZXMiClVTRVJfRklMRVNfU05BUFNIT1RfUEFUSD0iL3J1bi9tbnQvbmMtYmFja3VwLWx2bS1uYy1maWxlcyIKCgojIEZPUkNFIFVJRCBhbmQgR0lEIHRoYXQgYWxsIGZpbGVzIGZyb20gdGhlIG5leHRjbG91ZCBpbnN0YWxsIGRpcmVjdG9yeSBzaG91bGQgaGF2ZSBpbiB0aGUgYmFja3VwIChlLmcuIHRoYXQgb2YgeW91ciB3d3ctZGF0YSB1c2VyIGFuZCBncm91cCkKTkNfT1dORVJfVUlEPTMzCk5DX09XTkVSX0dJRD0zMwoKIyBGT1JDRSBVSUQgYW5kIEdJRCB0aGF0IGFsbCB1c2VyIGZpbGVzIHNob3VsZCBoYXZlIGluIHRoZSBiYWNrdXAgKGUuZy4gdGhhdCBvZiB5b3VyIHd3dy1kYXRhIHVzZXIgYW5kIGdyb3VwKQpVU0VSX0ZJTEVTX09XTkVSX1VJRD0zMwpVU0VSX0ZJTEVTX09XTkVSX0dJRD0zMwoKIyBDb25maWd1cmUgcGF0aCB3aGVyZSBhbGwgcGFydHMgb2YgdGhlIGJhY2t1cCB3aWxsIGJlIG1hcHBlZCB0byBiZWZvcmUgdHJhbnNmZXJyaW5nIHdpdGggS29waWEKQkFDS1VQX1JPT1Q9Ii9ydW4vbmMtYmFja3VwIgoKCiMjIyBZb3UgdXN1YWxseSBzaG91bGQgbm90IG5lZWQgdG8gdG91Y2ggdGhlIGZvbGxvd2luZyB2YXJpYWJsZXMKCl9VU0VSX0ZJTEVTX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L25jX2ZpbGVzIgpfTkNfSU5TVEFMTF9CSU5EPSIke0JBQ0tVUF9ST09UfS9uZXh0Y2xvdWQiCl9EQl9CSU5EPSIke0JBQ0tVUF9ST09UfS9kYiIKCiMgZmlsZSBmb3Iga2VlcGluZyB0cmFjayBvZiBydW5uaW5nIGJhY2t1cCBvcGVyYXRpb25zCl9QSURfRklMRT0iL3Zhci9ydW4vbmMtYmFja3VwLnBpZCIKCgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGxvZ2dpbmcgdG8gYm90aCB0aGUgbG9nIGZpbGUgYW5kIHN0ZG91dApsb2coKSB7CiAgbG9jYWwgbXNnIG1lc3NhZ2UKCiAgZndkPShlY2hvKQogIGlmIFtbIC1uICIkTE9HX0ZJTEUiIF1dCiAgdGhlbgogIGZ3ZD0odGVlIC1hICIkTE9HX0ZJTEUiKQogIGZpCgogIGlmIFtbIC16ICIkezE6LX0iIF1dCiAgdGhlbgogIHdoaWxlIHJlYWQgLXIgbWVzc2FnZQogIGRvCiAgZWNobyAiXCQkJD4kKGRhdGUgLUlzKT0+IiAiJHttZXNzYWdlW0BdfSIgMj4mMSB8ICIke2Z3ZFtAXX0iCiAgZG9uZQogIHJldHVybgogIGZpCgogIGVjaG8gIlwkJCQ+JChkYXRlIC1Jcyk9PiIgIiR7QH0iIDI+JjEgfCAiJHtmd2RbQF19Igp9CgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGNsZWFuaW5nIHVwIHNuYXBzaG90cywgcGlkIGZpbGUsIGV0Yy4KY2xlYW51cCgpIHsKICBzZXQgK2V1CiAgZWNobyAiQ2xlYW51cC4uLiIKICAKICBybSAtcmYgIiR7UEdQQVNTX1BBVEh9IgogIAogIAogIHVtb3VudCAiJF9EQl9CSU5EIgogIHVtb3VudCAiJF9OQ19JTlNUQUxMX0JJTkQiCiAgdW1vdW50ICIkX1VTRVJfRklMRVNfQklORCIKCiAgW1sgLXogIiR7VVNFUl9GSUxFU19NT1VOVH0iIF1dIHx8IHVtb3VudCAiJFVTRVJfRklMRVNfTU9VTlQiCiAgW1sgLXogIiR7TkNfSU5TVEFMTF9NT1VOVH0iIF1dIHx8IHVtb3VudCAiJE5DX0lOU1RBTExfTU9VTlQiCgogIHJtIC1yZiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiOwogICMgQ2xlYW51cCBOQyBpbnN0YWxsIGRpciBzbmFwc2hvdAogIAogIGJ0cmZzIHN1YnZvbHVtZSBkZWxldGUgIiROQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEgiCiAgCiAgIyBDbGVhbnVwIE5DIGZpbGVzIHNuYXBzaG90CiAgCiAgdW1vdW50ICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0iCiAgcm0gLXJmICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0iCiAgbHZjaGFuZ2UgLWFuIC1LICIke1VTRVJfRklMRVNfVkd9LyR7VVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FfSIKICBsdnJlbW92ZSAiL2Rldi8ke1VTRVJfRklMRVNfVkd9LyR7VVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FfSIKICAKICAKICAjIFJlbW92ZSBQSUQgZmlsZQogIHJtICIkX1BJRF9GSUxFIgogIGVjaG8gIkRvbmUuIgp9CgoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBtb3VudGluZyBsdm0gc25hcHNob3QgdG8gYSBtb3VudHBvaW50Cm1vdW50X3NuYXBzaG90X2x2bSgpIHsKICBsb2NhbCBzbmFwc2hvdCBtb3VudHBvaW50IG93bmVyc2hpcAogIHNuYXBzaG90PSIkezE&amp;#x2F;fSIKICBtb3VudHBvaW50PSIkezI&amp;#x2F;fSIKICBta2RpciAtcCAiJHttb3VudHBvaW50fSIKICBsdmNoYW5nZSAtYXkgLUsgIiR7c25hcHNob3R9IgogIG1vdW50IC1vICJybyIgIi9kZXYvJHtzbmFwc2hvdH0iICIke21vdW50cG9pbnR9Igp9CgoKIyMgRGV0ZWN0IHdoZXRoZXIgYSBiYWNrdXAgaXMgc3RpbGwgcnVubmluZyAoYW5kIGFib3J0IGluIHRoaXMgY2FzZSkKIyBJZiB0aGUgYmFja3VwIGhhcyBiZWVuIHJ1bm5pbmcgZm9yIG1vcmUgdGhhbiAxMCBob3VycywgaXQgaXMgYXNzdW1lZCB0byBiZSBzdHVjayBhbmQgaXRzIHByb2Nlc3Mga2lsbGVkCmlmIFtbIC1mICIkX1BJRF9GSUxFIiBdXSAmJiBwcyAtcCAiJChjYXQgIiRfUElEX0ZJTEUiKSIgPiAvZGV2L251bGwKdGhlbgogIGVsYXBzZWQ9IiQocHMgLW8gZXRpbWVzPSAtcCAiJChjYXQgIiRfUElEX0ZJTEUiKSIpIgogIGlmIFtbICIke2VsYXBzZWQvLyAvfSIgLWd0ICQoKDEwICogMzYwMCkpIF1dCiAgdGhlbgogICAgbG9nICJEZXRlY3RlZCBiYWNrdXAgcHJvY2VzcyBnb2luZyBmb3Igb3ZlciAxMCBob3Vycywga2lsbGluZyBpdC4uLiIKICAgIGtpbGwgLTkgIiQoY2F0ICIkX1BJRF9GSUxFIikiCiAgZWxzZQogICAgbG9nICJPbmdvaW5nIGJhY2t1cCBwcm9jZXNzIGRldGVjdGVkLiBBYm9ydGluZy4uLiIKICAgIGV4aXQgMAogIGZpCmZpCgojIGNsZWFudXAgbGVmdG92ZXJzIGZyb20gbGFzdCBydW4gaWYgYW55CmNsZWFudXAgPiAvZGV2L251bGwgMj4mMSB8fDoKCiMgU2F2ZSBjdXJyZW50IHByb2Nlc3MgaWQgdG8gcGlkIGZpbGUKZWNobyAiJCQiID4gIiRfUElEX0ZJTEUiCgojIGNsZWFudXAgd2lsbCBiZSBydW4gYXQgdGhlIGVuZCBvZiB0aGUgc2NyaXB0IHdoZXRoZXIgaXQgZmFpbHMgb3Igc3VjY2VlZHMKdHJhcCAnY2xlYW51cCAyPiYxIHwgbG9nJyBFWElUCgojIE1ha2Ugc3VyZSBkaXJlY3RvcmllcyBleGlzdApta2RpciAtcCAiJF9VU0VSX0ZJTEVTX0JJTkQiICIkX05DX0lOU1RBTExfQklORCIgIiRfREJfQklORCIgIiRVU0VSX0ZJTEVTX01PVU5UIiAiJE5DX0lOU1RBTExfTU9VTlQiICIkU1FMX0RVTVBfVEFSR0VUX0RJUiIKCnRpbWVzdGFtcD0iJChkYXRlICIrJVktJW0tJWQgJUg6JU06JVMgJVoiKSIKbG9nICJTdGFydGluZyBOZXh0Y2xvdWQgU25hcHNob3QgYXQgJHRpbWVzdGFtcCIKCiMgU25hcHNob3QgZGlza3MKbG9nICJDcmVhdGUgc25hcHNob3RzLi4uIgoKYnRyZnMgc3Vidm9sdW1lIHNuYXBzaG90IC1yICIke05DX0lOU1RBTExfVk9MVU1FfSIgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfSIgMj4mMSB8IGxvZwoKCmx2Y3JlYXRlIC1zIC0tbmFtZSAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IiAiJHtVU0VSX0ZJTEVTX1ZHfS8ke1VTRVJfRklMRVNfTFZ9IiAyPiYxIHwgbG9nCm1vdW50X3NuYXBzaG90X2x2bSAiJHtVU0VSX0ZJTEVTX1ZHfS8ke1VTRVJfRklMRVNfU05BUFNIT1RfTkFNRX0iICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCmxvZyAiRG9uZS4iCgojIER1bXAgREIKbG9nICJDcmVhdGUgREIgZHVtcC4uLiIKIiR7U1FMRFVNUF9DTURbQF19IiA+ICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9L2RiLnNxbCIKbG9nICJEb25lLiIKCiMgQmluZCBtb3VudCBhbGwgaW5kaXZpZHVhbCBzbmFwc2hvdHMgaW50byBhIGNvbW1vbiBwYXJlbnQgZGlyZWN0b3J5CmxvZyAiQ3JlYXRlIGJpbmQgbW91bnRzLi4uIgptb3VudCAtLWJpbmQgLW8gInJvLHVpZD0ke05DX09XTkVSX1VJRH0sZ2lkPSR7TkNfT1dORVJfR0lEfSIgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfS8ke05DX0lOU1RBTExfUkVMQVRJVkVfUEFUSCMvfSIgICAgICIke19OQ19JTlNUQUxMX0JJTkR9IiAgICAgMj4mMSB8IGxvZwptb3VudCAtLWJpbmQgLW8gcm8sdWlkPSR7VVNFUl9GSUxFU19PV05FUl9VSUR9LGdpZD0ke1VTRVJfRklMRVNfT1dORVJfR0lEfSAgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfS8ke1VTRVJfRklMRVNfUkVMQVRJVkVfUEFUSCMvfSIgICAgICIke19VU0VSX0ZJTEVTX0JJTkR9IiAgICAgMj4mMSB8IGxvZwptb3VudCAtLWJpbmQgLW8gcm8sdWlkPXJvb3QsZ2lkPXJvb3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke19EQl9CSU5EfSIgICAgICAgICAgICAgMj4mMSB8IGxvZwpsb2cgIkRvbmUuIgoKIyBDcmVhdGUgdGhlIGZpbmFsIHNuYXBzaG90IHdpdGgga29waWEgdXNpbmcgdGhlIGRlZmF1bHQga29waWEgcmVwb3NpdG9yeSBjb25maWcgKGlmIG5lZWRlZCwgeW91IGNhbiBjaGFuZ2UgdGhlIGNvbmZpZyBmaWxlIHdpdGggdGhlIC0tY29uZmlnLWZpbGUgcGFyYW1ldGVyKQpsb2cgIkNyZWF0ZSBrb3BpYSBzbmFwc2hvdC4uLiIKIyBUZW1wb3JhcnkgbG9nIGZpbGUgYXMgYSB3b3JrYXJvdW5kIHRvIHBhc3Mga29waWEgbG9ncyB0byBvdXIgbG9nIGZ1bmN0aW9uCmtvcGlhX2xvZ2ZpbGU9IiQobWt0ZW1wIC0tdG1wZGlyIGtvcGlhLXNuYXBzaG90LlhYWFhYLmxvZykiCnRhaWwgLWYgIiRrb3BpYV9sb2dmaWxlIiAmCmtvcGlhIHNuYXBzaG90IGNyZWF0ZSAtLXBhcmFsbGVsPTQgLS10YWdzICIke0tPUElBX1RBR1N9IiAtLXN0YXJ0LXRpbWU9IiR0aW1lc3RhbXAiIC0tbG9nLWZpbGU9IiRrb3BpYV9sb2dmaWxlIiAtLWZpbGUtbG9nLWxldmVsPSJpbmZvIiAiJHtCQUNLVVBfUk9PVH0iCmNhdCAiJHtrb3BpYV9sb2dmaWxlJS5sb2d9IioubG9nIHwgbG9nID4gL2Rldi9udWxsCmxvZyAiRG9uZS4i&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-linenos data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#!&#x2F;bin&#x2F;bash
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set -euo pipefail
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Procedure
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - The script will create snapshots of the lvm root volume and the btrfs subvolume backing Nextcloud&amp;#39;s user files. Then it will start an sqldump of the database
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - Afterwards, all 3 snapshots will be mounted&#x2F;copied in the same parent directory and uploaded to a kopia repository
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### CONFIGURATION
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for writing logs. Can be left empty to only log to stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;log&#x2F;nc-backup.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud installation directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;17&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path to the btrfs subvolume containing your NC installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;18&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;www&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;19&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where the (temporary) btrfs snapshot for the NC installation directory should be created
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;20&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;www&#x2F;.nc_snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;21&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust this if the nc installation directory is not in the root of the backing filesystem volume
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;22&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;23&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;24&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud files directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;25&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm-1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the LVM volume group containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;26&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_LV&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the logical volume name containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;27&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# DB dump config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;28&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where to temporarily store database dump (should have enough free space)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;29&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;nc-backup-db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;30&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Whatever command can be used to create an sqldump (including parameters like user, host, dbname, password cfg ...)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;31&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - If your DB is run inside docker, just prepend the command with whatever is needed to run a command inside the container,
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;32&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   for example: SQLDUMP_CMD=(docker exec &amp;lt;containername&amp;gt; pg_dump -U postgres -d nc)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;33&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For MariaDB (with the InnoDB engine), make sure to use --single-transaction (and optionally --skip-lock-tables to avoid slow downs for your system) to avoid side effects.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;34&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   See https:&#x2F;&#x2F;mysqldump.guru&#x2F;mysqldump-single-transaction-flag.html for more info.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;35&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For postgresql, no adjustemnts are needed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;36&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;37&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure the connection options for your database:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;38&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;39&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;40&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;41&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;127.0.0.1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;42&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;43&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;44&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# mysqldump will be supplied with the db credentials by writing them to ~&#x2F;.my.cnf
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;45&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;MYCNF_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.my.cnf&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;46&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;e &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[mysqldump]\nuser=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;\npassword=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;MYCNF_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;47&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;mysqldump --host=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; --port=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; --single-transaction --skip-lock-tables &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;48&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;49&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;50&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Setup any tags here that you want to be added to your your kopia snapshot (comma separated in the format label:value)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;51&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;job:nextcloud-full-backup,nc-files:yes,nc-db:yes,nc-nextcloud:yes&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;52&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;53&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ADVANCED&#x2F;INTERNAL CONFIG - only adjust if you are sure that you know what you&amp;#39;re doing ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;54&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;btrfs&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;55&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;56&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;57&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# NC files LVM snapshot name
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;58&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-backup-nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;59&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;mnt&#x2F;nc-backup-lvm-nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;60&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;61&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;62&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all files from the nextcloud install directory should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;63&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;64&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;65&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;66&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all user files should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;67&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;68&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;69&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;70&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure path where all parts of the backup will be mapped to before transferring with Kopia
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;71&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;nc-backup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;72&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;73&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;74&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### You usually should not need to touch the following variables
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;75&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;76&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;77&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;78&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;79&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;80&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for keeping track of running backup operations
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;81&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;run&#x2F;nc-backup.pid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;82&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;83&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;84&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for logging to both the log file and stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;85&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;86&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;msg message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;87&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;88&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;echo&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;89&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;90&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;91&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;tee -a &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;92&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;93&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;94&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;:-}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;95&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;96&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;while &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;read &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;97&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;do
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;98&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;message&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;99&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;done
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;100&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;return
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;101&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;102&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;103&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;104&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;105&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;106&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for cleaning up snapshots, pid file, etc.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;107&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;108&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;+&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;eu
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;109&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Cleanup...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;110&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;111&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;112&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;113&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;114&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;115&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;116&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;117&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;118&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;119&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;120&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;121&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;122&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC install dir snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;123&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;124&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume delete &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;125&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;126&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC files snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;127&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;128&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;129&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;130&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;an&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;131&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvremove &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;132&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;133&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;134&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove PID file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;135&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;136&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;137&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;138&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;139&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;140&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for mounting lvm snapshot to a mountpoint
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;141&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;142&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;snapshot mountpoint ownership
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;143&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;144&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;145&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;146&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;ay&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;147&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;148&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;149&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;150&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;151&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Detect whether a backup is still running (and abort in this case)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;152&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# If the backup has been running for more than 10 hours, it is assumed to be stuck and its process killed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;153&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;154&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;155&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; etimes=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;156&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;&#x2F; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;}&amp;quot; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;gt &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$((&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;10 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;3600&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)) &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;157&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;158&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Detected backup process going for over 10 hours, killing it...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;159&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kill -9 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;160&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;else
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;161&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Ongoing backup process detected. Aborting...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;162&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;exit 0
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;163&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;164&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;165&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;166&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup leftovers from last run if any
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;167&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;||&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;168&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;169&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Save current process id to pid file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;170&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;gt; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;171&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;172&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup will be run at the end of the script whether it fails or succeeds
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;173&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;trap &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;cleanup 2&amp;gt;&amp;amp;1 | log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; EXIT
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;174&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;175&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Make sure directories exist
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;176&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;177&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;178&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;+%Y-%m-%d %H:%M:%S %Z&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;179&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Starting Nextcloud Snapshot at &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;180&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;181&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Snapshot disks
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;182&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create snapshots...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;183&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;184&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;185&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;186&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;187&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvcreate&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;s&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;name &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_LV&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;188&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;189&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;190&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;191&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;192&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Dump DB
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;193&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create DB dump...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;194&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &amp;gt; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;195&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;196&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;197&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Bind mount all individual snapshots into a common parent directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;198&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create bind mounts...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;199&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;200&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}  &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;201&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=root,gid=root                                        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;                                        &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;             &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;202&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;203&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;204&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Create the final snapshot with kopia using the default kopia repository config (if needed, you can change the config file with the --config-file parameter)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;205&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create kopia snapshot...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;206&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Temporary log file as a workaround to pass kopia logs to our log function
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;207&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mktemp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tmpdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; kopia-snapshot.XXXXX.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;208&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;tail&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;amp;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;209&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot create&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;parallel&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tags &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;start-time&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;log-file&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;file-log-level&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;info&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;210&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;.log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;211&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;

      &lt;&#x2F;div&gt;
    &lt;&#x2F;context-condition&gt;
  

    
    &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;postgres&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
      &lt;div class=&quot;codeblock&quot;&gt;
        
        
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;CgoKCgojIS9iaW4vYmFzaAoKc2V0IC1ldW8gcGlwZWZhaWwKCiMjIyA9PT09PT09PT09ICMjIwojIFByb2NlZHVyZQojIC0gVGhlIHNjcmlwdCB3aWxsIGNyZWF0ZSBzbmFwc2hvdHMgb2YgdGhlIGx2bSByb290IHZvbHVtZSBhbmQgdGhlIGJ0cmZzIHN1YnZvbHVtZSBiYWNraW5nIE5leHRjbG91ZCdzIHVzZXIgZmlsZXMuIFRoZW4gaXQgd2lsbCBzdGFydCBhbiBzcWxkdW1wIG9mIHRoZSBkYXRhYmFzZQojIC0gQWZ0ZXJ3YXJkcywgYWxsIDMgc25hcHNob3RzIHdpbGwgYmUgbW91bnRlZC9jb3BpZWQgaW4gdGhlIHNhbWUgcGFyZW50IGRpcmVjdG9yeSBhbmQgdXBsb2FkZWQgdG8gYSBrb3BpYSByZXBvc2l0b3J5CiMjIyA9PT09PT09PT09ICMjIwoKIyMjIENPTkZJR1VSQVRJT04KCiMgZmlsZSBmb3Igd3JpdGluZyBsb2dzLiBDYW4gYmUgbGVmdCBlbXB0eSB0byBvbmx5IGxvZyB0byBzdGRvdXQKTE9HX0ZJTEU9Ii92YXIvbG9nL25jLWJhY2t1cC5sb2ciCgojIyBOZXh0Y2xvdWQgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBjb25maWcKIyBQYXRoIHRvIHRoZSBidHJmcyBzdWJ2b2x1bWUgY29udGFpbmluZyB5b3VyIE5DIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKTkNfSU5TVEFMTF9WT0xVTUU9Ii92YXIvd3d3L25leHRjbG91ZCIKIyBQYXRoIHdoZXJlIHRoZSAodGVtcG9yYXJ5KSBidHJmcyBzbmFwc2hvdCBmb3IgdGhlIE5DIGluc3RhbGxhdGlvbiBkaXJlY3Rvcnkgc2hvdWxkIGJlIGNyZWF0ZWQKTkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIPSIvdmFyL3d3dy8ubmNfc25hcHNob3QiCiMgQWRqdXN0IHRoaXMgaWYgdGhlIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgaXMgbm90IGluIHRoZSByb290IG9mIHRoZSBiYWNraW5nIGZpbGVzeXN0ZW0gdm9sdW1lCk5DX0lOU1RBTExfUkVMQVRJVkVfUEFUSD0iLyIKCiMjIE5leHRjbG91ZCBmaWxlcyBkaXJlY3RvcnkgY29uZmlnClVTRVJfRklMRVNfVkc9Imx2bS0xIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgTFZNIHZvbHVtZSBncm91cCBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQpVU0VSX0ZJTEVTX0xWPSJuYy1maWxlcyIgIyBBZGp1c3QgdG8gbWF0Y2ggdGhlIGxvZ2ljYWwgdm9sdW1lIG5hbWUgY29udGFpbmluZyB5b3VyIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKIyBEQiBkdW1wIGNvbmZpZwojIFBhdGggd2hlcmUgdG8gdGVtcG9yYXJpbHkgc3RvcmUgZGF0YWJhc2UgZHVtcCAoc2hvdWxkIGhhdmUgZW5vdWdoIGZyZWUgc3BhY2UpClNRTF9EVU1QX1RBUkdFVF9ESVI9Ii92YXIvbmMtYmFja3VwLWRiIgojIFdoYXRldmVyIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuIHNxbGR1bXAgKGluY2x1ZGluZyBwYXJhbWV0ZXJzIGxpa2UgdXNlciwgaG9zdCwgZGJuYW1lLCBwYXNzd29yZCBjZmcgLi4uKQojIC0gSWYgeW91ciBEQiBpcyBydW4gaW5zaWRlIGRvY2tlciwganVzdCBwcmVwZW5kIHRoZSBjb21tYW5kIHdpdGggd2hhdGV2ZXIgaXMgbmVlZGVkIHRvIHJ1biBhIGNvbW1hbmQgaW5zaWRlIHRoZSBjb250YWluZXIsCiMgICBmb3IgZXhhbXBsZTogU1FMRFVNUF9DTUQ9KGRvY2tlciBleGVjIDxjb250YWluZXJuYW1lPiBwZ19kdW1wIC1VIHBvc3RncmVzIC1kIG5jKQojIC0gRm9yIE1hcmlhREIgKHdpdGggdGhlIElubm9EQiBlbmdpbmUpLCBtYWtlIHN1cmUgdG8gdXNlIC0tc2luZ2xlLXRyYW5zYWN0aW9uIChhbmQgb3B0aW9uYWxseSAtLXNraXAtbG9jay10YWJsZXMgdG8gYXZvaWQgc2xvdyBkb3ducyBmb3IgeW91ciBzeXN0ZW0pIHRvIGF2b2lkIHNpZGUgZWZmZWN0cy4KIyAgIFNlZSBodHRwczovL215c3FsZHVtcC5ndXJ1L215c3FsZHVtcC1zaW5nbGUtdHJhbnNhY3Rpb24tZmxhZy5odG1sIGZvciBtb3JlIGluZm8uCiMgLSBGb3IgcG9zdGdyZXNxbCwgbm8gYWRqdXN0ZW1udHMgYXJlIG5lZWRlZAoKIyBDb25maWd1cmUgdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBmb3IgeW91ciBkYXRhYmFzZToKREJfVVNFUj0ibmV4dGNsb3VkIgpEQl9OQU1FPSJuZXh0Y2xvdWQiCkRCX1BBU1NXT1JEPSJwYXNzd29yZCIKREJfSE9TVD0iMTI3LjAuMC4xIgpEQl9QT1JUPSI1NDMyIgoKCiMgcGdfZHVtcCB3aWxsIGJlIHN1cHBsaWVkIHdpdGggdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBieSB3cml0aW5nIHRoZW0gdG8gfi8ucGdwYXNzClBHUEFTU19QQVRIPSIke0hPTUV9Ly5wZ3Bhc3MiCmluc3RhbGwgLW0gMDYwMCA8KGVjaG8gIiR7REJfSE9TVH06JHtEQl9QT1JUfToke0RCX05BTUV9OiR7REJfVVNFUn06JHtEQl9QQVNTV09SRH0iKSAiJHtQR1BBU1NfUEFUSH0iClNRTERVTVBfQ01EPShwZ19kdW1wICIke0RCX05BTUV9IikKCiMgU2V0dXAgYW55IHRhZ3MgaGVyZSB0aGF0IHlvdSB3YW50IHRvIGJlIGFkZGVkIHRvIHlvdXIgeW91ciBrb3BpYSBzbmFwc2hvdCAoY29tbWEgc2VwYXJhdGVkIGluIHRoZSBmb3JtYXQgbGFiZWw6dmFsdWUpCktPUElBX1RBR1M9ImpvYjpuZXh0Y2xvdWQtZnVsbC1iYWNrdXAsbmMtZmlsZXM6eWVzLG5jLWRiOnllcyxuYy1uZXh0Y2xvdWQ6eWVzIgoKIyMjIEFEVkFOQ0VEL0lOVEVSTkFMIENPTkZJRyAtIG9ubHkgYWRqdXN0IGlmIHlvdSBhcmUgc3VyZSB0aGF0IHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nICMjIwpOQ19JTlNUQUxMX0ZTVFlQRT0iYnRyZnMiCgpVU0VSX0ZJTEVTX0ZTVFlQRT0ibHZtIgojIE5DIGZpbGVzIExWTSBzbmFwc2hvdCBuYW1lClVTRVJfRklMRVNfU05BUFNIT1RfTkFNRT0ibmMtYmFja3VwLW5jLWZpbGVzIgpVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEg9Ii9ydW4vbW50L25jLWJhY2t1cC1sdm0tbmMtZmlsZXMiCgoKIyBGT1JDRSBVSUQgYW5kIEdJRCB0aGF0IGFsbCBmaWxlcyBmcm9tIHRoZSBuZXh0Y2xvdWQgaW5zdGFsbCBkaXJlY3Rvcnkgc2hvdWxkIGhhdmUgaW4gdGhlIGJhY2t1cCAoZS5nLiB0aGF0IG9mIHlvdXIgd3d3LWRhdGEgdXNlciBhbmQgZ3JvdXApCk5DX09XTkVSX1VJRD0zMwpOQ19PV05FUl9HSUQ9MzMKCiMgRk9SQ0UgVUlEIGFuZCBHSUQgdGhhdCBhbGwgdXNlciBmaWxlcyBzaG91bGQgaGF2ZSBpbiB0aGUgYmFja3VwIChlLmcuIHRoYXQgb2YgeW91ciB3d3ctZGF0YSB1c2VyIGFuZCBncm91cCkKVVNFUl9GSUxFU19PV05FUl9VSUQ9MzMKVVNFUl9GSUxFU19PV05FUl9HSUQ9MzMKCiMgQ29uZmlndXJlIHBhdGggd2hlcmUgYWxsIHBhcnRzIG9mIHRoZSBiYWNrdXAgd2lsbCBiZSBtYXBwZWQgdG8gYmVmb3JlIHRyYW5zZmVycmluZyB3aXRoIEtvcGlhCkJBQ0tVUF9ST09UPSIvcnVuL25jLWJhY2t1cCIKCgojIyMgWW91IHVzdWFsbHkgc2hvdWxkIG5vdCBuZWVkIHRvIHRvdWNoIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzCgpfVVNFUl9GSUxFU19CSU5EPSIke0JBQ0tVUF9ST09UfS9uY19maWxlcyIKX05DX0lOU1RBTExfQklORD0iJHtCQUNLVVBfUk9PVH0vbmV4dGNsb3VkIgpfREJfQklORD0iJHtCQUNLVVBfUk9PVH0vZGIiCgojIGZpbGUgZm9yIGtlZXBpbmcgdHJhY2sgb2YgcnVubmluZyBiYWNrdXAgb3BlcmF0aW9ucwpfUElEX0ZJTEU9Ii92YXIvcnVuL25jLWJhY2t1cC5waWQiCgoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBsb2dnaW5nIHRvIGJvdGggdGhlIGxvZyBmaWxlIGFuZCBzdGRvdXQKbG9nKCkgewogIGxvY2FsIG1zZyBtZXNzYWdlCgogIGZ3ZD0oZWNobykKICBpZiBbWyAtbiAiJExPR19GSUxFIiBdXQogIHRoZW4KICBmd2Q9KHRlZSAtYSAiJExPR19GSUxFIikKICBmaQoKICBpZiBbWyAteiAiJHsxOi19IiBdXQogIHRoZW4KICB3aGlsZSByZWFkIC1yIG1lc3NhZ2UKICBkbwogIGVjaG8gIlwkJCQ+JChkYXRlIC1Jcyk9PiIgIiR7bWVzc2FnZVtAXX0iIDI+JjEgfCAiJHtmd2RbQF19IgogIGRvbmUKICByZXR1cm4KICBmaQoKICBlY2hvICJcJCQkPiQoZGF0ZSAtSXMpPT4iICIke0B9IiAyPiYxIHwgIiR7ZndkW0BdfSIKfQoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjbGVhbmluZyB1cCBzbmFwc2hvdHMsIHBpZCBmaWxlLCBldGMuCmNsZWFudXAoKSB7CiAgc2V0ICtldQogIGVjaG8gIkNsZWFudXAuLi4iCiAgCiAgcm0gLXJmICIke1BHUEFTU19QQVRIfSIKICAKICAKICB1bW91bnQgIiRfREJfQklORCIKICB1bW91bnQgIiRfTkNfSU5TVEFMTF9CSU5EIgogIHVtb3VudCAiJF9VU0VSX0ZJTEVTX0JJTkQiCgogIFtbIC16ICIke1VTRVJfRklMRVNfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiRVU0VSX0ZJTEVTX01PVU5UIgogIFtbIC16ICIke05DX0lOU1RBTExfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiROQ19JTlNUQUxMX01PVU5UIgoKICBybSAtcmYgIiRTUUxfRFVNUF9UQVJHRVRfRElSIjsKICAjIENsZWFudXAgTkMgaW5zdGFsbCBkaXIgc25hcHNob3QKICAKICBidHJmcyBzdWJ2b2x1bWUgZGVsZXRlICIkTkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIIgogIAogICMgQ2xlYW51cCBOQyBmaWxlcyBzbmFwc2hvdAogIAogIHVtb3VudCAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IgogIHJtIC1yZiAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IgogIGx2Y2hhbmdlIC1hbiAtSyAiJHtVU0VSX0ZJTEVTX1ZHfS8ke1VTRVJfRklMRVNfU05BUFNIT1RfTkFNRX0iCiAgbHZyZW1vdmUgIi9kZXYvJHtVU0VSX0ZJTEVTX1ZHfS8ke1VTRVJfRklMRVNfU05BUFNIT1RfTkFNRX0iCiAgCiAgCiAgIyBSZW1vdmUgUElEIGZpbGUKICBybSAiJF9QSURfRklMRSIKICBlY2hvICJEb25lLiIKfQoKCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgbW91bnRpbmcgbHZtIHNuYXBzaG90IHRvIGEgbW91bnRwb2ludAptb3VudF9zbmFwc2hvdF9sdm0oKSB7CiAgbG9jYWwgc25hcHNob3QgbW91bnRwb2ludCBvd25lcnNoaXAKICBzbmFwc2hvdD0iJHsxP30iCiAgbW91bnRwb2ludD0iJHsyP30iCiAgbWtkaXIgLXAgIiR7bW91bnRwb2ludH0iCiAgbHZjaGFuZ2UgLWF5IC1LICIke3NuYXBzaG90fSIKICBtb3VudCAtbyAicm8iICIvZGV2LyR7c25hcHNob3R9IiAiJHttb3VudHBvaW50fSIKfQoKCiMjIERldGVjdCB3aGV0aGVyIGEgYmFja3VwIGlzIHN0aWxsIHJ1bm5pbmcgKGFuZCBhYm9ydCBpbiB0aGlzIGNhc2UpCiMgSWYgdGhlIGJhY2t1cCBoYXMgYmVlbiBydW5uaW5nIGZvciBtb3JlIHRoYW4gMTAgaG91cnMsIGl0IGlzIGFzc3VtZWQgdG8gYmUgc3R1Y2sgYW5kIGl0cyBwcm9jZXNzIGtpbGxlZAppZiBbWyAtZiAiJF9QSURfRklMRSIgXV0gJiYgcHMgLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiID4gL2Rldi9udWxsCnRoZW4KICBlbGFwc2VkPSIkKHBzIC1vIGV0aW1lcz0gLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiKSIKICBpZiBbWyAiJHtlbGFwc2VkLy8gL30iIC1ndCAkKCgxMCAqIDM2MDApKSBdXQogIHRoZW4KICAgIGxvZyAiRGV0ZWN0ZWQgYmFja3VwIHByb2Nlc3MgZ29pbmcgZm9yIG92ZXIgMTAgaG91cnMsIGtpbGxpbmcgaXQuLi4iCiAgICBraWxsIC05ICIkKGNhdCAiJF9QSURfRklMRSIpIgogIGVsc2UKICAgIGxvZyAiT25nb2luZyBiYWNrdXAgcHJvY2VzcyBkZXRlY3RlZC4gQWJvcnRpbmcuLi4iCiAgICBleGl0IDAKICBmaQpmaQoKIyBjbGVhbnVwIGxlZnRvdmVycyBmcm9tIGxhc3QgcnVuIGlmIGFueQpjbGVhbnVwID4gL2Rldi9udWxsIDI+JjEgfHw6CgojIFNhdmUgY3VycmVudCBwcm9jZXNzIGlkIHRvIHBpZCBmaWxlCmVjaG8gIiQkIiA+ICIkX1BJRF9GSUxFIgoKIyBjbGVhbnVwIHdpbGwgYmUgcnVuIGF0IHRoZSBlbmQgb2YgdGhlIHNjcmlwdCB3aGV0aGVyIGl0IGZhaWxzIG9yIHN1Y2NlZWRzCnRyYXAgJ2NsZWFudXAgMj4mMSB8IGxvZycgRVhJVAoKIyBNYWtlIHN1cmUgZGlyZWN0b3JpZXMgZXhpc3QKbWtkaXIgLXAgIiRfVVNFUl9GSUxFU19CSU5EIiAiJF9OQ19JTlNUQUxMX0JJTkQiICIkX0RCX0JJTkQiICIkVVNFUl9GSUxFU19NT1VOVCIgIiROQ19JTlNUQUxMX01PVU5UIiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiCgp0aW1lc3RhbXA9IiQoZGF0ZSAiKyVZLSVtLSVkICVIOiVNOiVTICVaIikiCmxvZyAiU3RhcnRpbmcgTmV4dGNsb3VkIFNuYXBzaG90IGF0ICR0aW1lc3RhbXAiCgojIFNuYXBzaG90IGRpc2tzCmxvZyAiQ3JlYXRlIHNuYXBzaG90cy4uLiIKCmJ0cmZzIHN1YnZvbHVtZSBzbmFwc2hvdCAtciAiJHtOQ19JTlNUQUxMX1ZPTFVNRX0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCgpsdmNyZWF0ZSAtcyAtLW5hbWUgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FfSIgIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX0xWfSIgMj4mMSB8IGxvZwptb3VudF9zbmFwc2hvdF9sdm0gIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IiAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IiAyPiYxIHwgbG9nCgpsb2cgIkRvbmUuIgoKIyBEdW1wIERCCmxvZyAiQ3JlYXRlIERCIGR1bXAuLi4iCiIke1NRTERVTVBfQ01EW0BdfSIgPiAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfS9kYi5zcWwiCmxvZyAiRG9uZS4iCgojIEJpbmQgbW91bnQgYWxsIGluZGl2aWR1YWwgc25hcHNob3RzIGludG8gYSBjb21tb24gcGFyZW50IGRpcmVjdG9yeQpsb2cgIkNyZWF0ZSBiaW5kIG1vdW50cy4uLiIKbW91bnQgLS1iaW5kIC1vICJybyx1aWQ9JHtOQ19PV05FUl9VSUR9LGdpZD0ke05DX09XTkVSX0dJRH0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0vJHtOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfTkNfSU5TVEFMTF9CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD0ke1VTRVJfRklMRVNfT1dORVJfVUlEfSxnaWQ9JHtVU0VSX0ZJTEVTX09XTkVSX0dJRH0gICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0vJHtVU0VSX0ZJTEVTX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfVVNFUl9GSUxFU19CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD1yb290LGdpZD1yb290ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtfREJfQklORH0iICAgICAgICAgICAgIDI+JjEgfCBsb2cKbG9nICJEb25lLiIKCiMgQ3JlYXRlIHRoZSBmaW5hbCBzbmFwc2hvdCB3aXRoIGtvcGlhIHVzaW5nIHRoZSBkZWZhdWx0IGtvcGlhIHJlcG9zaXRvcnkgY29uZmlnIChpZiBuZWVkZWQsIHlvdSBjYW4gY2hhbmdlIHRoZSBjb25maWcgZmlsZSB3aXRoIHRoZSAtLWNvbmZpZy1maWxlIHBhcmFtZXRlcikKbG9nICJDcmVhdGUga29waWEgc25hcHNob3QuLi4iCiMgVGVtcG9yYXJ5IGxvZyBmaWxlIGFzIGEgd29ya2Fyb3VuZCB0byBwYXNzIGtvcGlhIGxvZ3MgdG8gb3VyIGxvZyBmdW5jdGlvbgprb3BpYV9sb2dmaWxlPSIkKG1rdGVtcCAtLXRtcGRpciBrb3BpYS1zbmFwc2hvdC5YWFhYWC5sb2cpIgp0YWlsIC1mICIka29waWFfbG9nZmlsZSIgJgprb3BpYSBzbmFwc2hvdCBjcmVhdGUgLS1wYXJhbGxlbD00IC0tdGFncyAiJHtLT1BJQV9UQUdTfSIgLS1zdGFydC10aW1lPSIkdGltZXN0YW1wIiAtLWxvZy1maWxlPSIka29waWFfbG9nZmlsZSIgLS1maWxlLWxvZy1sZXZlbD0iaW5mbyIgIiR7QkFDS1VQX1JPT1R9IgpjYXQgIiR7a29waWFfbG9nZmlsZSUubG9nfSIqLmxvZyB8IGxvZyA+IC9kZXYvbnVsbApsb2cgIkRvbmUuIg==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-linenos data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#!&#x2F;bin&#x2F;bash
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set -euo pipefail
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Procedure
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - The script will create snapshots of the lvm root volume and the btrfs subvolume backing Nextcloud&amp;#39;s user files. Then it will start an sqldump of the database
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - Afterwards, all 3 snapshots will be mounted&#x2F;copied in the same parent directory and uploaded to a kopia repository
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### CONFIGURATION
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for writing logs. Can be left empty to only log to stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;log&#x2F;nc-backup.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud installation directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;17&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path to the btrfs subvolume containing your NC installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;18&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;www&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;19&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where the (temporary) btrfs snapshot for the NC installation directory should be created
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;20&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;www&#x2F;.nc_snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;21&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust this if the nc installation directory is not in the root of the backing filesystem volume
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;22&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;23&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;24&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud files directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;25&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm-1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the LVM volume group containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;26&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_LV&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the logical volume name containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;27&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# DB dump config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;28&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where to temporarily store database dump (should have enough free space)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;29&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;nc-backup-db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;30&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Whatever command can be used to create an sqldump (including parameters like user, host, dbname, password cfg ...)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;31&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - If your DB is run inside docker, just prepend the command with whatever is needed to run a command inside the container,
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;32&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   for example: SQLDUMP_CMD=(docker exec &amp;lt;containername&amp;gt; pg_dump -U postgres -d nc)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;33&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For MariaDB (with the InnoDB engine), make sure to use --single-transaction (and optionally --skip-lock-tables to avoid slow downs for your system) to avoid side effects.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;34&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   See https:&#x2F;&#x2F;mysqldump.guru&#x2F;mysqldump-single-transaction-flag.html for more info.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;35&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For postgresql, no adjustemnts are needed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;36&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;37&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure the connection options for your database:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;38&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;39&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;40&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;41&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;127.0.0.1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;42&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;43&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;44&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;45&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# pg_dump will be supplied with the connection options by writing them to ~&#x2F;.pgpass
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;46&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.pgpass&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;47&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;48&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;pg_dump &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;49&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;50&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Setup any tags here that you want to be added to your your kopia snapshot (comma separated in the format label:value)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;51&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;job:nextcloud-full-backup,nc-files:yes,nc-db:yes,nc-nextcloud:yes&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;52&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;53&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ADVANCED&#x2F;INTERNAL CONFIG - only adjust if you are sure that you know what you&amp;#39;re doing ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;54&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;btrfs&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;55&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;56&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;57&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# NC files LVM snapshot name
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;58&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-backup-nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;59&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;mnt&#x2F;nc-backup-lvm-nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;60&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;61&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;62&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all files from the nextcloud install directory should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;63&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;64&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;65&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;66&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all user files should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;67&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;68&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;69&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;70&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure path where all parts of the backup will be mapped to before transferring with Kopia
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;71&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;nc-backup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;72&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;73&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;74&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### You usually should not need to touch the following variables
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;75&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;76&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;77&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;78&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;79&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;80&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for keeping track of running backup operations
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;81&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;run&#x2F;nc-backup.pid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;82&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;83&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;84&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for logging to both the log file and stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;85&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;86&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;msg message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;87&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;88&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;echo&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;89&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;90&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;91&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;tee -a &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;92&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;93&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;94&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;:-}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;95&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;96&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;while &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;read &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;97&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;do
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;98&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;message&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;99&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;done
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;100&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;return
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;101&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;102&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;103&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;104&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;105&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;106&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for cleaning up snapshots, pid file, etc.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;107&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;108&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;+&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;eu
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;109&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Cleanup...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;110&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;111&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;112&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;113&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;114&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;115&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;116&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;117&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;118&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;119&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;120&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;121&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;122&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC install dir snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;123&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;124&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume delete &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;125&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;126&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC files snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;127&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;128&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;129&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;130&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;an&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;131&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvremove &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;132&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;133&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;134&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove PID file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;135&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;136&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;137&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;138&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;139&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;140&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for mounting lvm snapshot to a mountpoint
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;141&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;142&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;snapshot mountpoint ownership
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;143&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;144&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;145&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;146&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;ay&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;147&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;148&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;149&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;150&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;151&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Detect whether a backup is still running (and abort in this case)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;152&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# If the backup has been running for more than 10 hours, it is assumed to be stuck and its process killed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;153&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;154&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;155&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; etimes=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;156&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;&#x2F; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;}&amp;quot; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;gt &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$((&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;10 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;3600&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)) &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;157&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;158&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Detected backup process going for over 10 hours, killing it...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;159&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kill -9 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;160&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;else
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;161&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Ongoing backup process detected. Aborting...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;162&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;exit 0
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;163&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;164&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;165&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;166&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup leftovers from last run if any
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;167&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;||&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;168&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;169&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Save current process id to pid file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;170&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;gt; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;171&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;172&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup will be run at the end of the script whether it fails or succeeds
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;173&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;trap &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;cleanup 2&amp;gt;&amp;amp;1 | log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; EXIT
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;174&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;175&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Make sure directories exist
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;176&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;177&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;178&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;+%Y-%m-%d %H:%M:%S %Z&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;179&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Starting Nextcloud Snapshot at &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;180&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;181&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Snapshot disks
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;182&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create snapshots...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;183&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;184&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;185&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;186&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;187&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvcreate&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;s&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;name &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_LV&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;188&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;189&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;190&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;191&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;192&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Dump DB
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;193&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create DB dump...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;194&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &amp;gt; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;195&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;196&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;197&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Bind mount all individual snapshots into a common parent directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;198&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create bind mounts...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;199&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;200&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}  &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;201&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=root,gid=root                                        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;                                        &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;             &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;202&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;203&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;204&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Create the final snapshot with kopia using the default kopia repository config (if needed, you can change the config file with the --config-file parameter)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;205&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create kopia snapshot...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;206&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Temporary log file as a workaround to pass kopia logs to our log function
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;207&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mktemp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tmpdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; kopia-snapshot.XXXXX.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;208&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;tail&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;amp;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;209&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot create&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;parallel&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tags &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;start-time&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;log-file&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;file-log-level&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;info&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;210&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;.log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;211&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;

      &lt;&#x2F;div&gt;
    &lt;&#x2F;context-condition&gt;
  

    
    &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;mariadb&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
      &lt;div class=&quot;codeblock&quot;&gt;
        
        
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;CgoKCgojIS9iaW4vYmFzaAoKc2V0IC1ldW8gcGlwZWZhaWwKCiMjIyA9PT09PT09PT09ICMjIwojIFByb2NlZHVyZQojIC0gVGhlIHNjcmlwdCB3aWxsIGNyZWF0ZSBzbmFwc2hvdHMgb2YgdGhlIGx2bSByb290IHZvbHVtZSBhbmQgdGhlIGJ0cmZzIHN1YnZvbHVtZSBiYWNraW5nIE5leHRjbG91ZCdzIHVzZXIgZmlsZXMuIFRoZW4gaXQgd2lsbCBzdGFydCBhbiBzcWxkdW1wIG9mIHRoZSBkYXRhYmFzZQojIC0gQWZ0ZXJ3YXJkcywgYWxsIDMgc25hcHNob3RzIHdpbGwgYmUgbW91bnRlZC9jb3BpZWQgaW4gdGhlIHNhbWUgcGFyZW50IGRpcmVjdG9yeSBhbmQgdXBsb2FkZWQgdG8gYSBrb3BpYSByZXBvc2l0b3J5CiMjIyA9PT09PT09PT09ICMjIwoKIyMjIENPTkZJR1VSQVRJT04KCiMgZmlsZSBmb3Igd3JpdGluZyBsb2dzLiBDYW4gYmUgbGVmdCBlbXB0eSB0byBvbmx5IGxvZyB0byBzdGRvdXQKTE9HX0ZJTEU9Ii92YXIvbG9nL25jLWJhY2t1cC5sb2ciCgojIyBOZXh0Y2xvdWQgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBjb25maWcKTkNfSU5TVEFMTF9WRz0ibHZtLTEiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBMVk0gdm9sdW1lIGdyb3VwIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5Ck5DX0lOU1RBTExfVk9MVU1FPSJuZXh0Y2xvdWQiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBsb2dpY2FsIHZvbHVtZSBuYW1lIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5CiMgQWRqdXN0IHRoaXMgaWYgdGhlIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgaXMgbm90IGluIHRoZSByb290IG9mIHRoZSBiYWNraW5nIGZpbGVzeXN0ZW0gdm9sdW1lCk5DX0lOU1RBTExfUkVMQVRJVkVfUEFUSD0iLyIKCiMjIE5leHRjbG91ZCBmaWxlcyBkaXJlY3RvcnkgY29uZmlnCiMgUGF0aCB0byB0aGUgYnRyZnMgc3Vidm9sdW1lIGNvbnRhaW5pbmcgeW91ciBOQyBmaWxlcyBkaXJlY3RvcnkKVVNFUl9GSUxFU19WT0xVTUU9Ii9tbnQvZGF0YS9uY2RhdGEiCiMgUGF0aCB3aGVyZSB0aGUgKHRlbXBvcmFyeSkgYnRyZnMgc25hcHNob3QgZm9yIHRoZSBOQyBmaWxlcyBkaXJlY3Rvcnkgc2hvdWxkIGJlIGNyZWF0ZWQKVVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIPSIvbW50L2RhdGEvLm5jX2ZpbGVzX3NuYXBzaG90IgojIERCIGR1bXAgY29uZmlnCiMgUGF0aCB3aGVyZSB0byB0ZW1wb3JhcmlseSBzdG9yZSBkYXRhYmFzZSBkdW1wIChzaG91bGQgaGF2ZSBlbm91Z2ggZnJlZSBzcGFjZSkKU1FMX0RVTVBfVEFSR0VUX0RJUj0iL3Zhci9uYy1iYWNrdXAtZGIiCiMgV2hhdGV2ZXIgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYW4gc3FsZHVtcCAoaW5jbHVkaW5nIHBhcmFtZXRlcnMgbGlrZSB1c2VyLCBob3N0LCBkYm5hbWUsIHBhc3N3b3JkIGNmZyAuLi4pCiMgLSBJZiB5b3VyIERCIGlzIHJ1biBpbnNpZGUgZG9ja2VyLCBqdXN0IHByZXBlbmQgdGhlIGNvbW1hbmQgd2l0aCB3aGF0ZXZlciBpcyBuZWVkZWQgdG8gcnVuIGEgY29tbWFuZCBpbnNpZGUgdGhlIGNvbnRhaW5lciwKIyAgIGZvciBleGFtcGxlOiBTUUxEVU1QX0NNRD0oZG9ja2VyIGV4ZWMgPGNvbnRhaW5lcm5hbWU+IHBnX2R1bXAgLVUgcG9zdGdyZXMgLWQgbmMpCiMgLSBGb3IgTWFyaWFEQiAod2l0aCB0aGUgSW5ub0RCIGVuZ2luZSksIG1ha2Ugc3VyZSB0byB1c2UgLS1zaW5nbGUtdHJhbnNhY3Rpb24gKGFuZCBvcHRpb25hbGx5IC0tc2tpcC1sb2NrLXRhYmxlcyB0byBhdm9pZCBzbG93IGRvd25zIGZvciB5b3VyIHN5c3RlbSkgdG8gYXZvaWQgc2lkZSBlZmZlY3RzLgojICAgU2VlIGh0dHBzOi8vbXlzcWxkdW1wLmd1cnUvbXlzcWxkdW1wLXNpbmdsZS10cmFuc2FjdGlvbi1mbGFnLmh0bWwgZm9yIG1vcmUgaW5mby4KIyAtIEZvciBwb3N0Z3Jlc3FsLCBubyBhZGp1c3RlbW50cyBhcmUgbmVlZGVkCgojIENvbmZpZ3VyZSB0aGUgY29ubmVjdGlvbiBvcHRpb25zIGZvciB5b3VyIGRhdGFiYXNlOgpEQl9VU0VSPSJuZXh0Y2xvdWQiCkRCX05BTUU9Im5leHRjbG91ZCIKREJfUEFTU1dPUkQ9InBhc3N3b3JkIgpEQl9IT1NUPSIxMjcuMC4wLjEiCkRCX1BPUlQ9IjU0MzIiCgojIG15c3FsZHVtcCB3aWxsIGJlIHN1cHBsaWVkIHdpdGggdGhlIGRiIGNyZWRlbnRpYWxzIGJ5IHdyaXRpbmcgdGhlbSB0byB+Ly5teS5jbmYKTVlDTkZfUEFUSD0iJEhPTUUvLm15LmNuZiIKaW5zdGFsbCAtbSAwNjAwIDwoZWNobyAtZSAiW215c3FsZHVtcF1cbnVzZXI9JHtEQl9VU0VSfVxucGFzc3dvcmQ9JHtEQl9QQVNTV09SRH0iKSAiJHtNWUNORl9QQVRIfSIKU1FMRFVNUF9DTUQ9KG15c3FsZHVtcCAtLWhvc3Q9IiR7REJfSE9TVH0iIC0tcG9ydD0iJHtEQl9QT1JUfSIgLS1zaW5nbGUtdHJhbnNhY3Rpb24gLS1za2lwLWxvY2stdGFibGVzICIke0RCX05BTUV9IikKCgojIFNldHVwIGFueSB0YWdzIGhlcmUgdGhhdCB5b3Ugd2FudCB0byBiZSBhZGRlZCB0byB5b3VyIHlvdXIga29waWEgc25hcHNob3QgKGNvbW1hIHNlcGFyYXRlZCBpbiB0aGUgZm9ybWF0IGxhYmVsOnZhbHVlKQpLT1BJQV9UQUdTPSJqb2I6bmV4dGNsb3VkLWZ1bGwtYmFja3VwLG5jLWZpbGVzOnllcyxuYy1kYjp5ZXMsbmMtbmV4dGNsb3VkOnllcyIKCiMjIyBBRFZBTkNFRC9JTlRFUk5BTCBDT05GSUcgLSBvbmx5IGFkanVzdCBpZiB5b3UgYXJlIHN1cmUgdGhhdCB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZyAjIyMKTkNfSU5TVEFMTF9GU1RZUEU9Imx2bSIKIyBOQyBpbnN0YWxsIExWTSBzbmFwc2hvdCBuYW1lCk5DX0lOU1RBTExfU05BUFNIT1RfTkFNRT0ibmMtYmFja3VwLW5leHRjbG91ZCIKTkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIPSIvcnVuL21udC9uYy1iYWNrdXAtbHZtLW5leHRjbG91ZCIKClVTRVJfRklMRVNfRlNUWVBFPSJidHJmcyIKCgojIEZPUkNFIFVJRCBhbmQgR0lEIHRoYXQgYWxsIGZpbGVzIGZyb20gdGhlIG5leHRjbG91ZCBpbnN0YWxsIGRpcmVjdG9yeSBzaG91bGQgaGF2ZSBpbiB0aGUgYmFja3VwIChlLmcuIHRoYXQgb2YgeW91ciB3d3ctZGF0YSB1c2VyIGFuZCBncm91cCkKTkNfT1dORVJfVUlEPTMzCk5DX09XTkVSX0dJRD0zMwoKIyBGT1JDRSBVSUQgYW5kIEdJRCB0aGF0IGFsbCB1c2VyIGZpbGVzIHNob3VsZCBoYXZlIGluIHRoZSBiYWNrdXAgKGUuZy4gdGhhdCBvZiB5b3VyIHd3dy1kYXRhIHVzZXIgYW5kIGdyb3VwKQpVU0VSX0ZJTEVTX09XTkVSX1VJRD0zMwpVU0VSX0ZJTEVTX09XTkVSX0dJRD0zMwoKIyBDb25maWd1cmUgcGF0aCB3aGVyZSBhbGwgcGFydHMgb2YgdGhlIGJhY2t1cCB3aWxsIGJlIG1hcHBlZCB0byBiZWZvcmUgdHJhbnNmZXJyaW5nIHdpdGggS29waWEKQkFDS1VQX1JPT1Q9Ii9ydW4vbmMtYmFja3VwIgoKCiMjIyBZb3UgdXN1YWxseSBzaG91bGQgbm90IG5lZWQgdG8gdG91Y2ggdGhlIGZvbGxvd2luZyB2YXJpYWJsZXMKCl9VU0VSX0ZJTEVTX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L25jX2ZpbGVzIgpfTkNfSU5TVEFMTF9CSU5EPSIke0JBQ0tVUF9ST09UfS9uZXh0Y2xvdWQiCl9EQl9CSU5EPSIke0JBQ0tVUF9ST09UfS9kYiIKCiMgZmlsZSBmb3Iga2VlcGluZyB0cmFjayBvZiBydW5uaW5nIGJhY2t1cCBvcGVyYXRpb25zCl9QSURfRklMRT0iL3Zhci9ydW4vbmMtYmFja3VwLnBpZCIKCgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGxvZ2dpbmcgdG8gYm90aCB0aGUgbG9nIGZpbGUgYW5kIHN0ZG91dApsb2coKSB7CiAgbG9jYWwgbXNnIG1lc3NhZ2UKCiAgZndkPShlY2hvKQogIGlmIFtbIC1uICIkTE9HX0ZJTEUiIF1dCiAgdGhlbgogIGZ3ZD0odGVlIC1hICIkTE9HX0ZJTEUiKQogIGZpCgogIGlmIFtbIC16ICIkezE6LX0iIF1dCiAgdGhlbgogIHdoaWxlIHJlYWQgLXIgbWVzc2FnZQogIGRvCiAgZWNobyAiXCQkJD4kKGRhdGUgLUlzKT0+IiAiJHttZXNzYWdlW0BdfSIgMj4mMSB8ICIke2Z3ZFtAXX0iCiAgZG9uZQogIHJldHVybgogIGZpCgogIGVjaG8gIlwkJCQ+JChkYXRlIC1Jcyk9PiIgIiR7QH0iIDI+JjEgfCAiJHtmd2RbQF19Igp9CgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGNsZWFuaW5nIHVwIHNuYXBzaG90cywgcGlkIGZpbGUsIGV0Yy4KY2xlYW51cCgpIHsKICBzZXQgK2V1CiAgZWNobyAiQ2xlYW51cC4uLiIKICAKICBybSAtcmYgIiR7UEdQQVNTX1BBVEh9IgogIAogIAogIHVtb3VudCAiJF9EQl9CSU5EIgogIHVtb3VudCAiJF9OQ19JTlNUQUxMX0JJTkQiCiAgdW1vdW50ICIkX1VTRVJfRklMRVNfQklORCIKCiAgW1sgLXogIiR7VVNFUl9GSUxFU19NT1VOVH0iIF1dIHx8IHVtb3VudCAiJFVTRVJfRklMRVNfTU9VTlQiCiAgW1sgLXogIiR7TkNfSU5TVEFMTF9NT1VOVH0iIF1dIHx8IHVtb3VudCAiJE5DX0lOU1RBTExfTU9VTlQiCgogIHJtIC1yZiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiOwogICMgQ2xlYW51cCBOQyBpbnN0YWxsIGRpciBzbmFwc2hvdAogIAogIHVtb3VudCAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9IgogIHJtIC1yZiAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9IgogIGx2Y2hhbmdlIC1hbiAtSyAiJHtOQ19JTlNUQUxMX1ZHfS8ke05DX0lOU1RBTExfU05BUFNIT1RfTkFNRX0iCiAgbHZyZW1vdmUgIi9kZXYvJHtOQ19JTlNUQUxMX1ZHfS8ke05DX0lOU1RBTExfU05BUFNIT1RfTkFNRX0iCiAgCiAgIyBDbGVhbnVwIE5DIGZpbGVzIHNuYXBzaG90CiAgCiAgYnRyZnMgc3Vidm9sdW1lIGRlbGV0ZSAiJFVTRVJfRklMRVNfU05BUFNIT1RfUEFUSCIKICAKICAKICAjIFJlbW92ZSBQSUQgZmlsZQogIHJtICIkX1BJRF9GSUxFIgogIGVjaG8gIkRvbmUuIgp9CgoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBtb3VudGluZyBsdm0gc25hcHNob3QgdG8gYSBtb3VudHBvaW50Cm1vdW50X3NuYXBzaG90X2x2bSgpIHsKICBsb2NhbCBzbmFwc2hvdCBtb3VudHBvaW50IG93bmVyc2hpcAogIHNuYXBzaG90PSIkezE&amp;#x2F;fSIKICBtb3VudHBvaW50PSIkezI&amp;#x2F;fSIKICBta2RpciAtcCAiJHttb3VudHBvaW50fSIKICBsdmNoYW5nZSAtYXkgLUsgIiR7c25hcHNob3R9IgogIG1vdW50IC1vICJybyIgIi9kZXYvJHtzbmFwc2hvdH0iICIke21vdW50cG9pbnR9Igp9CgoKIyMgRGV0ZWN0IHdoZXRoZXIgYSBiYWNrdXAgaXMgc3RpbGwgcnVubmluZyAoYW5kIGFib3J0IGluIHRoaXMgY2FzZSkKIyBJZiB0aGUgYmFja3VwIGhhcyBiZWVuIHJ1bm5pbmcgZm9yIG1vcmUgdGhhbiAxMCBob3VycywgaXQgaXMgYXNzdW1lZCB0byBiZSBzdHVjayBhbmQgaXRzIHByb2Nlc3Mga2lsbGVkCmlmIFtbIC1mICIkX1BJRF9GSUxFIiBdXSAmJiBwcyAtcCAiJChjYXQgIiRfUElEX0ZJTEUiKSIgPiAvZGV2L251bGwKdGhlbgogIGVsYXBzZWQ9IiQocHMgLW8gZXRpbWVzPSAtcCAiJChjYXQgIiRfUElEX0ZJTEUiKSIpIgogIGlmIFtbICIke2VsYXBzZWQvLyAvfSIgLWd0ICQoKDEwICogMzYwMCkpIF1dCiAgdGhlbgogICAgbG9nICJEZXRlY3RlZCBiYWNrdXAgcHJvY2VzcyBnb2luZyBmb3Igb3ZlciAxMCBob3Vycywga2lsbGluZyBpdC4uLiIKICAgIGtpbGwgLTkgIiQoY2F0ICIkX1BJRF9GSUxFIikiCiAgZWxzZQogICAgbG9nICJPbmdvaW5nIGJhY2t1cCBwcm9jZXNzIGRldGVjdGVkLiBBYm9ydGluZy4uLiIKICAgIGV4aXQgMAogIGZpCmZpCgojIGNsZWFudXAgbGVmdG92ZXJzIGZyb20gbGFzdCBydW4gaWYgYW55CmNsZWFudXAgPiAvZGV2L251bGwgMj4mMSB8fDoKCiMgU2F2ZSBjdXJyZW50IHByb2Nlc3MgaWQgdG8gcGlkIGZpbGUKZWNobyAiJCQiID4gIiRfUElEX0ZJTEUiCgojIGNsZWFudXAgd2lsbCBiZSBydW4gYXQgdGhlIGVuZCBvZiB0aGUgc2NyaXB0IHdoZXRoZXIgaXQgZmFpbHMgb3Igc3VjY2VlZHMKdHJhcCAnY2xlYW51cCAyPiYxIHwgbG9nJyBFWElUCgojIE1ha2Ugc3VyZSBkaXJlY3RvcmllcyBleGlzdApta2RpciAtcCAiJF9VU0VSX0ZJTEVTX0JJTkQiICIkX05DX0lOU1RBTExfQklORCIgIiRfREJfQklORCIgIiRVU0VSX0ZJTEVTX01PVU5UIiAiJE5DX0lOU1RBTExfTU9VTlQiICIkU1FMX0RVTVBfVEFSR0VUX0RJUiIKCnRpbWVzdGFtcD0iJChkYXRlICIrJVktJW0tJWQgJUg6JU06JVMgJVoiKSIKbG9nICJTdGFydGluZyBOZXh0Y2xvdWQgU25hcHNob3QgYXQgJHRpbWVzdGFtcCIKCiMgU25hcHNob3QgZGlza3MKbG9nICJDcmVhdGUgc25hcHNob3RzLi4uIgoKbHZjcmVhdGUgLXMgLS1uYW1lICIkTkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FIiAiJHtOQ19JTlNUQUxMX1ZHfS8ke05DX0lOU1RBTExfVk9MVU1FfSIgMj4mMSB8IGxvZwptb3VudF9zbmFwc2hvdF9sdm0gIiR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUV9IiAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9IiAyPiYxIHwgbG9nCgoKYnRyZnMgc3Vidm9sdW1lIHNuYXBzaG90IC1yICIke1VTRVJfRklMRVNfVk9MVU1FfSIgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfSIgMj4mMSB8IGxvZwoKbG9nICJEb25lLiIKCiMgRHVtcCBEQgpsb2cgIkNyZWF0ZSBEQiBkdW1wLi4uIgoiJHtTUUxEVU1QX0NNRFtAXX0iID4gIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0vZGIuc3FsIgpsb2cgIkRvbmUuIgoKIyBCaW5kIG1vdW50IGFsbCBpbmRpdmlkdWFsIHNuYXBzaG90cyBpbnRvIGEgY29tbW9uIHBhcmVudCBkaXJlY3RvcnkKbG9nICJDcmVhdGUgYmluZCBtb3VudHMuLi4iCm1vdW50IC0tYmluZCAtbyAicm8sdWlkPSR7TkNfT1dORVJfVUlEfSxnaWQ9JHtOQ19PV05FUl9HSUR9IiAiJHtOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEh9LyR7TkNfSU5TVEFMTF9SRUxBVElWRV9QQVRIIy99IiAgICAgIiR7X05DX0lOU1RBTExfQklORH0iICAgICAyPiYxIHwgbG9nCm1vdW50IC0tYmluZCAtbyBybyx1aWQ9JHtVU0VSX0ZJTEVTX09XTkVSX1VJRH0sZ2lkPSR7VVNFUl9GSUxFU19PV05FUl9HSUR9ICAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9LyR7VVNFUl9GSUxFU19SRUxBVElWRV9QQVRIIy99IiAgICAgIiR7X1VTRVJfRklMRVNfQklORH0iICAgICAyPiYxIHwgbG9nCm1vdW50IC0tYmluZCAtbyBybyx1aWQ9cm9vdCxnaWQ9cm9vdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7X0RCX0JJTkR9IiAgICAgICAgICAgICAyPiYxIHwgbG9nCmxvZyAiRG9uZS4iCgojIENyZWF0ZSB0aGUgZmluYWwgc25hcHNob3Qgd2l0aCBrb3BpYSB1c2luZyB0aGUgZGVmYXVsdCBrb3BpYSByZXBvc2l0b3J5IGNvbmZpZyAoaWYgbmVlZGVkLCB5b3UgY2FuIGNoYW5nZSB0aGUgY29uZmlnIGZpbGUgd2l0aCB0aGUgLS1jb25maWctZmlsZSBwYXJhbWV0ZXIpCmxvZyAiQ3JlYXRlIGtvcGlhIHNuYXBzaG90Li4uIgojIFRlbXBvcmFyeSBsb2cgZmlsZSBhcyBhIHdvcmthcm91bmQgdG8gcGFzcyBrb3BpYSBsb2dzIHRvIG91ciBsb2cgZnVuY3Rpb24Ka29waWFfbG9nZmlsZT0iJChta3RlbXAgLS10bXBkaXIga29waWEtc25hcHNob3QuWFhYWFgubG9nKSIKdGFpbCAtZiAiJGtvcGlhX2xvZ2ZpbGUiICYKa29waWEgc25hcHNob3QgY3JlYXRlIC0tcGFyYWxsZWw9NCAtLXRhZ3MgIiR7S09QSUFfVEFHU30iIC0tc3RhcnQtdGltZT0iJHRpbWVzdGFtcCIgLS1sb2ctZmlsZT0iJGtvcGlhX2xvZ2ZpbGUiIC0tZmlsZS1sb2ctbGV2ZWw9ImluZm8iICIke0JBQ0tVUF9ST09UfSIKY2F0ICIke2tvcGlhX2xvZ2ZpbGUlLmxvZ30iKi5sb2cgfCBsb2cgPiAvZGV2L251bGwKbG9nICJEb25lLiI=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-linenos data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#!&#x2F;bin&#x2F;bash
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set -euo pipefail
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Procedure
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - The script will create snapshots of the lvm root volume and the btrfs subvolume backing Nextcloud&amp;#39;s user files. Then it will start an sqldump of the database
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - Afterwards, all 3 snapshots will be mounted&#x2F;copied in the same parent directory and uploaded to a kopia repository
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### CONFIGURATION
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for writing logs. Can be left empty to only log to stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;log&#x2F;nc-backup.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud installation directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;17&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm-1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the LVM volume group containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;18&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the logical volume name containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;19&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust this if the nc installation directory is not in the root of the backing filesystem volume
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;20&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;21&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;22&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud files directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;23&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path to the btrfs subvolume containing your NC files directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;24&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;mnt&#x2F;data&#x2F;ncdata&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;25&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where the (temporary) btrfs snapshot for the NC files directory should be created
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;26&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;mnt&#x2F;data&#x2F;.nc_files_snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;27&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# DB dump config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;28&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where to temporarily store database dump (should have enough free space)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;29&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;nc-backup-db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;30&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Whatever command can be used to create an sqldump (including parameters like user, host, dbname, password cfg ...)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;31&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - If your DB is run inside docker, just prepend the command with whatever is needed to run a command inside the container,
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;32&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   for example: SQLDUMP_CMD=(docker exec &amp;lt;containername&amp;gt; pg_dump -U postgres -d nc)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;33&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For MariaDB (with the InnoDB engine), make sure to use --single-transaction (and optionally --skip-lock-tables to avoid slow downs for your system) to avoid side effects.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;34&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   See https:&#x2F;&#x2F;mysqldump.guru&#x2F;mysqldump-single-transaction-flag.html for more info.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;35&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For postgresql, no adjustemnts are needed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;36&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;37&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure the connection options for your database:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;38&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;39&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;40&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;41&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;127.0.0.1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;42&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;43&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;44&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# mysqldump will be supplied with the db credentials by writing them to ~&#x2F;.my.cnf
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;45&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;MYCNF_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.my.cnf&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;46&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;e &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[mysqldump]\nuser=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;\npassword=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;MYCNF_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;47&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;mysqldump --host=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; --port=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; --single-transaction --skip-lock-tables &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;48&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;49&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;50&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Setup any tags here that you want to be added to your your kopia snapshot (comma separated in the format label:value)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;51&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;job:nextcloud-full-backup,nc-files:yes,nc-db:yes,nc-nextcloud:yes&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;52&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;53&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ADVANCED&#x2F;INTERNAL CONFIG - only adjust if you are sure that you know what you&amp;#39;re doing ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;54&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;55&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# NC install LVM snapshot name
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;56&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-backup-nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;57&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;mnt&#x2F;nc-backup-lvm-nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;58&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;59&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;btrfs&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;60&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;61&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;62&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all files from the nextcloud install directory should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;63&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;64&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;65&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;66&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all user files should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;67&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;68&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;69&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;70&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure path where all parts of the backup will be mapped to before transferring with Kopia
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;71&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;nc-backup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;72&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;73&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;74&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### You usually should not need to touch the following variables
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;75&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;76&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;77&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;78&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;79&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;80&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for keeping track of running backup operations
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;81&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;run&#x2F;nc-backup.pid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;82&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;83&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;84&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for logging to both the log file and stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;85&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;86&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;msg message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;87&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;88&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;echo&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;89&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;90&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;91&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;tee -a &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;92&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;93&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;94&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;:-}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;95&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;96&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;while &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;read &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;97&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;do
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;98&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;message&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;99&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;done
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;100&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;return
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;101&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;102&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;103&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;104&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;105&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;106&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for cleaning up snapshots, pid file, etc.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;107&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;108&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;+&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;eu
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;109&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Cleanup...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;110&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;111&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;112&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;113&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;114&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;115&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;116&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;117&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;118&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;119&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;120&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;121&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;122&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC install dir snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;123&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;124&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;125&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;126&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;an&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;127&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvremove &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;128&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;129&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC files snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;130&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;131&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume delete &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;132&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;133&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;134&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove PID file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;135&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;136&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;137&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;138&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;139&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;140&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for mounting lvm snapshot to a mountpoint
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;141&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;142&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;snapshot mountpoint ownership
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;143&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;144&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;145&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;146&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;ay&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;147&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;148&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;149&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;150&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;151&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Detect whether a backup is still running (and abort in this case)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;152&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# If the backup has been running for more than 10 hours, it is assumed to be stuck and its process killed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;153&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;154&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;155&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; etimes=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;156&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;&#x2F; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;}&amp;quot; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;gt &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$((&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;10 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;3600&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)) &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;157&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;158&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Detected backup process going for over 10 hours, killing it...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;159&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kill -9 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;160&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;else
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;161&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Ongoing backup process detected. Aborting...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;162&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;exit 0
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;163&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;164&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;165&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;166&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup leftovers from last run if any
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;167&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;||&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;168&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;169&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Save current process id to pid file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;170&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;gt; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;171&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;172&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup will be run at the end of the script whether it fails or succeeds
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;173&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;trap &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;cleanup 2&amp;gt;&amp;amp;1 | log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; EXIT
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;174&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;175&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Make sure directories exist
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;176&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;177&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;178&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;+%Y-%m-%d %H:%M:%S %Z&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;179&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Starting Nextcloud Snapshot at &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;180&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;181&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Snapshot disks
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;182&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create snapshots...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;183&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;184&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvcreate&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;s&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;name &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;185&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;186&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;187&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;188&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;189&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;190&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;191&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;192&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Dump DB
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;193&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create DB dump...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;194&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &amp;gt; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;195&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;196&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;197&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Bind mount all individual snapshots into a common parent directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;198&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create bind mounts...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;199&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;200&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}  &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;201&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=root,gid=root                                        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;                                        &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;             &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;202&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;203&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;204&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Create the final snapshot with kopia using the default kopia repository config (if needed, you can change the config file with the --config-file parameter)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;205&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create kopia snapshot...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;206&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Temporary log file as a workaround to pass kopia logs to our log function
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;207&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mktemp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tmpdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; kopia-snapshot.XXXXX.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;208&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;tail&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;amp;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;209&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot create&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;parallel&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tags &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;start-time&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;log-file&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;file-log-level&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;info&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;210&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;.log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;211&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;

      &lt;&#x2F;div&gt;
    &lt;&#x2F;context-condition&gt;
  

    
    &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;btrfs&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;postgres&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
      &lt;div class=&quot;codeblock&quot;&gt;
        
        
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;CgoKCgojIS9iaW4vYmFzaAoKc2V0IC1ldW8gcGlwZWZhaWwKCiMjIyA9PT09PT09PT09ICMjIwojIFByb2NlZHVyZQojIC0gVGhlIHNjcmlwdCB3aWxsIGNyZWF0ZSBzbmFwc2hvdHMgb2YgdGhlIGx2bSByb290IHZvbHVtZSBhbmQgdGhlIGJ0cmZzIHN1YnZvbHVtZSBiYWNraW5nIE5leHRjbG91ZCdzIHVzZXIgZmlsZXMuIFRoZW4gaXQgd2lsbCBzdGFydCBhbiBzcWxkdW1wIG9mIHRoZSBkYXRhYmFzZQojIC0gQWZ0ZXJ3YXJkcywgYWxsIDMgc25hcHNob3RzIHdpbGwgYmUgbW91bnRlZC9jb3BpZWQgaW4gdGhlIHNhbWUgcGFyZW50IGRpcmVjdG9yeSBhbmQgdXBsb2FkZWQgdG8gYSBrb3BpYSByZXBvc2l0b3J5CiMjIyA9PT09PT09PT09ICMjIwoKIyMjIENPTkZJR1VSQVRJT04KCiMgZmlsZSBmb3Igd3JpdGluZyBsb2dzLiBDYW4gYmUgbGVmdCBlbXB0eSB0byBvbmx5IGxvZyB0byBzdGRvdXQKTE9HX0ZJTEU9Ii92YXIvbG9nL25jLWJhY2t1cC5sb2ciCgojIyBOZXh0Y2xvdWQgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBjb25maWcKTkNfSU5TVEFMTF9WRz0ibHZtLTEiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBMVk0gdm9sdW1lIGdyb3VwIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5Ck5DX0lOU1RBTExfVk9MVU1FPSJuZXh0Y2xvdWQiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBsb2dpY2FsIHZvbHVtZSBuYW1lIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5CiMgQWRqdXN0IHRoaXMgaWYgdGhlIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgaXMgbm90IGluIHRoZSByb290IG9mIHRoZSBiYWNraW5nIGZpbGVzeXN0ZW0gdm9sdW1lCk5DX0lOU1RBTExfUkVMQVRJVkVfUEFUSD0iLyIKCiMjIE5leHRjbG91ZCBmaWxlcyBkaXJlY3RvcnkgY29uZmlnCiMgUGF0aCB0byB0aGUgYnRyZnMgc3Vidm9sdW1lIGNvbnRhaW5pbmcgeW91ciBOQyBmaWxlcyBkaXJlY3RvcnkKVVNFUl9GSUxFU19WT0xVTUU9Ii9tbnQvZGF0YS9uY2RhdGEiCiMgUGF0aCB3aGVyZSB0aGUgKHRlbXBvcmFyeSkgYnRyZnMgc25hcHNob3QgZm9yIHRoZSBOQyBmaWxlcyBkaXJlY3Rvcnkgc2hvdWxkIGJlIGNyZWF0ZWQKVVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIPSIvbW50L2RhdGEvLm5jX2ZpbGVzX3NuYXBzaG90IgojIERCIGR1bXAgY29uZmlnCiMgUGF0aCB3aGVyZSB0byB0ZW1wb3JhcmlseSBzdG9yZSBkYXRhYmFzZSBkdW1wIChzaG91bGQgaGF2ZSBlbm91Z2ggZnJlZSBzcGFjZSkKU1FMX0RVTVBfVEFSR0VUX0RJUj0iL3Zhci9uYy1iYWNrdXAtZGIiCiMgV2hhdGV2ZXIgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYW4gc3FsZHVtcCAoaW5jbHVkaW5nIHBhcmFtZXRlcnMgbGlrZSB1c2VyLCBob3N0LCBkYm5hbWUsIHBhc3N3b3JkIGNmZyAuLi4pCiMgLSBJZiB5b3VyIERCIGlzIHJ1biBpbnNpZGUgZG9ja2VyLCBqdXN0IHByZXBlbmQgdGhlIGNvbW1hbmQgd2l0aCB3aGF0ZXZlciBpcyBuZWVkZWQgdG8gcnVuIGEgY29tbWFuZCBpbnNpZGUgdGhlIGNvbnRhaW5lciwKIyAgIGZvciBleGFtcGxlOiBTUUxEVU1QX0NNRD0oZG9ja2VyIGV4ZWMgPGNvbnRhaW5lcm5hbWU+IHBnX2R1bXAgLVUgcG9zdGdyZXMgLWQgbmMpCiMgLSBGb3IgTWFyaWFEQiAod2l0aCB0aGUgSW5ub0RCIGVuZ2luZSksIG1ha2Ugc3VyZSB0byB1c2UgLS1zaW5nbGUtdHJhbnNhY3Rpb24gKGFuZCBvcHRpb25hbGx5IC0tc2tpcC1sb2NrLXRhYmxlcyB0byBhdm9pZCBzbG93IGRvd25zIGZvciB5b3VyIHN5c3RlbSkgdG8gYXZvaWQgc2lkZSBlZmZlY3RzLgojICAgU2VlIGh0dHBzOi8vbXlzcWxkdW1wLmd1cnUvbXlzcWxkdW1wLXNpbmdsZS10cmFuc2FjdGlvbi1mbGFnLmh0bWwgZm9yIG1vcmUgaW5mby4KIyAtIEZvciBwb3N0Z3Jlc3FsLCBubyBhZGp1c3RlbW50cyBhcmUgbmVlZGVkCgojIENvbmZpZ3VyZSB0aGUgY29ubmVjdGlvbiBvcHRpb25zIGZvciB5b3VyIGRhdGFiYXNlOgpEQl9VU0VSPSJuZXh0Y2xvdWQiCkRCX05BTUU9Im5leHRjbG91ZCIKREJfUEFTU1dPUkQ9InBhc3N3b3JkIgpEQl9IT1NUPSIxMjcuMC4wLjEiCkRCX1BPUlQ9IjU0MzIiCgoKIyBwZ19kdW1wIHdpbGwgYmUgc3VwcGxpZWQgd2l0aCB0aGUgY29ubmVjdGlvbiBvcHRpb25zIGJ5IHdyaXRpbmcgdGhlbSB0byB+Ly5wZ3Bhc3MKUEdQQVNTX1BBVEg9IiR7SE9NRX0vLnBncGFzcyIKaW5zdGFsbCAtbSAwNjAwIDwoZWNobyAiJHtEQl9IT1NUfToke0RCX1BPUlR9OiR7REJfTkFNRX06JHtEQl9VU0VSfToke0RCX1BBU1NXT1JEfSIpICIke1BHUEFTU19QQVRIfSIKU1FMRFVNUF9DTUQ9KHBnX2R1bXAgIiR7REJfTkFNRX0iKQoKIyBTZXR1cCBhbnkgdGFncyBoZXJlIHRoYXQgeW91IHdhbnQgdG8gYmUgYWRkZWQgdG8geW91ciB5b3VyIGtvcGlhIHNuYXBzaG90IChjb21tYSBzZXBhcmF0ZWQgaW4gdGhlIGZvcm1hdCBsYWJlbDp2YWx1ZSkKS09QSUFfVEFHUz0iam9iOm5leHRjbG91ZC1mdWxsLWJhY2t1cCxuYy1maWxlczp5ZXMsbmMtZGI6eWVzLG5jLW5leHRjbG91ZDp5ZXMiCgojIyMgQURWQU5DRUQvSU5URVJOQUwgQ09ORklHIC0gb25seSBhZGp1c3QgaWYgeW91IGFyZSBzdXJlIHRoYXQgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcgIyMjCk5DX0lOU1RBTExfRlNUWVBFPSJsdm0iCiMgTkMgaW5zdGFsbCBMVk0gc25hcHNob3QgbmFtZQpOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUU9Im5jLWJhY2t1cC1uZXh0Y2xvdWQiCk5DX0lOU1RBTExfU05BUFNIT1RfUEFUSD0iL3J1bi9tbnQvbmMtYmFja3VwLWx2bS1uZXh0Y2xvdWQiCgpVU0VSX0ZJTEVTX0ZTVFlQRT0iYnRyZnMiCgoKIyBGT1JDRSBVSUQgYW5kIEdJRCB0aGF0IGFsbCBmaWxlcyBmcm9tIHRoZSBuZXh0Y2xvdWQgaW5zdGFsbCBkaXJlY3Rvcnkgc2hvdWxkIGhhdmUgaW4gdGhlIGJhY2t1cCAoZS5nLiB0aGF0IG9mIHlvdXIgd3d3LWRhdGEgdXNlciBhbmQgZ3JvdXApCk5DX09XTkVSX1VJRD0zMwpOQ19PV05FUl9HSUQ9MzMKCiMgRk9SQ0UgVUlEIGFuZCBHSUQgdGhhdCBhbGwgdXNlciBmaWxlcyBzaG91bGQgaGF2ZSBpbiB0aGUgYmFja3VwIChlLmcuIHRoYXQgb2YgeW91ciB3d3ctZGF0YSB1c2VyIGFuZCBncm91cCkKVVNFUl9GSUxFU19PV05FUl9VSUQ9MzMKVVNFUl9GSUxFU19PV05FUl9HSUQ9MzMKCiMgQ29uZmlndXJlIHBhdGggd2hlcmUgYWxsIHBhcnRzIG9mIHRoZSBiYWNrdXAgd2lsbCBiZSBtYXBwZWQgdG8gYmVmb3JlIHRyYW5zZmVycmluZyB3aXRoIEtvcGlhCkJBQ0tVUF9ST09UPSIvcnVuL25jLWJhY2t1cCIKCgojIyMgWW91IHVzdWFsbHkgc2hvdWxkIG5vdCBuZWVkIHRvIHRvdWNoIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzCgpfVVNFUl9GSUxFU19CSU5EPSIke0JBQ0tVUF9ST09UfS9uY19maWxlcyIKX05DX0lOU1RBTExfQklORD0iJHtCQUNLVVBfUk9PVH0vbmV4dGNsb3VkIgpfREJfQklORD0iJHtCQUNLVVBfUk9PVH0vZGIiCgojIGZpbGUgZm9yIGtlZXBpbmcgdHJhY2sgb2YgcnVubmluZyBiYWNrdXAgb3BlcmF0aW9ucwpfUElEX0ZJTEU9Ii92YXIvcnVuL25jLWJhY2t1cC5waWQiCgoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBsb2dnaW5nIHRvIGJvdGggdGhlIGxvZyBmaWxlIGFuZCBzdGRvdXQKbG9nKCkgewogIGxvY2FsIG1zZyBtZXNzYWdlCgogIGZ3ZD0oZWNobykKICBpZiBbWyAtbiAiJExPR19GSUxFIiBdXQogIHRoZW4KICBmd2Q9KHRlZSAtYSAiJExPR19GSUxFIikKICBmaQoKICBpZiBbWyAteiAiJHsxOi19IiBdXQogIHRoZW4KICB3aGlsZSByZWFkIC1yIG1lc3NhZ2UKICBkbwogIGVjaG8gIlwkJCQ+JChkYXRlIC1Jcyk9PiIgIiR7bWVzc2FnZVtAXX0iIDI+JjEgfCAiJHtmd2RbQF19IgogIGRvbmUKICByZXR1cm4KICBmaQoKICBlY2hvICJcJCQkPiQoZGF0ZSAtSXMpPT4iICIke0B9IiAyPiYxIHwgIiR7ZndkW0BdfSIKfQoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjbGVhbmluZyB1cCBzbmFwc2hvdHMsIHBpZCBmaWxlLCBldGMuCmNsZWFudXAoKSB7CiAgc2V0ICtldQogIGVjaG8gIkNsZWFudXAuLi4iCiAgCiAgcm0gLXJmICIke1BHUEFTU19QQVRIfSIKICAKICAKICB1bW91bnQgIiRfREJfQklORCIKICB1bW91bnQgIiRfTkNfSU5TVEFMTF9CSU5EIgogIHVtb3VudCAiJF9VU0VSX0ZJTEVTX0JJTkQiCgogIFtbIC16ICIke1VTRVJfRklMRVNfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiRVU0VSX0ZJTEVTX01PVU5UIgogIFtbIC16ICIke05DX0lOU1RBTExfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiROQ19JTlNUQUxMX01PVU5UIgoKICBybSAtcmYgIiRTUUxfRFVNUF9UQVJHRVRfRElSIjsKICAjIENsZWFudXAgTkMgaW5zdGFsbCBkaXIgc25hcHNob3QKICAKICB1bW91bnQgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfSIKICBybSAtcmYgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfSIKICBsdmNoYW5nZSAtYW4gLUsgIiR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUV9IgogIGx2cmVtb3ZlICIvZGV2LyR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUV9IgogIAogICMgQ2xlYW51cCBOQyBmaWxlcyBzbmFwc2hvdAogIAogIGJ0cmZzIHN1YnZvbHVtZSBkZWxldGUgIiRVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEgiCiAgCiAgCiAgIyBSZW1vdmUgUElEIGZpbGUKICBybSAiJF9QSURfRklMRSIKICBlY2hvICJEb25lLiIKfQoKCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgbW91bnRpbmcgbHZtIHNuYXBzaG90IHRvIGEgbW91bnRwb2ludAptb3VudF9zbmFwc2hvdF9sdm0oKSB7CiAgbG9jYWwgc25hcHNob3QgbW91bnRwb2ludCBvd25lcnNoaXAKICBzbmFwc2hvdD0iJHsxP30iCiAgbW91bnRwb2ludD0iJHsyP30iCiAgbWtkaXIgLXAgIiR7bW91bnRwb2ludH0iCiAgbHZjaGFuZ2UgLWF5IC1LICIke3NuYXBzaG90fSIKICBtb3VudCAtbyAicm8iICIvZGV2LyR7c25hcHNob3R9IiAiJHttb3VudHBvaW50fSIKfQoKCiMjIERldGVjdCB3aGV0aGVyIGEgYmFja3VwIGlzIHN0aWxsIHJ1bm5pbmcgKGFuZCBhYm9ydCBpbiB0aGlzIGNhc2UpCiMgSWYgdGhlIGJhY2t1cCBoYXMgYmVlbiBydW5uaW5nIGZvciBtb3JlIHRoYW4gMTAgaG91cnMsIGl0IGlzIGFzc3VtZWQgdG8gYmUgc3R1Y2sgYW5kIGl0cyBwcm9jZXNzIGtpbGxlZAppZiBbWyAtZiAiJF9QSURfRklMRSIgXV0gJiYgcHMgLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiID4gL2Rldi9udWxsCnRoZW4KICBlbGFwc2VkPSIkKHBzIC1vIGV0aW1lcz0gLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiKSIKICBpZiBbWyAiJHtlbGFwc2VkLy8gL30iIC1ndCAkKCgxMCAqIDM2MDApKSBdXQogIHRoZW4KICAgIGxvZyAiRGV0ZWN0ZWQgYmFja3VwIHByb2Nlc3MgZ29pbmcgZm9yIG92ZXIgMTAgaG91cnMsIGtpbGxpbmcgaXQuLi4iCiAgICBraWxsIC05ICIkKGNhdCAiJF9QSURfRklMRSIpIgogIGVsc2UKICAgIGxvZyAiT25nb2luZyBiYWNrdXAgcHJvY2VzcyBkZXRlY3RlZC4gQWJvcnRpbmcuLi4iCiAgICBleGl0IDAKICBmaQpmaQoKIyBjbGVhbnVwIGxlZnRvdmVycyBmcm9tIGxhc3QgcnVuIGlmIGFueQpjbGVhbnVwID4gL2Rldi9udWxsIDI+JjEgfHw6CgojIFNhdmUgY3VycmVudCBwcm9jZXNzIGlkIHRvIHBpZCBmaWxlCmVjaG8gIiQkIiA+ICIkX1BJRF9GSUxFIgoKIyBjbGVhbnVwIHdpbGwgYmUgcnVuIGF0IHRoZSBlbmQgb2YgdGhlIHNjcmlwdCB3aGV0aGVyIGl0IGZhaWxzIG9yIHN1Y2NlZWRzCnRyYXAgJ2NsZWFudXAgMj4mMSB8IGxvZycgRVhJVAoKIyBNYWtlIHN1cmUgZGlyZWN0b3JpZXMgZXhpc3QKbWtkaXIgLXAgIiRfVVNFUl9GSUxFU19CSU5EIiAiJF9OQ19JTlNUQUxMX0JJTkQiICIkX0RCX0JJTkQiICIkVVNFUl9GSUxFU19NT1VOVCIgIiROQ19JTlNUQUxMX01PVU5UIiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiCgp0aW1lc3RhbXA9IiQoZGF0ZSAiKyVZLSVtLSVkICVIOiVNOiVTICVaIikiCmxvZyAiU3RhcnRpbmcgTmV4dGNsb3VkIFNuYXBzaG90IGF0ICR0aW1lc3RhbXAiCgojIFNuYXBzaG90IGRpc2tzCmxvZyAiQ3JlYXRlIHNuYXBzaG90cy4uLiIKCmx2Y3JlYXRlIC1zIC0tbmFtZSAiJE5DX0lOU1RBTExfU05BUFNIT1RfTkFNRSIgIiR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1ZPTFVNRX0iIDI+JjEgfCBsb2cKbW91bnRfc25hcHNob3RfbHZtICIke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FfSIgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfSIgMj4mMSB8IGxvZwoKCmJ0cmZzIHN1YnZvbHVtZSBzbmFwc2hvdCAtciAiJHtVU0VSX0ZJTEVTX1ZPTFVNRX0iICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCmxvZyAiRG9uZS4iCgojIER1bXAgREIKbG9nICJDcmVhdGUgREIgZHVtcC4uLiIKIiR7U1FMRFVNUF9DTURbQF19IiA+ICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9L2RiLnNxbCIKbG9nICJEb25lLiIKCiMgQmluZCBtb3VudCBhbGwgaW5kaXZpZHVhbCBzbmFwc2hvdHMgaW50byBhIGNvbW1vbiBwYXJlbnQgZGlyZWN0b3J5CmxvZyAiQ3JlYXRlIGJpbmQgbW91bnRzLi4uIgptb3VudCAtLWJpbmQgLW8gInJvLHVpZD0ke05DX09XTkVSX1VJRH0sZ2lkPSR7TkNfT1dORVJfR0lEfSIgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfS8ke05DX0lOU1RBTExfUkVMQVRJVkVfUEFUSCMvfSIgICAgICIke19OQ19JTlNUQUxMX0JJTkR9IiAgICAgMj4mMSB8IGxvZwptb3VudCAtLWJpbmQgLW8gcm8sdWlkPSR7VVNFUl9GSUxFU19PV05FUl9VSUR9LGdpZD0ke1VTRVJfRklMRVNfT1dORVJfR0lEfSAgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfS8ke1VTRVJfRklMRVNfUkVMQVRJVkVfUEFUSCMvfSIgICAgICIke19VU0VSX0ZJTEVTX0JJTkR9IiAgICAgMj4mMSB8IGxvZwptb3VudCAtLWJpbmQgLW8gcm8sdWlkPXJvb3QsZ2lkPXJvb3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke19EQl9CSU5EfSIgICAgICAgICAgICAgMj4mMSB8IGxvZwpsb2cgIkRvbmUuIgoKIyBDcmVhdGUgdGhlIGZpbmFsIHNuYXBzaG90IHdpdGgga29waWEgdXNpbmcgdGhlIGRlZmF1bHQga29waWEgcmVwb3NpdG9yeSBjb25maWcgKGlmIG5lZWRlZCwgeW91IGNhbiBjaGFuZ2UgdGhlIGNvbmZpZyBmaWxlIHdpdGggdGhlIC0tY29uZmlnLWZpbGUgcGFyYW1ldGVyKQpsb2cgIkNyZWF0ZSBrb3BpYSBzbmFwc2hvdC4uLiIKIyBUZW1wb3JhcnkgbG9nIGZpbGUgYXMgYSB3b3JrYXJvdW5kIHRvIHBhc3Mga29waWEgbG9ncyB0byBvdXIgbG9nIGZ1bmN0aW9uCmtvcGlhX2xvZ2ZpbGU9IiQobWt0ZW1wIC0tdG1wZGlyIGtvcGlhLXNuYXBzaG90LlhYWFhYLmxvZykiCnRhaWwgLWYgIiRrb3BpYV9sb2dmaWxlIiAmCmtvcGlhIHNuYXBzaG90IGNyZWF0ZSAtLXBhcmFsbGVsPTQgLS10YWdzICIke0tPUElBX1RBR1N9IiAtLXN0YXJ0LXRpbWU9IiR0aW1lc3RhbXAiIC0tbG9nLWZpbGU9IiRrb3BpYV9sb2dmaWxlIiAtLWZpbGUtbG9nLWxldmVsPSJpbmZvIiAiJHtCQUNLVVBfUk9PVH0iCmNhdCAiJHtrb3BpYV9sb2dmaWxlJS5sb2d9IioubG9nIHwgbG9nID4gL2Rldi9udWxsCmxvZyAiRG9uZS4i&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-linenos data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#!&#x2F;bin&#x2F;bash
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set -euo pipefail
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Procedure
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - The script will create snapshots of the lvm root volume and the btrfs subvolume backing Nextcloud&amp;#39;s user files. Then it will start an sqldump of the database
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - Afterwards, all 3 snapshots will be mounted&#x2F;copied in the same parent directory and uploaded to a kopia repository
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### CONFIGURATION
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for writing logs. Can be left empty to only log to stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;log&#x2F;nc-backup.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud installation directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;17&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm-1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the LVM volume group containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;18&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the logical volume name containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;19&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust this if the nc installation directory is not in the root of the backing filesystem volume
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;20&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;21&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;22&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud files directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;23&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path to the btrfs subvolume containing your NC files directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;24&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;mnt&#x2F;data&#x2F;ncdata&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;25&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where the (temporary) btrfs snapshot for the NC files directory should be created
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;26&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;mnt&#x2F;data&#x2F;.nc_files_snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;27&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# DB dump config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;28&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where to temporarily store database dump (should have enough free space)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;29&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;nc-backup-db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;30&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Whatever command can be used to create an sqldump (including parameters like user, host, dbname, password cfg ...)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;31&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - If your DB is run inside docker, just prepend the command with whatever is needed to run a command inside the container,
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;32&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   for example: SQLDUMP_CMD=(docker exec &amp;lt;containername&amp;gt; pg_dump -U postgres -d nc)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;33&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For MariaDB (with the InnoDB engine), make sure to use --single-transaction (and optionally --skip-lock-tables to avoid slow downs for your system) to avoid side effects.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;34&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   See https:&#x2F;&#x2F;mysqldump.guru&#x2F;mysqldump-single-transaction-flag.html for more info.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;35&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For postgresql, no adjustemnts are needed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;36&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;37&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure the connection options for your database:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;38&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;39&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;40&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;41&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;127.0.0.1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;42&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;43&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;44&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;45&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# pg_dump will be supplied with the connection options by writing them to ~&#x2F;.pgpass
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;46&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.pgpass&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;47&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;48&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;pg_dump &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;49&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;50&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Setup any tags here that you want to be added to your your kopia snapshot (comma separated in the format label:value)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;51&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;job:nextcloud-full-backup,nc-files:yes,nc-db:yes,nc-nextcloud:yes&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;52&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;53&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ADVANCED&#x2F;INTERNAL CONFIG - only adjust if you are sure that you know what you&amp;#39;re doing ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;54&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;55&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# NC install LVM snapshot name
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;56&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-backup-nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;57&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;mnt&#x2F;nc-backup-lvm-nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;58&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;59&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;btrfs&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;60&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;61&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;62&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all files from the nextcloud install directory should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;63&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;64&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;65&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;66&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all user files should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;67&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;68&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;69&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;70&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure path where all parts of the backup will be mapped to before transferring with Kopia
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;71&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;nc-backup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;72&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;73&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;74&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### You usually should not need to touch the following variables
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;75&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;76&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;77&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;78&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;79&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;80&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for keeping track of running backup operations
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;81&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;run&#x2F;nc-backup.pid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;82&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;83&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;84&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for logging to both the log file and stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;85&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;86&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;msg message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;87&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;88&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;echo&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;89&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;90&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;91&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;tee -a &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;92&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;93&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;94&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;:-}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;95&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;96&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;while &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;read &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;97&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;do
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;98&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;message&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;99&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;done
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;100&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;return
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;101&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;102&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;103&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;104&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;105&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;106&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for cleaning up snapshots, pid file, etc.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;107&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;108&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;+&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;eu
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;109&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Cleanup...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;110&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;111&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;112&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;113&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;114&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;115&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;116&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;117&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;118&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;119&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;120&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;121&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;122&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC install dir snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;123&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;124&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;125&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;126&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;an&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;127&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvremove &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;128&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;129&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC files snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;130&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;131&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume delete &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;132&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;133&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;134&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove PID file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;135&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;136&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;137&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;138&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;139&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;140&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for mounting lvm snapshot to a mountpoint
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;141&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;142&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;snapshot mountpoint ownership
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;143&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;144&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;145&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;146&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;ay&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;147&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;148&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;149&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;150&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;151&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Detect whether a backup is still running (and abort in this case)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;152&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# If the backup has been running for more than 10 hours, it is assumed to be stuck and its process killed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;153&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;154&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;155&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; etimes=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;156&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;&#x2F; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;}&amp;quot; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;gt &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$((&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;10 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;3600&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)) &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;157&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;158&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Detected backup process going for over 10 hours, killing it...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;159&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kill -9 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;160&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;else
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;161&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Ongoing backup process detected. Aborting...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;162&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;exit 0
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;163&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;164&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;165&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;166&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup leftovers from last run if any
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;167&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;||&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;168&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;169&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Save current process id to pid file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;170&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;gt; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;171&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;172&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup will be run at the end of the script whether it fails or succeeds
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;173&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;trap &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;cleanup 2&amp;gt;&amp;amp;1 | log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; EXIT
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;174&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;175&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Make sure directories exist
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;176&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;177&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;178&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;+%Y-%m-%d %H:%M:%S %Z&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;179&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Starting Nextcloud Snapshot at &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;180&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;181&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Snapshot disks
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;182&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create snapshots...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;183&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;184&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvcreate&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;s&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;name &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;185&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;186&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;187&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;188&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;btrfs subvolume snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;189&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;190&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;191&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;192&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Dump DB
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;193&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create DB dump...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;194&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &amp;gt; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;195&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;196&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;197&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Bind mount all individual snapshots into a common parent directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;198&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create bind mounts...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;199&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;200&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}  &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;201&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=root,gid=root                                        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;                                        &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;             &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;202&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;203&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;204&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Create the final snapshot with kopia using the default kopia repository config (if needed, you can change the config file with the --config-file parameter)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;205&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create kopia snapshot...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;206&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Temporary log file as a workaround to pass kopia logs to our log function
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;207&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mktemp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tmpdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; kopia-snapshot.XXXXX.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;208&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;tail&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;amp;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;209&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot create&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;parallel&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tags &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;start-time&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;log-file&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;file-log-level&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;info&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;210&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;.log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;211&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;

      &lt;&#x2F;div&gt;
    &lt;&#x2F;context-condition&gt;
  

    
    &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;mariadb&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
      &lt;div class=&quot;codeblock&quot;&gt;
        
        
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;CgoKCgojIS9iaW4vYmFzaAoKc2V0IC1ldW8gcGlwZWZhaWwKCiMjIyA9PT09PT09PT09ICMjIwojIFByb2NlZHVyZQojIC0gVGhlIHNjcmlwdCB3aWxsIGNyZWF0ZSBzbmFwc2hvdHMgb2YgdGhlIGx2bSByb290IHZvbHVtZSBhbmQgdGhlIGJ0cmZzIHN1YnZvbHVtZSBiYWNraW5nIE5leHRjbG91ZCdzIHVzZXIgZmlsZXMuIFRoZW4gaXQgd2lsbCBzdGFydCBhbiBzcWxkdW1wIG9mIHRoZSBkYXRhYmFzZQojIC0gQWZ0ZXJ3YXJkcywgYWxsIDMgc25hcHNob3RzIHdpbGwgYmUgbW91bnRlZC9jb3BpZWQgaW4gdGhlIHNhbWUgcGFyZW50IGRpcmVjdG9yeSBhbmQgdXBsb2FkZWQgdG8gYSBrb3BpYSByZXBvc2l0b3J5CiMjIyA9PT09PT09PT09ICMjIwoKIyMjIENPTkZJR1VSQVRJT04KCiMgZmlsZSBmb3Igd3JpdGluZyBsb2dzLiBDYW4gYmUgbGVmdCBlbXB0eSB0byBvbmx5IGxvZyB0byBzdGRvdXQKTE9HX0ZJTEU9Ii92YXIvbG9nL25jLWJhY2t1cC5sb2ciCgojIyBOZXh0Y2xvdWQgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBjb25maWcKTkNfSU5TVEFMTF9WRz0ibHZtLTEiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBMVk0gdm9sdW1lIGdyb3VwIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5Ck5DX0lOU1RBTExfVk9MVU1FPSJuZXh0Y2xvdWQiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBsb2dpY2FsIHZvbHVtZSBuYW1lIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5CiMgQWRqdXN0IHRoaXMgaWYgdGhlIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgaXMgbm90IGluIHRoZSByb290IG9mIHRoZSBiYWNraW5nIGZpbGVzeXN0ZW0gdm9sdW1lCk5DX0lOU1RBTExfUkVMQVRJVkVfUEFUSD0iLyIKCiMjIE5leHRjbG91ZCBmaWxlcyBkaXJlY3RvcnkgY29uZmlnClVTRVJfRklMRVNfVkc9Imx2bS0xIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgTFZNIHZvbHVtZSBncm91cCBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQpVU0VSX0ZJTEVTX0xWPSJuYy1maWxlcyIgIyBBZGp1c3QgdG8gbWF0Y2ggdGhlIGxvZ2ljYWwgdm9sdW1lIG5hbWUgY29udGFpbmluZyB5b3VyIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKIyBEQiBkdW1wIGNvbmZpZwojIFBhdGggd2hlcmUgdG8gdGVtcG9yYXJpbHkgc3RvcmUgZGF0YWJhc2UgZHVtcCAoc2hvdWxkIGhhdmUgZW5vdWdoIGZyZWUgc3BhY2UpClNRTF9EVU1QX1RBUkdFVF9ESVI9Ii92YXIvbmMtYmFja3VwLWRiIgojIFdoYXRldmVyIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuIHNxbGR1bXAgKGluY2x1ZGluZyBwYXJhbWV0ZXJzIGxpa2UgdXNlciwgaG9zdCwgZGJuYW1lLCBwYXNzd29yZCBjZmcgLi4uKQojIC0gSWYgeW91ciBEQiBpcyBydW4gaW5zaWRlIGRvY2tlciwganVzdCBwcmVwZW5kIHRoZSBjb21tYW5kIHdpdGggd2hhdGV2ZXIgaXMgbmVlZGVkIHRvIHJ1biBhIGNvbW1hbmQgaW5zaWRlIHRoZSBjb250YWluZXIsCiMgICBmb3IgZXhhbXBsZTogU1FMRFVNUF9DTUQ9KGRvY2tlciBleGVjIDxjb250YWluZXJuYW1lPiBwZ19kdW1wIC1VIHBvc3RncmVzIC1kIG5jKQojIC0gRm9yIE1hcmlhREIgKHdpdGggdGhlIElubm9EQiBlbmdpbmUpLCBtYWtlIHN1cmUgdG8gdXNlIC0tc2luZ2xlLXRyYW5zYWN0aW9uIChhbmQgb3B0aW9uYWxseSAtLXNraXAtbG9jay10YWJsZXMgdG8gYXZvaWQgc2xvdyBkb3ducyBmb3IgeW91ciBzeXN0ZW0pIHRvIGF2b2lkIHNpZGUgZWZmZWN0cy4KIyAgIFNlZSBodHRwczovL215c3FsZHVtcC5ndXJ1L215c3FsZHVtcC1zaW5nbGUtdHJhbnNhY3Rpb24tZmxhZy5odG1sIGZvciBtb3JlIGluZm8uCiMgLSBGb3IgcG9zdGdyZXNxbCwgbm8gYWRqdXN0ZW1udHMgYXJlIG5lZWRlZAoKIyBDb25maWd1cmUgdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBmb3IgeW91ciBkYXRhYmFzZToKREJfVVNFUj0ibmV4dGNsb3VkIgpEQl9OQU1FPSJuZXh0Y2xvdWQiCkRCX1BBU1NXT1JEPSJwYXNzd29yZCIKREJfSE9TVD0iMTI3LjAuMC4xIgpEQl9QT1JUPSI1NDMyIgoKIyBteXNxbGR1bXAgd2lsbCBiZSBzdXBwbGllZCB3aXRoIHRoZSBkYiBjcmVkZW50aWFscyBieSB3cml0aW5nIHRoZW0gdG8gfi8ubXkuY25mCk1ZQ05GX1BBVEg9IiRIT01FLy5teS5jbmYiCmluc3RhbGwgLW0gMDYwMCA8KGVjaG8gLWUgIltteXNxbGR1bXBdXG51c2VyPSR7REJfVVNFUn1cbnBhc3N3b3JkPSR7REJfUEFTU1dPUkR9IikgIiR7TVlDTkZfUEFUSH0iClNRTERVTVBfQ01EPShteXNxbGR1bXAgLS1ob3N0PSIke0RCX0hPU1R9IiAtLXBvcnQ9IiR7REJfUE9SVH0iIC0tc2luZ2xlLXRyYW5zYWN0aW9uIC0tc2tpcC1sb2NrLXRhYmxlcyAiJHtEQl9OQU1FfSIpCgoKIyBTZXR1cCBhbnkgdGFncyBoZXJlIHRoYXQgeW91IHdhbnQgdG8gYmUgYWRkZWQgdG8geW91ciB5b3VyIGtvcGlhIHNuYXBzaG90IChjb21tYSBzZXBhcmF0ZWQgaW4gdGhlIGZvcm1hdCBsYWJlbDp2YWx1ZSkKS09QSUFfVEFHUz0iam9iOm5leHRjbG91ZC1mdWxsLWJhY2t1cCxuYy1maWxlczp5ZXMsbmMtZGI6eWVzLG5jLW5leHRjbG91ZDp5ZXMiCgojIyMgQURWQU5DRUQvSU5URVJOQUwgQ09ORklHIC0gb25seSBhZGp1c3QgaWYgeW91IGFyZSBzdXJlIHRoYXQgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcgIyMjCk5DX0lOU1RBTExfRlNUWVBFPSJsdm0iCiMgTkMgaW5zdGFsbCBMVk0gc25hcHNob3QgbmFtZQpOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUU9Im5jLWJhY2t1cC1uZXh0Y2xvdWQiCk5DX0lOU1RBTExfU05BUFNIT1RfUEFUSD0iL3J1bi9tbnQvbmMtYmFja3VwLWx2bS1uZXh0Y2xvdWQiCgpVU0VSX0ZJTEVTX0ZTVFlQRT0ibHZtIgojIE5DIGZpbGVzIExWTSBzbmFwc2hvdCBuYW1lClVTRVJfRklMRVNfU05BUFNIT1RfTkFNRT0ibmMtYmFja3VwLW5jLWZpbGVzIgpVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEg9Ii9ydW4vbW50L25jLWJhY2t1cC1sdm0tbmMtZmlsZXMiCgoKIyBGT1JDRSBVSUQgYW5kIEdJRCB0aGF0IGFsbCBmaWxlcyBmcm9tIHRoZSBuZXh0Y2xvdWQgaW5zdGFsbCBkaXJlY3Rvcnkgc2hvdWxkIGhhdmUgaW4gdGhlIGJhY2t1cCAoZS5nLiB0aGF0IG9mIHlvdXIgd3d3LWRhdGEgdXNlciBhbmQgZ3JvdXApCk5DX09XTkVSX1VJRD0zMwpOQ19PV05FUl9HSUQ9MzMKCiMgRk9SQ0UgVUlEIGFuZCBHSUQgdGhhdCBhbGwgdXNlciBmaWxlcyBzaG91bGQgaGF2ZSBpbiB0aGUgYmFja3VwIChlLmcuIHRoYXQgb2YgeW91ciB3d3ctZGF0YSB1c2VyIGFuZCBncm91cCkKVVNFUl9GSUxFU19PV05FUl9VSUQ9MzMKVVNFUl9GSUxFU19PV05FUl9HSUQ9MzMKCiMgQ29uZmlndXJlIHBhdGggd2hlcmUgYWxsIHBhcnRzIG9mIHRoZSBiYWNrdXAgd2lsbCBiZSBtYXBwZWQgdG8gYmVmb3JlIHRyYW5zZmVycmluZyB3aXRoIEtvcGlhCkJBQ0tVUF9ST09UPSIvcnVuL25jLWJhY2t1cCIKCgojIyMgWW91IHVzdWFsbHkgc2hvdWxkIG5vdCBuZWVkIHRvIHRvdWNoIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzCgpfVVNFUl9GSUxFU19CSU5EPSIke0JBQ0tVUF9ST09UfS9uY19maWxlcyIKX05DX0lOU1RBTExfQklORD0iJHtCQUNLVVBfUk9PVH0vbmV4dGNsb3VkIgpfREJfQklORD0iJHtCQUNLVVBfUk9PVH0vZGIiCgojIGZpbGUgZm9yIGtlZXBpbmcgdHJhY2sgb2YgcnVubmluZyBiYWNrdXAgb3BlcmF0aW9ucwpfUElEX0ZJTEU9Ii92YXIvcnVuL25jLWJhY2t1cC5waWQiCgoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBsb2dnaW5nIHRvIGJvdGggdGhlIGxvZyBmaWxlIGFuZCBzdGRvdXQKbG9nKCkgewogIGxvY2FsIG1zZyBtZXNzYWdlCgogIGZ3ZD0oZWNobykKICBpZiBbWyAtbiAiJExPR19GSUxFIiBdXQogIHRoZW4KICBmd2Q9KHRlZSAtYSAiJExPR19GSUxFIikKICBmaQoKICBpZiBbWyAteiAiJHsxOi19IiBdXQogIHRoZW4KICB3aGlsZSByZWFkIC1yIG1lc3NhZ2UKICBkbwogIGVjaG8gIlwkJCQ+JChkYXRlIC1Jcyk9PiIgIiR7bWVzc2FnZVtAXX0iIDI+JjEgfCAiJHtmd2RbQF19IgogIGRvbmUKICByZXR1cm4KICBmaQoKICBlY2hvICJcJCQkPiQoZGF0ZSAtSXMpPT4iICIke0B9IiAyPiYxIHwgIiR7ZndkW0BdfSIKfQoKIyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjbGVhbmluZyB1cCBzbmFwc2hvdHMsIHBpZCBmaWxlLCBldGMuCmNsZWFudXAoKSB7CiAgc2V0ICtldQogIGVjaG8gIkNsZWFudXAuLi4iCiAgCiAgcm0gLXJmICIke1BHUEFTU19QQVRIfSIKICAKICAKICB1bW91bnQgIiRfREJfQklORCIKICB1bW91bnQgIiRfTkNfSU5TVEFMTF9CSU5EIgogIHVtb3VudCAiJF9VU0VSX0ZJTEVTX0JJTkQiCgogIFtbIC16ICIke1VTRVJfRklMRVNfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiRVU0VSX0ZJTEVTX01PVU5UIgogIFtbIC16ICIke05DX0lOU1RBTExfTU9VTlR9IiBdXSB8fCB1bW91bnQgIiROQ19JTlNUQUxMX01PVU5UIgoKICBybSAtcmYgIiRTUUxfRFVNUF9UQVJHRVRfRElSIjsKICAjIENsZWFudXAgTkMgaW5zdGFsbCBkaXIgc25hcHNob3QKICAKICB1bW91bnQgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfSIKICBybSAtcmYgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfSIKICBsdmNoYW5nZSAtYW4gLUsgIiR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUV9IgogIGx2cmVtb3ZlICIvZGV2LyR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1NOQVBTSE9UX05BTUV9IgogIAogICMgQ2xlYW51cCBOQyBmaWxlcyBzbmFwc2hvdAogIAogIHVtb3VudCAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IgogIHJtIC1yZiAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IgogIGx2Y2hhbmdlIC1hbiAtSyAiJHtVU0VSX0ZJTEVTX1ZHfS8ke1VTRVJfRklMRVNfU05BUFNIT1RfTkFNRX0iCiAgbHZyZW1vdmUgIi9kZXYvJHtVU0VSX0ZJTEVTX1ZHfS8ke1VTRVJfRklMRVNfU05BUFNIT1RfTkFNRX0iCiAgCiAgCiAgIyBSZW1vdmUgUElEIGZpbGUKICBybSAiJF9QSURfRklMRSIKICBlY2hvICJEb25lLiIKfQoKCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgbW91bnRpbmcgbHZtIHNuYXBzaG90IHRvIGEgbW91bnRwb2ludAptb3VudF9zbmFwc2hvdF9sdm0oKSB7CiAgbG9jYWwgc25hcHNob3QgbW91bnRwb2ludCBvd25lcnNoaXAKICBzbmFwc2hvdD0iJHsxP30iCiAgbW91bnRwb2ludD0iJHsyP30iCiAgbWtkaXIgLXAgIiR7bW91bnRwb2ludH0iCiAgbHZjaGFuZ2UgLWF5IC1LICIke3NuYXBzaG90fSIKICBtb3VudCAtbyAicm8iICIvZGV2LyR7c25hcHNob3R9IiAiJHttb3VudHBvaW50fSIKfQoKCiMjIERldGVjdCB3aGV0aGVyIGEgYmFja3VwIGlzIHN0aWxsIHJ1bm5pbmcgKGFuZCBhYm9ydCBpbiB0aGlzIGNhc2UpCiMgSWYgdGhlIGJhY2t1cCBoYXMgYmVlbiBydW5uaW5nIGZvciBtb3JlIHRoYW4gMTAgaG91cnMsIGl0IGlzIGFzc3VtZWQgdG8gYmUgc3R1Y2sgYW5kIGl0cyBwcm9jZXNzIGtpbGxlZAppZiBbWyAtZiAiJF9QSURfRklMRSIgXV0gJiYgcHMgLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiID4gL2Rldi9udWxsCnRoZW4KICBlbGFwc2VkPSIkKHBzIC1vIGV0aW1lcz0gLXAgIiQoY2F0ICIkX1BJRF9GSUxFIikiKSIKICBpZiBbWyAiJHtlbGFwc2VkLy8gL30iIC1ndCAkKCgxMCAqIDM2MDApKSBdXQogIHRoZW4KICAgIGxvZyAiRGV0ZWN0ZWQgYmFja3VwIHByb2Nlc3MgZ29pbmcgZm9yIG92ZXIgMTAgaG91cnMsIGtpbGxpbmcgaXQuLi4iCiAgICBraWxsIC05ICIkKGNhdCAiJF9QSURfRklMRSIpIgogIGVsc2UKICAgIGxvZyAiT25nb2luZyBiYWNrdXAgcHJvY2VzcyBkZXRlY3RlZC4gQWJvcnRpbmcuLi4iCiAgICBleGl0IDAKICBmaQpmaQoKIyBjbGVhbnVwIGxlZnRvdmVycyBmcm9tIGxhc3QgcnVuIGlmIGFueQpjbGVhbnVwID4gL2Rldi9udWxsIDI+JjEgfHw6CgojIFNhdmUgY3VycmVudCBwcm9jZXNzIGlkIHRvIHBpZCBmaWxlCmVjaG8gIiQkIiA+ICIkX1BJRF9GSUxFIgoKIyBjbGVhbnVwIHdpbGwgYmUgcnVuIGF0IHRoZSBlbmQgb2YgdGhlIHNjcmlwdCB3aGV0aGVyIGl0IGZhaWxzIG9yIHN1Y2NlZWRzCnRyYXAgJ2NsZWFudXAgMj4mMSB8IGxvZycgRVhJVAoKIyBNYWtlIHN1cmUgZGlyZWN0b3JpZXMgZXhpc3QKbWtkaXIgLXAgIiRfVVNFUl9GSUxFU19CSU5EIiAiJF9OQ19JTlNUQUxMX0JJTkQiICIkX0RCX0JJTkQiICIkVVNFUl9GSUxFU19NT1VOVCIgIiROQ19JTlNUQUxMX01PVU5UIiAiJFNRTF9EVU1QX1RBUkdFVF9ESVIiCgp0aW1lc3RhbXA9IiQoZGF0ZSAiKyVZLSVtLSVkICVIOiVNOiVTICVaIikiCmxvZyAiU3RhcnRpbmcgTmV4dGNsb3VkIFNuYXBzaG90IGF0ICR0aW1lc3RhbXAiCgojIFNuYXBzaG90IGRpc2tzCmxvZyAiQ3JlYXRlIHNuYXBzaG90cy4uLiIKCmx2Y3JlYXRlIC1zIC0tbmFtZSAiJE5DX0lOU1RBTExfU05BUFNIT1RfTkFNRSIgIiR7TkNfSU5TVEFMTF9WR30vJHtOQ19JTlNUQUxMX1ZPTFVNRX0iIDI+JjEgfCBsb2cKbW91bnRfc25hcHNob3RfbHZtICIke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FfSIgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfSIgMj4mMSB8IGxvZwoKCmx2Y3JlYXRlIC1zIC0tbmFtZSAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IiAiJHtVU0VSX0ZJTEVTX1ZHfS8ke1VTRVJfRklMRVNfTFZ9IiAyPiYxIHwgbG9nCm1vdW50X3NuYXBzaG90X2x2bSAiJHtVU0VSX0ZJTEVTX1ZHfS8ke1VTRVJfRklMRVNfU05BUFNIT1RfTkFNRX0iICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCmxvZyAiRG9uZS4iCgojIER1bXAgREIKbG9nICJDcmVhdGUgREIgZHVtcC4uLiIKIiR7U1FMRFVNUF9DTURbQF19IiA+ICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9L2RiLnNxbCIKbG9nICJEb25lLiIKCiMgQmluZCBtb3VudCBhbGwgaW5kaXZpZHVhbCBzbmFwc2hvdHMgaW50byBhIGNvbW1vbiBwYXJlbnQgZGlyZWN0b3J5CmxvZyAiQ3JlYXRlIGJpbmQgbW91bnRzLi4uIgptb3VudCAtLWJpbmQgLW8gInJvLHVpZD0ke05DX09XTkVSX1VJRH0sZ2lkPSR7TkNfT1dORVJfR0lEfSIgIiR7TkNfSU5TVEFMTF9TTkFQU0hPVF9QQVRIfS8ke05DX0lOU1RBTExfUkVMQVRJVkVfUEFUSCMvfSIgICAgICIke19OQ19JTlNUQUxMX0JJTkR9IiAgICAgMj4mMSB8IGxvZwptb3VudCAtLWJpbmQgLW8gcm8sdWlkPSR7VVNFUl9GSUxFU19PV05FUl9VSUR9LGdpZD0ke1VTRVJfRklMRVNfT1dORVJfR0lEfSAgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfS8ke1VTRVJfRklMRVNfUkVMQVRJVkVfUEFUSCMvfSIgICAgICIke19VU0VSX0ZJTEVTX0JJTkR9IiAgICAgMj4mMSB8IGxvZwptb3VudCAtLWJpbmQgLW8gcm8sdWlkPXJvb3QsZ2lkPXJvb3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7U1FMX0RVTVBfVEFSR0VUX0RJUn0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke19EQl9CSU5EfSIgICAgICAgICAgICAgMj4mMSB8IGxvZwpsb2cgIkRvbmUuIgoKIyBDcmVhdGUgdGhlIGZpbmFsIHNuYXBzaG90IHdpdGgga29waWEgdXNpbmcgdGhlIGRlZmF1bHQga29waWEgcmVwb3NpdG9yeSBjb25maWcgKGlmIG5lZWRlZCwgeW91IGNhbiBjaGFuZ2UgdGhlIGNvbmZpZyBmaWxlIHdpdGggdGhlIC0tY29uZmlnLWZpbGUgcGFyYW1ldGVyKQpsb2cgIkNyZWF0ZSBrb3BpYSBzbmFwc2hvdC4uLiIKIyBUZW1wb3JhcnkgbG9nIGZpbGUgYXMgYSB3b3JrYXJvdW5kIHRvIHBhc3Mga29waWEgbG9ncyB0byBvdXIgbG9nIGZ1bmN0aW9uCmtvcGlhX2xvZ2ZpbGU9IiQobWt0ZW1wIC0tdG1wZGlyIGtvcGlhLXNuYXBzaG90LlhYWFhYLmxvZykiCnRhaWwgLWYgIiRrb3BpYV9sb2dmaWxlIiAmCmtvcGlhIHNuYXBzaG90IGNyZWF0ZSAtLXBhcmFsbGVsPTQgLS10YWdzICIke0tPUElBX1RBR1N9IiAtLXN0YXJ0LXRpbWU9IiR0aW1lc3RhbXAiIC0tbG9nLWZpbGU9IiRrb3BpYV9sb2dmaWxlIiAtLWZpbGUtbG9nLWxldmVsPSJpbmZvIiAiJHtCQUNLVVBfUk9PVH0iCmNhdCAiJHtrb3BpYV9sb2dmaWxlJS5sb2d9IioubG9nIHwgbG9nID4gL2Rldi9udWxsCmxvZyAiRG9uZS4i&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-linenos data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#!&#x2F;bin&#x2F;bash
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set -euo pipefail
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Procedure
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - The script will create snapshots of the lvm root volume and the btrfs subvolume backing Nextcloud&amp;#39;s user files. Then it will start an sqldump of the database
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - Afterwards, all 3 snapshots will be mounted&#x2F;copied in the same parent directory and uploaded to a kopia repository
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### CONFIGURATION
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for writing logs. Can be left empty to only log to stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;log&#x2F;nc-backup.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud installation directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;17&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm-1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the LVM volume group containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;18&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the logical volume name containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;19&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust this if the nc installation directory is not in the root of the backing filesystem volume
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;20&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;21&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;22&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud files directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;23&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm-1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the LVM volume group containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;24&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_LV&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the logical volume name containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;25&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# DB dump config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;26&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where to temporarily store database dump (should have enough free space)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;27&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;nc-backup-db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;28&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Whatever command can be used to create an sqldump (including parameters like user, host, dbname, password cfg ...)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;29&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - If your DB is run inside docker, just prepend the command with whatever is needed to run a command inside the container,
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;30&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   for example: SQLDUMP_CMD=(docker exec &amp;lt;containername&amp;gt; pg_dump -U postgres -d nc)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;31&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For MariaDB (with the InnoDB engine), make sure to use --single-transaction (and optionally --skip-lock-tables to avoid slow downs for your system) to avoid side effects.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;32&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   See https:&#x2F;&#x2F;mysqldump.guru&#x2F;mysqldump-single-transaction-flag.html for more info.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;33&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For postgresql, no adjustemnts are needed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;34&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;35&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure the connection options for your database:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;36&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;37&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;38&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;39&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;127.0.0.1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;40&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;41&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;42&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# mysqldump will be supplied with the db credentials by writing them to ~&#x2F;.my.cnf
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;43&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;MYCNF_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.my.cnf&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;44&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;e &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[mysqldump]\nuser=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;\npassword=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;MYCNF_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;45&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;mysqldump --host=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; --port=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt; --single-transaction --skip-lock-tables &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;46&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;47&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;48&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Setup any tags here that you want to be added to your your kopia snapshot (comma separated in the format label:value)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;49&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;job:nextcloud-full-backup,nc-files:yes,nc-db:yes,nc-nextcloud:yes&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;50&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;51&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ADVANCED&#x2F;INTERNAL CONFIG - only adjust if you are sure that you know what you&amp;#39;re doing ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;52&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;53&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# NC install LVM snapshot name
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;54&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-backup-nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;55&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;mnt&#x2F;nc-backup-lvm-nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;56&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;57&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;58&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# NC files LVM snapshot name
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;59&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-backup-nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;60&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;mnt&#x2F;nc-backup-lvm-nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;61&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;62&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;63&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all files from the nextcloud install directory should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;64&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;65&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;66&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;67&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all user files should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;68&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;69&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;70&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;71&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure path where all parts of the backup will be mapped to before transferring with Kopia
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;72&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;nc-backup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;73&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;74&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;75&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### You usually should not need to touch the following variables
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;76&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;77&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;78&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;79&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;80&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;81&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for keeping track of running backup operations
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;82&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;run&#x2F;nc-backup.pid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;83&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;84&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;85&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for logging to both the log file and stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;86&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;87&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;msg message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;88&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;89&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;echo&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;90&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;91&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;92&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;tee -a &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;93&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;94&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;95&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;:-}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;96&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;97&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;while &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;read &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;98&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;do
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;99&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;message&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;100&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;done
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;101&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;return
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;102&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;103&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;104&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;105&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;106&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;107&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for cleaning up snapshots, pid file, etc.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;108&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;109&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;+&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;eu
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;110&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Cleanup...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;111&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;112&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;113&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;114&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;115&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;116&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;117&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;118&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;119&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;120&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;121&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;122&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;123&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC install dir snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;124&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;125&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;126&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;127&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;an&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;128&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvremove &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;129&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;130&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC files snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;131&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;132&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;133&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;134&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;an&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;135&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvremove &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;136&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;137&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;138&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove PID file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;139&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;140&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;141&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;142&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;143&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;144&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for mounting lvm snapshot to a mountpoint
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;145&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;146&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;snapshot mountpoint ownership
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;147&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;148&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;149&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;150&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;ay&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;151&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;152&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;153&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;154&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;155&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Detect whether a backup is still running (and abort in this case)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;156&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# If the backup has been running for more than 10 hours, it is assumed to be stuck and its process killed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;157&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;158&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;159&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; etimes=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;160&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;&#x2F; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;}&amp;quot; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;gt &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$((&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;10 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;3600&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)) &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;161&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;162&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Detected backup process going for over 10 hours, killing it...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;163&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kill -9 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;164&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;else
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;165&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Ongoing backup process detected. Aborting...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;166&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;exit 0
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;167&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;168&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;169&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;170&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup leftovers from last run if any
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;171&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;||&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;172&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;173&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Save current process id to pid file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;174&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;gt; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;175&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;176&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup will be run at the end of the script whether it fails or succeeds
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;177&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;trap &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;cleanup 2&amp;gt;&amp;amp;1 | log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; EXIT
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;178&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;179&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Make sure directories exist
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;180&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;181&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;182&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;+%Y-%m-%d %H:%M:%S %Z&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;183&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Starting Nextcloud Snapshot at &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;184&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;185&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Snapshot disks
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;186&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create snapshots...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;187&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;188&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvcreate&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;s&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;name &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;189&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;190&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;191&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;192&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvcreate&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;s&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;name &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_LV&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;193&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;194&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;195&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;196&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;197&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Dump DB
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;198&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create DB dump...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;199&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &amp;gt; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;200&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;201&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;202&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Bind mount all individual snapshots into a common parent directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;203&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create bind mounts...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;204&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;205&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}  &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;206&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=root,gid=root                                        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;                                        &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;             &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;207&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;208&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;209&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Create the final snapshot with kopia using the default kopia repository config (if needed, you can change the config file with the --config-file parameter)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;210&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create kopia snapshot...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;211&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Temporary log file as a workaround to pass kopia logs to our log function
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;212&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mktemp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tmpdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; kopia-snapshot.XXXXX.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;213&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;tail&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;amp;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;214&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot create&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;parallel&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tags &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;start-time&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;log-file&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;file-log-level&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;info&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;215&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;.log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;216&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;

      &lt;&#x2F;div&gt;
    &lt;&#x2F;context-condition&gt;
  

    
    &lt;context-condition data-condition=&quot;{&amp;quot;nc_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;nc_files_filesystem&amp;quot;:&amp;quot;lvm&amp;quot;,&amp;quot;db&amp;quot;:&amp;quot;postgres&amp;quot;}&quot; data-context=&quot;{}&quot;&gt;
      &lt;div class=&quot;codeblock&quot;&gt;
        
        
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;CgoKCgojIS9iaW4vYmFzaAoKc2V0IC1ldW8gcGlwZWZhaWwKCiMjIyA9PT09PT09PT09ICMjIwojIFByb2NlZHVyZQojIC0gVGhlIHNjcmlwdCB3aWxsIGNyZWF0ZSBzbmFwc2hvdHMgb2YgdGhlIGx2bSByb290IHZvbHVtZSBhbmQgdGhlIGJ0cmZzIHN1YnZvbHVtZSBiYWNraW5nIE5leHRjbG91ZCdzIHVzZXIgZmlsZXMuIFRoZW4gaXQgd2lsbCBzdGFydCBhbiBzcWxkdW1wIG9mIHRoZSBkYXRhYmFzZQojIC0gQWZ0ZXJ3YXJkcywgYWxsIDMgc25hcHNob3RzIHdpbGwgYmUgbW91bnRlZC9jb3BpZWQgaW4gdGhlIHNhbWUgcGFyZW50IGRpcmVjdG9yeSBhbmQgdXBsb2FkZWQgdG8gYSBrb3BpYSByZXBvc2l0b3J5CiMjIyA9PT09PT09PT09ICMjIwoKIyMjIENPTkZJR1VSQVRJT04KCiMgZmlsZSBmb3Igd3JpdGluZyBsb2dzLiBDYW4gYmUgbGVmdCBlbXB0eSB0byBvbmx5IGxvZyB0byBzdGRvdXQKTE9HX0ZJTEU9Ii92YXIvbG9nL25jLWJhY2t1cC5sb2ciCgojIyBOZXh0Y2xvdWQgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBjb25maWcKTkNfSU5TVEFMTF9WRz0ibHZtLTEiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBMVk0gdm9sdW1lIGdyb3VwIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5Ck5DX0lOU1RBTExfVk9MVU1FPSJuZXh0Y2xvdWQiICMgQWRqdXN0IHRvIG1hdGNoIHRoZSBsb2dpY2FsIHZvbHVtZSBuYW1lIGNvbnRhaW5pbmcgeW91ciBuYyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5CiMgQWRqdXN0IHRoaXMgaWYgdGhlIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgaXMgbm90IGluIHRoZSByb290IG9mIHRoZSBiYWNraW5nIGZpbGVzeXN0ZW0gdm9sdW1lCk5DX0lOU1RBTExfUkVMQVRJVkVfUEFUSD0iLyIKCiMjIE5leHRjbG91ZCBmaWxlcyBkaXJlY3RvcnkgY29uZmlnClVTRVJfRklMRVNfVkc9Imx2bS0xIiAjIEFkanVzdCB0byBtYXRjaCB0aGUgTFZNIHZvbHVtZSBncm91cCBjb250YWluaW5nIHlvdXIgbmMgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQpVU0VSX0ZJTEVTX0xWPSJuYy1maWxlcyIgIyBBZGp1c3QgdG8gbWF0Y2ggdGhlIGxvZ2ljYWwgdm9sdW1lIG5hbWUgY29udGFpbmluZyB5b3VyIG5jIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKIyBEQiBkdW1wIGNvbmZpZwojIFBhdGggd2hlcmUgdG8gdGVtcG9yYXJpbHkgc3RvcmUgZGF0YWJhc2UgZHVtcCAoc2hvdWxkIGhhdmUgZW5vdWdoIGZyZWUgc3BhY2UpClNRTF9EVU1QX1RBUkdFVF9ESVI9Ii92YXIvbmMtYmFja3VwLWRiIgojIFdoYXRldmVyIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuIHNxbGR1bXAgKGluY2x1ZGluZyBwYXJhbWV0ZXJzIGxpa2UgdXNlciwgaG9zdCwgZGJuYW1lLCBwYXNzd29yZCBjZmcgLi4uKQojIC0gSWYgeW91ciBEQiBpcyBydW4gaW5zaWRlIGRvY2tlciwganVzdCBwcmVwZW5kIHRoZSBjb21tYW5kIHdpdGggd2hhdGV2ZXIgaXMgbmVlZGVkIHRvIHJ1biBhIGNvbW1hbmQgaW5zaWRlIHRoZSBjb250YWluZXIsCiMgICBmb3IgZXhhbXBsZTogU1FMRFVNUF9DTUQ9KGRvY2tlciBleGVjIDxjb250YWluZXJuYW1lPiBwZ19kdW1wIC1VIHBvc3RncmVzIC1kIG5jKQojIC0gRm9yIE1hcmlhREIgKHdpdGggdGhlIElubm9EQiBlbmdpbmUpLCBtYWtlIHN1cmUgdG8gdXNlIC0tc2luZ2xlLXRyYW5zYWN0aW9uIChhbmQgb3B0aW9uYWxseSAtLXNraXAtbG9jay10YWJsZXMgdG8gYXZvaWQgc2xvdyBkb3ducyBmb3IgeW91ciBzeXN0ZW0pIHRvIGF2b2lkIHNpZGUgZWZmZWN0cy4KIyAgIFNlZSBodHRwczovL215c3FsZHVtcC5ndXJ1L215c3FsZHVtcC1zaW5nbGUtdHJhbnNhY3Rpb24tZmxhZy5odG1sIGZvciBtb3JlIGluZm8uCiMgLSBGb3IgcG9zdGdyZXNxbCwgbm8gYWRqdXN0ZW1udHMgYXJlIG5lZWRlZAoKIyBDb25maWd1cmUgdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBmb3IgeW91ciBkYXRhYmFzZToKREJfVVNFUj0ibmV4dGNsb3VkIgpEQl9OQU1FPSJuZXh0Y2xvdWQiCkRCX1BBU1NXT1JEPSJwYXNzd29yZCIKREJfSE9TVD0iMTI3LjAuMC4xIgpEQl9QT1JUPSI1NDMyIgoKCiMgcGdfZHVtcCB3aWxsIGJlIHN1cHBsaWVkIHdpdGggdGhlIGNvbm5lY3Rpb24gb3B0aW9ucyBieSB3cml0aW5nIHRoZW0gdG8gfi8ucGdwYXNzClBHUEFTU19QQVRIPSIke0hPTUV9Ly5wZ3Bhc3MiCmluc3RhbGwgLW0gMDYwMCA8KGVjaG8gIiR7REJfSE9TVH06JHtEQl9QT1JUfToke0RCX05BTUV9OiR7REJfVVNFUn06JHtEQl9QQVNTV09SRH0iKSAiJHtQR1BBU1NfUEFUSH0iClNRTERVTVBfQ01EPShwZ19kdW1wICIke0RCX05BTUV9IikKCiMgU2V0dXAgYW55IHRhZ3MgaGVyZSB0aGF0IHlvdSB3YW50IHRvIGJlIGFkZGVkIHRvIHlvdXIgeW91ciBrb3BpYSBzbmFwc2hvdCAoY29tbWEgc2VwYXJhdGVkIGluIHRoZSBmb3JtYXQgbGFiZWw6dmFsdWUpCktPUElBX1RBR1M9ImpvYjpuZXh0Y2xvdWQtZnVsbC1iYWNrdXAsbmMtZmlsZXM6eWVzLG5jLWRiOnllcyxuYy1uZXh0Y2xvdWQ6eWVzIgoKIyMjIEFEVkFOQ0VEL0lOVEVSTkFMIENPTkZJRyAtIG9ubHkgYWRqdXN0IGlmIHlvdSBhcmUgc3VyZSB0aGF0IHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nICMjIwpOQ19JTlNUQUxMX0ZTVFlQRT0ibHZtIgojIE5DIGluc3RhbGwgTFZNIHNuYXBzaG90IG5hbWUKTkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FPSJuYy1iYWNrdXAtbmV4dGNsb3VkIgpOQ19JTlNUQUxMX1NOQVBTSE9UX1BBVEg9Ii9ydW4vbW50L25jLWJhY2t1cC1sdm0tbmV4dGNsb3VkIgoKVVNFUl9GSUxFU19GU1RZUEU9Imx2bSIKIyBOQyBmaWxlcyBMVk0gc25hcHNob3QgbmFtZQpVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUU9Im5jLWJhY2t1cC1uYy1maWxlcyIKVVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIPSIvcnVuL21udC9uYy1iYWNrdXAtbHZtLW5jLWZpbGVzIgoKCiMgRk9SQ0UgVUlEIGFuZCBHSUQgdGhhdCBhbGwgZmlsZXMgZnJvbSB0aGUgbmV4dGNsb3VkIGluc3RhbGwgZGlyZWN0b3J5IHNob3VsZCBoYXZlIGluIHRoZSBiYWNrdXAgKGUuZy4gdGhhdCBvZiB5b3VyIHd3dy1kYXRhIHVzZXIgYW5kIGdyb3VwKQpOQ19PV05FUl9VSUQ9MzMKTkNfT1dORVJfR0lEPTMzCgojIEZPUkNFIFVJRCBhbmQgR0lEIHRoYXQgYWxsIHVzZXIgZmlsZXMgc2hvdWxkIGhhdmUgaW4gdGhlIGJhY2t1cCAoZS5nLiB0aGF0IG9mIHlvdXIgd3d3LWRhdGEgdXNlciBhbmQgZ3JvdXApClVTRVJfRklMRVNfT1dORVJfVUlEPTMzClVTRVJfRklMRVNfT1dORVJfR0lEPTMzCgojIENvbmZpZ3VyZSBwYXRoIHdoZXJlIGFsbCBwYXJ0cyBvZiB0aGUgYmFja3VwIHdpbGwgYmUgbWFwcGVkIHRvIGJlZm9yZSB0cmFuc2ZlcnJpbmcgd2l0aCBLb3BpYQpCQUNLVVBfUk9PVD0iL3J1bi9uYy1iYWNrdXAiCgoKIyMjIFlvdSB1c3VhbGx5IHNob3VsZCBub3QgbmVlZCB0byB0b3VjaCB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcwoKX1VTRVJfRklMRVNfQklORD0iJHtCQUNLVVBfUk9PVH0vbmNfZmlsZXMiCl9OQ19JTlNUQUxMX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L25leHRjbG91ZCIKX0RCX0JJTkQ9IiR7QkFDS1VQX1JPT1R9L2RiIgoKIyBmaWxlIGZvciBrZWVwaW5nIHRyYWNrIG9mIHJ1bm5pbmcgYmFja3VwIG9wZXJhdGlvbnMKX1BJRF9GSUxFPSIvdmFyL3J1bi9uYy1iYWNrdXAucGlkIgoKCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgbG9nZ2luZyB0byBib3RoIHRoZSBsb2cgZmlsZSBhbmQgc3Rkb3V0CmxvZygpIHsKICBsb2NhbCBtc2cgbWVzc2FnZQoKICBmd2Q9KGVjaG8pCiAgaWYgW1sgLW4gIiRMT0dfRklMRSIgXV0KICB0aGVuCiAgZndkPSh0ZWUgLWEgIiRMT0dfRklMRSIpCiAgZmkKCiAgaWYgW1sgLXogIiR7MTotfSIgXV0KICB0aGVuCiAgd2hpbGUgcmVhZCAtciBtZXNzYWdlCiAgZG8KICBlY2hvICJcJCQkPiQoZGF0ZSAtSXMpPT4iICIke21lc3NhZ2VbQF19IiAyPiYxIHwgIiR7ZndkW0BdfSIKICBkb25lCiAgcmV0dXJuCiAgZmkKCiAgZWNobyAiXCQkJD4kKGRhdGUgLUlzKT0+IiAiJHtAfSIgMj4mMSB8ICIke2Z3ZFtAXX0iCn0KCiMgVXRpbGl0eSBmdW5jdGlvbiBmb3IgY2xlYW5pbmcgdXAgc25hcHNob3RzLCBwaWQgZmlsZSwgZXRjLgpjbGVhbnVwKCkgewogIHNldCArZXUKICBlY2hvICJDbGVhbnVwLi4uIgogIAogIHJtIC1yZiAiJHtQR1BBU1NfUEFUSH0iCiAgCiAgCiAgdW1vdW50ICIkX0RCX0JJTkQiCiAgdW1vdW50ICIkX05DX0lOU1RBTExfQklORCIKICB1bW91bnQgIiRfVVNFUl9GSUxFU19CSU5EIgoKICBbWyAteiAiJHtVU0VSX0ZJTEVTX01PVU5UfSIgXV0gfHwgdW1vdW50ICIkVVNFUl9GSUxFU19NT1VOVCIKICBbWyAteiAiJHtOQ19JTlNUQUxMX01PVU5UfSIgXV0gfHwgdW1vdW50ICIkTkNfSU5TVEFMTF9NT1VOVCIKCiAgcm0gLXJmICIkU1FMX0RVTVBfVEFSR0VUX0RJUiI7CiAgIyBDbGVhbnVwIE5DIGluc3RhbGwgZGlyIHNuYXBzaG90CiAgCiAgdW1vdW50ICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iCiAgcm0gLXJmICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iCiAgbHZjaGFuZ2UgLWFuIC1LICIke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FfSIKICBsdnJlbW92ZSAiL2Rldi8ke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9TTkFQU0hPVF9OQU1FfSIKICAKICAjIENsZWFudXAgTkMgZmlsZXMgc25hcHNob3QKICAKICB1bW91bnQgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfSIKICBybSAtcmYgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9QQVRIfSIKICBsdmNoYW5nZSAtYW4gLUsgIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IgogIGx2cmVtb3ZlICIvZGV2LyR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IgogIAogIAogICMgUmVtb3ZlIFBJRCBmaWxlCiAgcm0gIiRfUElEX0ZJTEUiCiAgZWNobyAiRG9uZS4iCn0KCgojIFV0aWxpdHkgZnVuY3Rpb24gZm9yIG1vdW50aW5nIGx2bSBzbmFwc2hvdCB0byBhIG1vdW50cG9pbnQKbW91bnRfc25hcHNob3RfbHZtKCkgewogIGxvY2FsIHNuYXBzaG90IG1vdW50cG9pbnQgb3duZXJzaGlwCiAgc25hcHNob3Q9IiR7MT99IgogIG1vdW50cG9pbnQ9IiR7Mj99IgogIG1rZGlyIC1wICIke21vdW50cG9pbnR9IgogIGx2Y2hhbmdlIC1heSAtSyAiJHtzbmFwc2hvdH0iCiAgbW91bnQgLW8gInJvIiAiL2Rldi8ke3NuYXBzaG90fSIgIiR7bW91bnRwb2ludH0iCn0KCgojIyBEZXRlY3Qgd2hldGhlciBhIGJhY2t1cCBpcyBzdGlsbCBydW5uaW5nIChhbmQgYWJvcnQgaW4gdGhpcyBjYXNlKQojIElmIHRoZSBiYWNrdXAgaGFzIGJlZW4gcnVubmluZyBmb3IgbW9yZSB0aGFuIDEwIGhvdXJzLCBpdCBpcyBhc3N1bWVkIHRvIGJlIHN0dWNrIGFuZCBpdHMgcHJvY2VzcyBraWxsZWQKaWYgW1sgLWYgIiRfUElEX0ZJTEUiIF1dICYmIHBzIC1wICIkKGNhdCAiJF9QSURfRklMRSIpIiA+IC9kZXYvbnVsbAp0aGVuCiAgZWxhcHNlZD0iJChwcyAtbyBldGltZXM9IC1wICIkKGNhdCAiJF9QSURfRklMRSIpIikiCiAgaWYgW1sgIiR7ZWxhcHNlZC8vIC99IiAtZ3QgJCgoMTAgKiAzNjAwKSkgXV0KICB0aGVuCiAgICBsb2cgIkRldGVjdGVkIGJhY2t1cCBwcm9jZXNzIGdvaW5nIGZvciBvdmVyIDEwIGhvdXJzLCBraWxsaW5nIGl0Li4uIgogICAga2lsbCAtOSAiJChjYXQgIiRfUElEX0ZJTEUiKSIKICBlbHNlCiAgICBsb2cgIk9uZ29pbmcgYmFja3VwIHByb2Nlc3MgZGV0ZWN0ZWQuIEFib3J0aW5nLi4uIgogICAgZXhpdCAwCiAgZmkKZmkKCiMgY2xlYW51cCBsZWZ0b3ZlcnMgZnJvbSBsYXN0IHJ1biBpZiBhbnkKY2xlYW51cCA+IC9kZXYvbnVsbCAyPiYxIHx8OgoKIyBTYXZlIGN1cnJlbnQgcHJvY2VzcyBpZCB0byBwaWQgZmlsZQplY2hvICIkJCIgPiAiJF9QSURfRklMRSIKCiMgY2xlYW51cCB3aWxsIGJlIHJ1biBhdCB0aGUgZW5kIG9mIHRoZSBzY3JpcHQgd2hldGhlciBpdCBmYWlscyBvciBzdWNjZWVkcwp0cmFwICdjbGVhbnVwIDI+JjEgfCBsb2cnIEVYSVQKCiMgTWFrZSBzdXJlIGRpcmVjdG9yaWVzIGV4aXN0Cm1rZGlyIC1wICIkX1VTRVJfRklMRVNfQklORCIgIiRfTkNfSU5TVEFMTF9CSU5EIiAiJF9EQl9CSU5EIiAiJFVTRVJfRklMRVNfTU9VTlQiICIkTkNfSU5TVEFMTF9NT1VOVCIgIiRTUUxfRFVNUF9UQVJHRVRfRElSIgoKdGltZXN0YW1wPSIkKGRhdGUgIislWS0lbS0lZCAlSDolTTolUyAlWiIpIgpsb2cgIlN0YXJ0aW5nIE5leHRjbG91ZCBTbmFwc2hvdCBhdCAkdGltZXN0YW1wIgoKIyBTbmFwc2hvdCBkaXNrcwpsb2cgIkNyZWF0ZSBzbmFwc2hvdHMuLi4iCgpsdmNyZWF0ZSAtcyAtLW5hbWUgIiROQ19JTlNUQUxMX1NOQVBTSE9UX05BTUUiICIke05DX0lOU1RBTExfVkd9LyR7TkNfSU5TVEFMTF9WT0xVTUV9IiAyPiYxIHwgbG9nCm1vdW50X3NuYXBzaG90X2x2bSAiJHtOQ19JTlNUQUxMX1ZHfS8ke05DX0lOU1RBTExfU05BUFNIT1RfTkFNRX0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0iIDI+JjEgfCBsb2cKCgpsdmNyZWF0ZSAtcyAtLW5hbWUgIiR7VVNFUl9GSUxFU19TTkFQU0hPVF9OQU1FfSIgIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX0xWfSIgMj4mMSB8IGxvZwptb3VudF9zbmFwc2hvdF9sdm0gIiR7VVNFUl9GSUxFU19WR30vJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX05BTUV9IiAiJHtVU0VSX0ZJTEVTX1NOQVBTSE9UX1BBVEh9IiAyPiYxIHwgbG9nCgpsb2cgIkRvbmUuIgoKIyBEdW1wIERCCmxvZyAiQ3JlYXRlIERCIGR1bXAuLi4iCiIke1NRTERVTVBfQ01EW0BdfSIgPiAiJHtTUUxfRFVNUF9UQVJHRVRfRElSfS9kYi5zcWwiCmxvZyAiRG9uZS4iCgojIEJpbmQgbW91bnQgYWxsIGluZGl2aWR1YWwgc25hcHNob3RzIGludG8gYSBjb21tb24gcGFyZW50IGRpcmVjdG9yeQpsb2cgIkNyZWF0ZSBiaW5kIG1vdW50cy4uLiIKbW91bnQgLS1iaW5kIC1vICJybyx1aWQ9JHtOQ19PV05FUl9VSUR9LGdpZD0ke05DX09XTkVSX0dJRH0iICIke05DX0lOU1RBTExfU05BUFNIT1RfUEFUSH0vJHtOQ19JTlNUQUxMX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfTkNfSU5TVEFMTF9CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD0ke1VTRVJfRklMRVNfT1dORVJfVUlEfSxnaWQ9JHtVU0VSX0ZJTEVTX09XTkVSX0dJRH0gICIke1VTRVJfRklMRVNfU05BUFNIT1RfUEFUSH0vJHtVU0VSX0ZJTEVTX1JFTEFUSVZFX1BBVEgjL30iICAgICAiJHtfVVNFUl9GSUxFU19CSU5EfSIgICAgIDI+JjEgfCBsb2cKbW91bnQgLS1iaW5kIC1vIHJvLHVpZD1yb290LGdpZD1yb290ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1NRTF9EVU1QX1RBUkdFVF9ESVJ9IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtfREJfQklORH0iICAgICAgICAgICAgIDI+JjEgfCBsb2cKbG9nICJEb25lLiIKCiMgQ3JlYXRlIHRoZSBmaW5hbCBzbmFwc2hvdCB3aXRoIGtvcGlhIHVzaW5nIHRoZSBkZWZhdWx0IGtvcGlhIHJlcG9zaXRvcnkgY29uZmlnIChpZiBuZWVkZWQsIHlvdSBjYW4gY2hhbmdlIHRoZSBjb25maWcgZmlsZSB3aXRoIHRoZSAtLWNvbmZpZy1maWxlIHBhcmFtZXRlcikKbG9nICJDcmVhdGUga29waWEgc25hcHNob3QuLi4iCiMgVGVtcG9yYXJ5IGxvZyBmaWxlIGFzIGEgd29ya2Fyb3VuZCB0byBwYXNzIGtvcGlhIGxvZ3MgdG8gb3VyIGxvZyBmdW5jdGlvbgprb3BpYV9sb2dmaWxlPSIkKG1rdGVtcCAtLXRtcGRpciBrb3BpYS1zbmFwc2hvdC5YWFhYWC5sb2cpIgp0YWlsIC1mICIka29waWFfbG9nZmlsZSIgJgprb3BpYSBzbmFwc2hvdCBjcmVhdGUgLS1wYXJhbGxlbD00IC0tdGFncyAiJHtLT1BJQV9UQUdTfSIgLS1zdGFydC10aW1lPSIkdGltZXN0YW1wIiAtLWxvZy1maWxlPSIka29waWFfbG9nZmlsZSIgLS1maWxlLWxvZy1sZXZlbD0iaW5mbyIgIiR7QkFDS1VQX1JPT1R9IgpjYXQgIiR7a29waWFfbG9nZmlsZSUubG9nfSIqLmxvZyB8IGxvZyA+IC9kZXYvbnVsbApsb2cgIkRvbmUuIg==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-linenos data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot; data-name=&quot;nextcloud-backup.sh&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#!&#x2F;bin&#x2F;bash
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set -euo pipefail
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Procedure
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - The script will create snapshots of the lvm root volume and the btrfs subvolume backing Nextcloud&amp;#39;s user files. Then it will start an sqldump of the database
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - Afterwards, all 3 snapshots will be mounted&#x2F;copied in the same parent directory and uploaded to a kopia repository
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ========== ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### CONFIGURATION
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for writing logs. Can be left empty to only log to stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;log&#x2F;nc-backup.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud installation directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;17&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm-1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the LVM volume group containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;18&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the logical volume name containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;19&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust this if the nc installation directory is not in the root of the backing filesystem volume
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;20&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;21&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;22&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Nextcloud files directory config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;23&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm-1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the LVM volume group containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;24&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_LV&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Adjust to match the logical volume name containing your nc installation directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;25&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# DB dump config
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;26&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Path where to temporarily store database dump (should have enough free space)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;27&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;nc-backup-db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;28&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Whatever command can be used to create an sqldump (including parameters like user, host, dbname, password cfg ...)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;29&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - If your DB is run inside docker, just prepend the command with whatever is needed to run a command inside the container,
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;30&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   for example: SQLDUMP_CMD=(docker exec &amp;lt;containername&amp;gt; pg_dump -U postgres -d nc)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;31&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For MariaDB (with the InnoDB engine), make sure to use --single-transaction (and optionally --skip-lock-tables to avoid slow downs for your system) to avoid side effects.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;32&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;#   See https:&#x2F;&#x2F;mysqldump.guru&#x2F;mysqldump-single-transaction-flag.html for more info.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;33&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# - For postgresql, no adjustemnts are needed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;34&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;35&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure the connection options for your database:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;36&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;37&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;38&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;39&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;127.0.0.1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;40&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;41&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;42&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;43&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# pg_dump will be supplied with the connection options by writing them to ~&#x2F;.pgpass
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;44&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.pgpass&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;45&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;46&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;pg_dump &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;47&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;48&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Setup any tags here that you want to be added to your your kopia snapshot (comma separated in the format label:value)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;49&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;job:nextcloud-full-backup,nc-files:yes,nc-db:yes,nc-nextcloud:yes&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;50&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;51&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### ADVANCED&#x2F;INTERNAL CONFIG - only adjust if you are sure that you know what you&amp;#39;re doing ###
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;52&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;53&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# NC install LVM snapshot name
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;54&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-backup-nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;55&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;mnt&#x2F;nc-backup-lvm-nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;56&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;57&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_FSTYPE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;58&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# NC files LVM snapshot name
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;59&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nc-backup-nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;60&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;mnt&#x2F;nc-backup-lvm-nc-files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;61&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;62&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;63&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all files from the nextcloud install directory should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;64&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;65&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;66&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;67&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# FORCE UID and GID that all user files should have in the backup (e.g. that of your www-data user and group)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;68&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;69&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;33
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;70&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;71&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Configure path where all parts of the backup will be mapped to before transferring with Kopia
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;72&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;nc-backup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;73&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;74&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;75&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;### You usually should not need to touch the following variables
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;76&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;77&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;78&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;79&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;80&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;81&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# file for keeping track of running backup operations
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;82&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;var&#x2F;run&#x2F;nc-backup.pid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;83&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;84&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;85&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for logging to both the log file and stdout
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;86&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;87&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;msg message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;88&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;89&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;echo&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;90&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;n &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;91&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;92&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=(&lt;&#x2F;span&gt;&lt;span&gt;tee -a &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;LOG_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;93&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;94&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;95&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;:-}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;96&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;97&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;while &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;read &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; message
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;98&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;do
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;99&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;message&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;100&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;done
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;101&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;return
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;102&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;103&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;104&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;\$$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;Is&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;=&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;fwd&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;105&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;106&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;107&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for cleaning up snapshots, pid file, etc.
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;108&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;109&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;set &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;+&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;eu
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;110&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Cleanup...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;111&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;112&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;PGPASS_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;113&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;114&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;115&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;116&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;117&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;118&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;119&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;120&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;z &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;|| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;121&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;122&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;123&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC install dir snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;124&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;125&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;126&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;127&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;an&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;128&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvremove &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;129&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;130&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Cleanup NC files snapshot
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;131&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;132&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;umount &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;133&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;134&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;an&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;135&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvremove &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;136&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;137&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;138&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Remove PID file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;139&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;140&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;141&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;142&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;143&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;144&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Utility function for mounting lvm snapshot to a mountpoint
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;145&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;() {
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;146&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;local &lt;&#x2F;span&gt;&lt;span&gt;snapshot mountpoint ownership
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;147&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;148&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;?}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;149&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;150&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvchange&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;ay&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;K &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;151&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;dev&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;snapshot&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;mountpoint&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;152&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;153&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;154&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;155&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;## Detect whether a backup is still running (and abort in this case)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;156&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# If the backup has been running for more than 10 hours, it is assumed to be stuck and its process killed
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;157&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]] &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;amp;&amp;amp; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot; &amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;158&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;159&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;ps&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; etimes=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;160&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;if &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;[[ &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;elapsed&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;&#x2F; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&#x2F;}&amp;quot; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;gt &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$((&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;10 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;* &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;3600&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)) &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;]]
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;161&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;then
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;162&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Detected backup process going for over 10 hours, killing it...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;163&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kill -9 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;164&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;else
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;165&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Ongoing backup process detected. Aborting...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;166&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;exit 0
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;167&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;168&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;fi
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;169&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;170&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup leftovers from last run if any
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;171&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cleanup &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;||&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;:
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;172&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;173&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Save current process id to pid file
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;174&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;gt; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_PID_FILE&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;175&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;176&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# cleanup will be run at the end of the script whether it fails or succeeds
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;177&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;trap &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;cleanup 2&amp;gt;&amp;amp;1 | log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; EXIT
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;178&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;179&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Make sure directories exist
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;180&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;p &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_MOUNT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;181&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;182&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;date &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;+%Y-%m-%d %H:%M:%S %Z&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;183&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Starting Nextcloud Snapshot at &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;184&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;185&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Snapshot disks
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;186&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create snapshots...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;187&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;188&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvcreate&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;s&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;name &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VOLUME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;189&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;190&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;191&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;192&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;lvcreate&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;s&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;name &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_LV&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;193&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount_snapshot_lvm &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_VG&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;194&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;195&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;196&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;197&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Dump DB
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;198&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create DB dump...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;199&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQLDUMP_CMD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ec5f67;&quot;&gt;@&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;]}&amp;quot; &amp;gt; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;200&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;201&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;202&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Bind mount all individual snapshots into a common parent directory
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;203&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create bind mounts...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;204&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;NC_INSTALL_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_NC_INSTALL_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;205&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_UID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;,gid=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_OWNER_GID&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}  &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_SNAPSHOT_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;USER_FILES_RELATIVE_PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_USER_FILES_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;206&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mount&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;bind&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; ro,uid=root,gid=root                                        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;SQL_DUMP_TARGET_DIR&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;                                        &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;_DB_BIND&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;             &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;2&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;1 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;207&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;208&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;209&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Create the final snapshot with kopia using the default kopia repository config (if needed, you can change the config file with the --config-file parameter)
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;210&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Create kopia snapshot...&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;211&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Temporary log file as a workaround to pass kopia logs to our log function
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;212&lt;&#x2F;td&gt;&lt;td&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mktemp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tmpdir&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; kopia-snapshot.XXXXX.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;)&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;213&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;tail&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;f &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;amp;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;214&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot create&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;parallel&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;4&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;tags &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;KOPIA_TAGS&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;start-time&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;timestamp&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;log-file&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;file-log-level&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;info&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot; &amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;BACKUP_ROOT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;215&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;cat &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;kopia_logfile&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;.log&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;.log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;dev&#x2F;null
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;tr&gt;&lt;td&gt;216&lt;&#x2F;td&gt;&lt;td&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;log &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;Done.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;

      &lt;&#x2F;div&gt;
    &lt;&#x2F;context-condition&gt;
  
  &lt;&#x2F;sl-details&gt;
&lt;&#x2F;parameterized-script&gt;

&lt;h3 id=&quot;running-regular-backups&quot;&gt;Running regular backups&lt;&#x2F;h3&gt;
&lt;p&gt;Now set up the script as cron job. If you want hourly backups (that&#x27;s how I&#x27;m running it), you need to do nothing more than
drop it into &lt;code&gt;&#x2F;etc&#x2F;cron.hourly&#x2F;&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;If your want a custom schedule, save it in a separate location instead (e.g. &lt;code&gt;&#x2F;usr&#x2F;sbin&#x2F;&lt;&#x2F;code&gt;) and create an entry in &lt;code&gt;&#x2F;etc&#x2F;crontab&lt;&#x2F;code&gt;, e.g.:&lt;&#x2F;p&gt;

&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBtaW51dGUgaG91ciBkYXkgbW9udGggd2Vla2RheSBjb21tYW5kCiAgMzAgICAgICovNCAgKi8yICAgKiAgICAgKiAgICAgYmFzaCAvdXNyL3NiaW4vbmV4dGNsb3VkLWJhY2t1cC5zaA==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;cron&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-cron &quot;&gt;&lt;code class=&quot;language-cron&quot; data-lang=&quot;cron&quot;&gt;&lt;span&gt;# minute hour day month weekday command
&lt;&#x2F;span&gt;&lt;span&gt;  30     *&#x2F;4  *&#x2F;2   *     *     bash &#x2F;usr&#x2F;sbin&#x2F;nextcloud-backup.sh
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;
&lt;p&gt;which will run the script every 4 hours at every 2nd day at the half hour mark.&lt;&#x2F;p&gt;
&lt;p&gt;Make sure to adjust the script permissions so it is executable and not readable by other users:&lt;&#x2F;p&gt;

&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;Y2htb2QgMDUwMCAvdXNyL3NiaW4vbmV4dGNsb3VkLWJhY2t1cC5zaA==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;chmod 0500 &#x2F;usr&#x2F;sbin&#x2F;nextcloud-backup.sh
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;

&lt;&#x2F;div&gt;
&lt;h2 id=&quot;restoring-a-backup&quot;&gt;Restoring a backup&lt;&#x2F;h2&gt;
&lt;p&gt;Now, let&#x27;s have a look at restoring a backup:&lt;&#x2F;p&gt;
&lt;h3 id=&quot;reuse-or-setup-a-nextcloud-server&quot;&gt;Reuse or setup a Nextcloud server&lt;&#x2F;h3&gt;
&lt;p&gt;In order to restore a snapshot, you need a Nextcloud server, that is working fine (apart from missing your data).
So either set one up or reuse your existing server, if you&#x27;re confident that only the backed up data (i.e.
Nextcloud installation directory, user files directory or database) was damaged.
This server needs to match your previous one (at the time of the backup) as closely as possible (e.g. the database and
PHP version should be the same or at least compatible).&lt;&#x2F;p&gt;
&lt;h3 id=&quot;restore-a-snapshot&quot;&gt;Restore a snapshot&lt;&#x2F;h3&gt;
&lt;p&gt;The first thing to do is, to have a look at the list of snapshots and restore one of them.
Alternatively to using the given commands, we can also use the &lt;a href=&quot;https:&#x2F;&#x2F;kopia.io&#x2F;docs&#x2F;installation&#x2F;#two-variants-of-kopia&quot;&gt;Kopia GUI&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBMaXN0IHRoZSBzbmFwc2hvdHMgYW5kIGZpbmQgb25lIHRoYXQgeW91IHdhbnQgdG8gcmVzdG9yZQprb3BpYSBzbmFwc2hvdHMgbGlzdCAtLWFsbCB8IGxlc3M=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# List the snapshots and find one that you want to restore
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshots list&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;all &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;| &lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;less
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBJZiB3ZSdyZSBub3Qgb24gYSBmcmVzaCBzZXJ2ZXIsIHJlbW92ZSB0aGUgZXhpc3RpbmcgZGlyZWN0b3JpZXMgdGhhdCB3aWxsIGJlIHJlc3RvcmVkCnJtIC1yZiAvdmFyL3d3dy9uZXh0Y2xvdWQvKiAvdmFyL3d3dy9uZXh0Y2xvdWQvLlshLl0qCnJtIC1yZiAvbW50L2RhdGEvbmNkYXRhLyogL21udC9kYXRhL25jZGF0YS8uWyEuXSo=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# If we&amp;#39;re not on a fresh server, remove the existing directories that will be restored
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;var&#x2F;www&#x2F;nextcloud&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;var&#x2F;www&#x2F;nextcloud&#x2F;.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;!&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;*
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;rf&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;mnt&#x2F;data&#x2F;ncdata&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;*&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;mnt&#x2F;data&#x2F;ncdata&#x2F;.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;!&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#c594c5;&quot;&gt;]&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;*
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBSZXN0b3JlIHRoZSBzbmFwc2hvdCB0byB0aGUgb3JpZ2luYWwgbG9jYXRpb25zIChzZWUgaHR0cHM6Ly9rb3BpYS5pby9kb2NzL3JlZmVyZW5jZS9jb21tYW5kLWxpbmUvY29tbW9uL3NuYXBzaG90LXJlc3RvcmUvKQojIExldCdzIGFzc3VtZSB0aGUgaWQgb2YgdGhlIHNuYXBzaG90IHdlIHdhbnQgdG8gcmVzdG9yZSBpcyAia2ZmYmI3YzI4ZWE2YzM0ZDZjYmU1NTVkMWNmODBmYWE5Igprb3BpYSBzbmFwc2hvdCByZXN0b3JlICJrZmZiYjdjMjhlYTZjMzRkNmNiZTU1NWQxY2Y4MGZhYTkvbmV4dGNsb3VkIiAvdmFyL3d3dy9uZXh0Y2xvdWQKa29waWEgc25hcHNob3QgcmVzdG9yZSAia2ZmYmI3YzI4ZWE2YzM0ZDZjYmU1NTVkMWNmODBmYWE5L25jX2ZpbGVzIiAvbW50L2RhdGEvbmNkYXRhCmtvcGlhIHNuYXBzaG90IHJlc3RvcmUgImtmZmJiN2MyOGVhNmMzNGQ2Y2JlNTU1ZDFjZjgwZmFhOS9kYi5zcWwiIC9ydW4vbmMtcmVzdG9yZS1kYi5zcWw=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Restore the snapshot to the original locations (see https:&#x2F;&#x2F;kopia.io&#x2F;docs&#x2F;reference&#x2F;command-line&#x2F;common&#x2F;snapshot-restore&#x2F;)
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Let&amp;#39;s assume the id of the snapshot we want to restore is &amp;quot;kffbb7c28ea6c34d6cbe555d1cf80faa9&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot restore &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;kffbb7c28ea6c34d6cbe555d1cf80faa9&#x2F;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;var&#x2F;www&#x2F;nextcloud
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot restore &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;kffbb7c28ea6c34d6cbe555d1cf80faa9&#x2F;nc_files&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;mnt&#x2F;data&#x2F;ncdata
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;kopia snapshot restore &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;kffbb7c28ea6c34d6cbe555d1cf80faa9&#x2F;db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; &#x2F;run&#x2F;nc-restore-db.sql
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBGaW5hbGx5LCBsZXQncyBlbnN1cmUsIHRoZSByZXN0b3JlZCBkaXJlY3RvcmllcyBoYXZlIGNvcnJlY3Qgb3duZXJzaGlwLgojIEFzc3VtaW5nIHlvdXIgbmV4dGNsb3VkIHdlYnNlcnZlciBpcyBydW5uaW5nIHVuZGVyIHVpZD0zMywgZG86CmNob3duIC1SIDMzOiAvdmFyL3d3dy9uZXh0Y2xvdWQKY2hvd24gLVIgMzM6IC9tbnQvZGF0YS9uY2RhdGE=&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Finally, let&amp;#39;s ensure, the restored directories have correct ownership.
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# Assuming your nextcloud webserver is running under uid=33, do:
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;chown&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;R&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 33: &#x2F;var&#x2F;www&#x2F;nextcloud
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;chown&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;R&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 33: &#x2F;mnt&#x2F;data&#x2F;ncdata
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Now we need to restore the database from the restored &lt;code&gt;&#x2F;run&#x2F;nc-restore-db.sql&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;sl-tab-group&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;postgres&quot;&gt;PostgreSQL&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab slot=&quot;nav&quot; panel=&quot;mariadb&quot;&gt;MariaDB &amp;#x2F; MySQL&lt;&#x2F;sl-tab&gt;
  
  &lt;sl-tab-panel name=&quot;postgres&quot;&gt;
  
  &lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;root&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;localhost&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBwc3FsIHdpbGwgYmUgc3VwcGxpZWQgd2l0aCB0aGUgY29ubmVjdGlvbiBvcHRpb25zIGJ5IHdyaXRpbmcgdGhlbSB0byB+Ly5wZ3Bhc3MKaW5zdGFsbCAtbSAwNjAwIDwoZWNobyAiJHtEQl9IT1NUfToke0RCX1BPUlR9OiR7REJfTkFNRX06JHtEQl9VU0VSfToke0RCX1BBU1NXT1JEfSIpICIkSE9NRS8ucGdwYXNzIgpwc3FsIC1kICIke0RCX05BTUV9IiA8ICIvcnVuL25jLXJlc3RvcmUtZGIuc3FsIg==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# psql will be supplied with the connection options by writing them to ~&#x2F;.pgpass
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.pgpass&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;psql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;d &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;lt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;nc-restore-db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;

&lt;sl-tab-panel name=&quot;mariadb&quot;&gt;
  
  &lt;div class=&quot;code-group&quot;&gt;
  &lt;div class=&quot;code-wrapper&quot;&gt;
  &lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;root&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;nextcloud&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;password&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;localhost&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;5432
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;div class=&quot;code-copy-button-wrapper&quot;&gt;
&lt;sl-button
        class=&quot;sl-theme-dark code-copy-button&quot;
        circle
        variant=&quot;primary&quot;
        label=&quot;Copy to Clipboard&quot;
        data-content=&quot;IyBteXNxbCB3aWxsIGJlIHN1cHBsaWVkIHdpdGggdGhlIGRiIGNyZWRlbnRpYWxzIGJ5IHdyaXRpbmcgdGhlbSB0byB+Ly5teS5jbmYKaW5zdGFsbCAtbSAwNjAwIDwoZWNobyAtZSAiW215c3FsZHVtcF1cbnVzZXI9JHtEQl9VU0VSfVxucGFzc3dvcmQ9JHtEQl9QQVNTV09SRH0iKSAiJEhPTUUvLm15LmNuZiIKbXlzcWwgXAogIC0taG9zdD0iJHtEQl9IT1NUfSIgXAogIC0tcG9ydD0iJHtEQl9QT1JUfSIgXAogICIke0RCX05BTUV9IiA8ICIvcnVuL25jLXJlc3RvcmUtZGIuc3FsIg==&quot;&gt;
  &lt;sl-icon name=&quot;copy&quot;&gt;&lt;&#x2F;sl-icon&gt;
&lt;&#x2F;sl-button&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b2c2f;color:#cccece;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#5f6364;&quot;&gt;# mysql will be supplied with the db credentials by writing them to ~&#x2F;.my.cnf
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;install&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;m&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt; 0600 &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;lt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;echo &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;e &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;[mysqldump]\nuser=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_USER&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;\npassword=&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PASSWORD&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot;) &amp;quot;$&lt;&#x2F;span&gt;&lt;span&gt;HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;.my.cnf&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;mysql &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;\
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;host&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_HOST&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;  --&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f99157;&quot;&gt;port&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;=&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_PORT&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; \
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#6699cc;&quot;&gt;  &lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;${&lt;&#x2F;span&gt;&lt;span&gt;DB_NAME&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;}&amp;quot; &amp;lt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#99c794;&quot;&gt;&#x2F;run&#x2F;nc-restore-db.sql&lt;&#x2F;span&gt;&lt;span style=&quot;color:#5fb3b3;&quot;&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;&#x2F;div&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
  
&lt;&#x2F;sl-tab-panel&gt;
&lt;&#x2F;sl-tab-group&gt;
&lt;p&gt;That&#x27;s it! If things in your setup changed, you might still have to adjust &lt;code&gt;&#x2F;var&#x2F;www&#x2F;nextcloud&#x2F;config&#x2F;config.php&lt;&#x2F;code&gt; (
e.g. db credentials, redis adress ... ). But other than that, your backup should be restored successfully at this point.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h1&gt;
&lt;p&gt;As becomes clear, producing great backups can be a bit involved. But in my opinion, they are more than worth it,
because once set, they provide a quality of sleep that&#x27;s otherwise hard to achieve as sysadmin. :D
Jokes aside, having robust backups means a significant reduction in the &quot;worst case&quot; that we could endure with our
service (in regard to data loss) and are therefore crucial to have.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;revisiting-our-criteria&quot;&gt;Revisiting our criteria&lt;&#x2F;h2&gt;
&lt;p&gt;Let&#x27;s check how well we fared in terms of our criteria from &lt;a href=&quot;&#x2F;blog&#x2F;01-awesome-backups-1&#x2F;&quot;&gt;part 1 of this blog series&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;

&lt;ul&gt;
&lt;li&gt;protection from data loss
&lt;ul&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; by accidental deletion
&lt;ul&gt;
&lt;li&gt;solved by, well &lt;em&gt;having backups&lt;&#x2F;em&gt;, I guess&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; from hardware failure
&lt;ul&gt;
&lt;li&gt;solved by having offsite backups&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; from natural disaster
&lt;ul&gt;
&lt;li&gt;solved by having offsite backups&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; caused by malicious actors
&lt;ul&gt;
&lt;li&gt;solved by object locking&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; reliable recovery process
&lt;ul&gt;
&lt;li&gt;I&#x27;d say the recovery process is fairly straight forward&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; regular backups + long backup history
&lt;ul&gt;
&lt;li&gt;we have setup a backup schedule and Kopia&#x27;s retention policy according to our needs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; minimal storage costs
&lt;ul&gt;
&lt;li&gt;Thanks to Kopia&#x27;s deduplication and compression features, our backups are very storage efficient&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; zero downtime backups
&lt;ul&gt;
&lt;li&gt;By combining filesyste + database snapshots we did get away without downtimes&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; no increase in risk of data leaks
&lt;ul&gt;
&lt;li&gt;Thanks to Kopia&#x27;s client side encryption, we could even store our backups in otherwise uncompliant storage&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&#x2F;&gt;
confidence in the presence and integrity of our backups
&lt;ul&gt;
&lt;li&gt;Uh oh - looks like this is still unsolved&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;p&gt;As you can see - nearly all boxes are ticked! The remaining box will be addressed in the upcoming 3rd part of this
series where I talk about backup monitoring.
So stay tuned and consider &lt;a href=&quot;https:&#x2F;&#x2F;tokn.sh&#x2F;m&quot;&gt;following me on mastodon&lt;&#x2F;a&gt; or subscribing your feed reader to the
&lt;a href=&quot;&#x2F;blog&#x2F;atom.xml&quot;&gt;RSS feed&lt;&#x2F;a&gt; to make sure, you won&#x27;t miss it. :)&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Awesome Backups 1 - What actually makes a good backup?</title>
        <published>2025-09-25T00:00:00+00:00</published>
        <updated>2025-09-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            Tobias Knöppler
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://tobias.knoeppler.org/blog/01-awesome-backups-1/"/>
        <id>https://tobias.knoeppler.org/blog/01-awesome-backups-1/</id>
        
        <content type="html" xml:base="https://tobias.knoeppler.org/blog/01-awesome-backups-1/">&lt;p&gt;I have been hosting Nextcloud for more than 8 years (and previously Owncloud), both for myself and for customers.
During that time, backups have saved me often enouogh and I have continuously optimized my approach to them.
In this series, I&#x27;ll share what I learned and what results in a solution for Nextcloud backups which, at least for me,
leaves nothing to be desired.&lt;&#x2F;p&gt;
&lt;p&gt;This first part covers the considerations behind my backup design.
&lt;a href=&quot;https:&#x2F;&#x2F;tobias.knoeppler.org&#x2F;blog&#x2F;02-awesome-backups-2&#x2F;&quot;&gt;In the next article&lt;&#x2F;a&gt; I will demonstrate how to implement
a backup process that fulfills the requirements discussed here.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;what-actually-makes-a-great-backup&quot;&gt;What actually makes a great backup?&lt;&#x2F;h1&gt;
&lt;!--[Skip the theory! I want step-by-step instructions.]({{ get_url(&quot;awesome_backups_2&quot;, leading_slash=false) }})--&gt;
&lt;p&gt;Before jumping into setting up our backup process, let&#x27;s take a second to think about what backups are actually supposed
to achieve.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-main-purpose-of-backups&quot;&gt;The main purpose of backups&lt;&#x2F;h2&gt;
&lt;p&gt;Backups are our last line of defense against data loss. Therefore, in order to figure out whether they serve their purpose,
we have to think about are causes of data loss that we need to take into account.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;data-loss-by-accident&quot;&gt;Data loss by accident&lt;&#x2F;h3&gt;
&lt;div class=&quot;details-group&quot;&gt;
  &lt;sl-details summary=&quot;Requirement&quot; class=&quot;neutral&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;8 years of hosting experience definitely means one thing: I have fucked up more than once. Be it a corrupted copy during
update, a misconfigured Nextcloud client or a lost encryption key.
It might be embarrassing, but pretending that those things don&#x27;t happen would just be plain dangerous. It might not even be us -
users have the capability to accidentally delete their own important data as well.
Luckily, if we play our cards right and have strong backups we can use those to get away in such situations with
a black eye.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;sl-details summary=&quot;Solution&quot; class=&quot;success&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;Having &lt;em&gt;any&lt;&#x2F;em&gt; sort of backup will safe us here. We just have to make sure that we backup frequently enough for our needs.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;&#x2F;div&gt;&lt;h3 id=&quot;data-loss-from-hardware-failure&quot;&gt;Data loss from hardware failure&lt;&#x2F;h3&gt;
&lt;div class=&quot;details-group&quot;&gt;
  &lt;sl-details summary=&quot;Requirement&quot; class=&quot;neutral&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;A manufacturing issue, a power surge or just normal disk degradation - hardware failures are just a matter of time when
running a server. And once they affect our disks, we are at risk of data loss.
While we can (and definitely should!) protect ourselves from some cases of disk failure by disk health monitoring and RAID setups,
we can&#x27;t rule them out entirely.
Especially if you have an issue with your power supply, that can cause hardware failures in multiple disks at once.
So we really want backups that are not at risk of being affected by hardware failures in our server.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;sl-details summary=&quot;Solution&quot; class=&quot;success&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;The key here is to decouple our backups from the hardware our service is running on. A separate backup disk is better than
nothing, a separate server is better.
And of course, we need to take care to use reliable storage in the first place, with builtin redundancy (e.g. RAID 5)
and error correction.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;&#x2F;div&gt;&lt;h3 id=&quot;data-loss-from-natural-disaster-or-theft&quot;&gt;Data loss from natural disaster or theft&lt;&#x2F;h3&gt;
&lt;div class=&quot;details-group&quot;&gt;
  &lt;sl-details summary=&quot;Requirement&quot; class=&quot;neutral&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;Wherever our server is located - there&#x27;s probably a nonzero chance of &quot;natural&quot; disasters like
fire, flood, or similar. And then, depending on how much we&#x27;re able to protect our server physically, there&#x27;s also the
chance for vandalism or theft. Mine is sitting in my flat, for example, so that&#x27;s definitely a scenario I need to prepare
for. Backups are part of the solution here (of course accompanied by strong disk encryption and information security).&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;sl-details summary=&quot;Solution&quot; class=&quot;success&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;To accommodate this, we need to go one step further: Our backup storage should be in a different physical location than
our application server. Common recommendations are a minimum distance of 200km, but if you are running a private cloud,
having a backup at a friend&#x27;s place (ideally in a different city) is probably fine.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;&#x2F;div&gt;&lt;h3 id=&quot;data-loss-caused-by-malicious-actors&quot;&gt;Data loss caused by malicious actors&lt;&#x2F;h3&gt;
&lt;div class=&quot;details-group&quot;&gt;
  &lt;sl-details summary=&quot;Requirement&quot; class=&quot;neutral&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;So, now we&#x27;re talking about the other kind of malicious actor, not the kind that breaks your front door and leaves with your
server under their arm. Instead, this is about our server being compromised by attackers who are using security
vulnerabilities in our setup.
As demonstrated by the &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;XZ_Utils_backdoor&quot;&gt;xz utils backdoor&lt;&#x2F;a&gt;, the
&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Log4Shell&quot;&gt;log4shell&lt;&#x2F;a&gt; vulnerability in a popular java logging library or the
&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;RegreSSHion&quot;&gt;regreSSHion&lt;&#x2F;a&gt; vulnerability in SSH, it&#x27;s not possible to reliably rule out
that our server will at any point be vulnerable.
A compromised server can be abused by attackers in many ways, using harvested credentials to impersonate users, send
spam mail, collect or leak valuable data and all of those are bad. However, there&#x27;s one specific attack that caused an
estimated 40-50 billion dollars of cost in 2024 and can be prevented by backups. I am, of course talking about
ransomware, where attackers encrypt our data and try to blackmail us for a ransom to get it back.
If we set up our backups with this scenario in mind, however, we can just purge our server, set it up from scratch and
restore a backup, which will be annoying but by far better than paying the ransom.
For completeness’s sake, though, I want to mention that ransomware attacks often also include risk of leaking sensitive data,
which backups can&#x27;t protect us from.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;sl-details summary=&quot;Solution&quot; class=&quot;success&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;The key here is to setup our backup storage in a way that allows our server to &lt;em&gt;write&lt;&#x2F;em&gt; backups, but not to delete or
modify them (at least not before a specified retention time).
One way to achieve this is by using advanced storage servers like object storage (e.g. Amazon AWS S3,
Google Cloud Storage or open source alternatives like Ceph or Min-IO).
Alternatively you could automate a privileged process on the backup location that changes a backups permissions so
the writing client can&#x27;t modify it anymore or move it to another location it does not have access to.
Or you trigger the entire backup transfer from the backup server in the first place.&lt;&#x2F;p&gt;
&lt;p&gt;As you can see, this can be a bit tricky to setup. In the next part of this series I will give a detailed example for
solving this with object storage.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;&#x2F;div&gt;&lt;h2 id=&quot;reliable-recovery-process&quot;&gt;Reliable Recovery Process&lt;&#x2F;h2&gt;
&lt;div class=&quot;details-group&quot;&gt;
  &lt;sl-details summary=&quot;Requirement&quot; class=&quot;neutral&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;Of course, any backup is just as good as our capability of restoring it. So knowing exactly, how to do it when
establishing a backup process is mandatory, as well as ensuring we will still have that knowledge when we need it.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;sl-details summary=&quot;Solution&quot; class=&quot;success&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;We will be really happy to have good documentation on the restore process when we need our backups.
Even better (if applicable) would be a script that can restore a backup in an automated fashion.
Don&#x27;t forget to test it, though! :)&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;&#x2F;div&gt;&lt;h2 id=&quot;regular-backups-retention&quot;&gt;Regular backups + retention&lt;&#x2F;h2&gt;
&lt;div class=&quot;details-group&quot;&gt;
  &lt;sl-details summary=&quot;Requirement&quot; class=&quot;neutral&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;We want to achieve a satisfactory frequency of backup creation as well as duration to keep them. The former
defines the maximum time period we can lose (time since last backup) and the latter defines the time we have to realize
that there&#x27;s an issue with our data before losing the chance to correct it. Both taken together define the absolute number
of backups we want to keep.
In an naive approach, where disk spaces scales linearly with the number of backups, this tends to quickly be a tradeoff
between expensive storage costs and recoverability. However, I will present options to keep many backups with minimal
storage costs.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;sl-details summary=&quot;Solution&quot; class=&quot;success&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;This one is very straight forward: &quot;Just do it&quot;.
The caveat here is that regular and long retained backups will result in a large number of total backups and therefore
potentially rising storage costs.
So this is about striking a good compromise between storage cost and backup count - or about very storage efficient backups.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;&#x2F;div&gt;&lt;h2 id=&quot;low-storage-costs&quot;&gt;Low Storage costs&lt;&#x2F;h2&gt;
&lt;div class=&quot;details-group&quot;&gt;
  &lt;sl-details summary=&quot;Requirement&quot; class=&quot;neutral&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;As just mentioned, we ideally want to keep many backups, so we need to keep an eye on our storage costs.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;sl-details summary=&quot;Solution&quot; class=&quot;success&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;Our two best approaches to reducing storage requirements are deduplication (or incremental backups) and compression.
This can be solved at the storage level or by your backup utility&#x2F;process.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;&#x2F;div&gt;&lt;h2 id=&quot;zero-downtime-backups&quot;&gt;Zero downtime backups&lt;&#x2F;h2&gt;
&lt;div class=&quot;details-group&quot;&gt;
  &lt;sl-details summary=&quot;Requirement&quot; class=&quot;neutral&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;As we want regular backups, we need backups without service downtime (If we back up more than once per day we might have
a hard time explaining to our users, why our service is interrupted that often).&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;sl-details summary=&quot;Solution&quot; class=&quot;success&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;I&#x27;m afraid, there&#x27;s no one size fits all here. How and if zero downtime backups are feasible largely depends on the
service&#x27;s infrastructure, specifically how it&#x27;s state is managed.
If the application state is mostly in traditional relational databases, you will probably be able to use single transaction
copies or snapshot features to perform zero downtime backups, if it&#x27;s mostly files, you can use filesystem snapshot features
and in other cases you might want to rely on virtual machine&#x2F;hypervisor snapshots.&lt;&#x2F;p&gt;
&lt;p&gt;In the next part of this series I will give a detailed example for solving this for a Nextcloud server.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;&#x2F;div&gt;&lt;h2 id=&quot;functional-backups&quot;&gt;Functional backups&lt;&#x2F;h2&gt;
&lt;div class=&quot;details-group&quot;&gt;
  &lt;sl-details summary=&quot;Requirement&quot; class=&quot;neutral&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;When we need our backups, they should be present, complete and working, so we should find ways to ensure that. This might
sound trivial, right after data loss is an unconvenient time to notice that your backup process has had an issue, but &lt;em&gt;it
will be the time we do notice it&lt;&#x2F;em&gt; if we don&#x27;t take precautions.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;sl-details summary=&quot;Solution&quot; class=&quot;success&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;The key to ensuring the integrity and functionality of our backups is robust backup monitoring.
There are a number of things to take into consideration here:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;What to monitor: Depending on the checks we perform on our backups we get vastly different guarantees:
&lt;ul&gt;
&lt;li&gt;presence monitoring: We know there actually &lt;em&gt;is&lt;&#x2F;em&gt; a backup, but we don&#x27;t know if it works&lt;&#x2F;li&gt;
&lt;li&gt;integrity monitoring: We know the backup is still the same as we wrote it. This can be helpful to detect bit rot
or disk failures (if we didn&#x27;t detect them by other means)&lt;&#x2F;li&gt;
&lt;li&gt;restore tests: The gold standard is, of course, to attempt restoring the backup and see if everything is there and working.
This may not be feasible though, depending on the complexity of our service and the size of our backup.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Where the is monitoring running: Ideally, we would run it separately from both our application and our backup server.
Alternatively we need some way to get notified if our monitoring itself is down (e.g. by a mobile app polling its status endpoint).&lt;&#x2F;li&gt;
&lt;li&gt;How we will notice if something isn&#x27;t right: Monitoring is only half as valuable without good alerting. Our monitoring
solution should have a way to notify us if our backups don&#x27;t look right.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;There&#x27;s a lot to talk about here, which is why I will dedicate the third and final part of this series to backup
monitoring.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;&#x2F;div&gt;&lt;h2 id=&quot;don-t-leave-the-porch-open&quot;&gt;Don&#x27;t leave the porch open&lt;&#x2F;h2&gt;
&lt;div class=&quot;details-group&quot;&gt;
  &lt;sl-details summary=&quot;Requirement&quot; class=&quot;neutral&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;Having backups should not increase our risk of data leaks. Therefore, we need to make sure that the backups are at least
as secure as the service data itself.&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;sl-details summary=&quot;Solution&quot; class=&quot;success&quot;&gt;
&lt;!--  TODO: make default collapsible configurable--&gt;
  &lt;p&gt;We have basically two options here: Either we use backup storage that we trust (both in terms of security and compliance)
or we securely encrypt our backups when writing them (in both cases we still need to trust in the capability and willingness
of our provider to provide storage integrity and availability).&lt;&#x2F;p&gt;
&lt;&#x2F;sl-details&gt;
&lt;&#x2F;div&gt;&lt;h1 id=&quot;summary&quot;&gt;Summary&lt;&#x2F;h1&gt;
&lt;p&gt;Alright, let&#x27;s wrap up our goals:&lt;&#x2F;p&gt;

&lt;ul&gt;
&lt;li&gt;protection from data loss
&lt;ul&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; by accidental deletion&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; from hardware failure&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; from natural disaster&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; caused by malicious actors&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; reliable recovery process&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; regular backups + long backup history&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; minimal storage costs&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; zero downtime backups&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; confidence in the presence and integrity of our backups&lt;&#x2F;li&gt;
&lt;li&gt;&lt;i class=&quot;fa fa-square-check&quot;&gt;&lt;&#x2F;i&gt; no increase in risk of data leaks&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;p&gt;That&#x27;s certainly a lot of boxes to tick. A detailed walk through my approach to accomplishing this will be the topic
of the &lt;a href=&quot;&#x2F;blog&#x2F;02-awesome-backups-2&#x2F;&quot;&gt;next part&lt;&#x2F;a&gt; in this series.&lt;&#x2F;p&gt;
&lt;p&gt;You are welcome to &lt;a href=&quot;https:&#x2F;&#x2F;tokn.sh&#x2F;m&quot;&gt;follow me on mastodon&lt;&#x2F;a&gt; or subscribe your feed reader to the
&lt;a href=&quot;&#x2F;blog&#x2F;atom.xml&quot;&gt;RSS feed&lt;&#x2F;a&gt; to make sure, you won&#x27;t miss it. :)&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
