<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cobra's bits (Posts about backup)</title><link>https://cobra.pdes-net.org</link><description></description><atom:link href="https://cobra.pdes-net.org/categories/backup.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2024 &lt;a href="mailto:najahannah@gmail.com"&gt;Cobra&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-NC-SA"
style="border-width:0; margin-bottom:12px;"
src="../images/by-nc-sa.svg"&gt;&lt;/a&gt;</copyright><lastBuildDate>Wed, 01 May 2024 12:19:59 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Android file transfer</title><link>https://cobra.pdes-net.org/posts/android-file-transfer.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;My home and office computers are synchronized via the ownCloud server located at my workplace. This synchronization takes place via an TLS encrypted connection with an A+ Qualys rating. In addition, I encrypt files containing sensitive information prior to their transfer on an individual basis. Since all systems accessing this cloud folder are driven by an operating system (OS) that I trust and largely control (Archlinux), I feel very comfortable regarding the security and privacy of my data. To keep this warm and cozy feeling, I wouldn't give devices with an OS beyond my control (such as Windows, MacOS, Android, iOS) access to this folder.&lt;/p&gt;
&lt;p&gt;Now, I fully appreciate that even a hardened desktop Linux would have difficulties to compete with the level of security offered by an up-to-date Android – with “security” being defined here in the conventional context with respect to a potential third-party adversary. But concerning the privacy of my data, and thus mine, the threat of an overly nosy first party is much more palpable. Actually, I shouldn't call it a threat. It's in fact a promise.&lt;/p&gt;
&lt;p&gt;How, then, am I supposed to transfer or even better synchronize data from and with the &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/resistance-is-futile.html"&gt;newest member&lt;/a&gt; of my gadget zoo? Since I've acquired this gadget as a two-factor authentication for my banks, I cannot simply root it and install &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/saving-nexie.html"&gt;LineageOS&lt;/a&gt; without any Google services. Therefore, I won't trust the device beyond its specialized purpose and I won't give it access to my cloud folder.&lt;/p&gt;
&lt;p&gt;But that's actually not a big deal in this case. Because of its specific function as a two-factor authenticator for my banks and several other services, the phone will remain stationary. Hence, I need to synchronize within my LAN, but not outside of it. When looking for apps that would be suitable for this task, I was initially attracted by those appealing to the nerd in me, such as, for example, &lt;a class="reference external" href="https://github.com/schollz/croc"&gt;croc&lt;/a&gt; installed (pkg install croc) and running within &lt;a class="reference external" href="https://termux.com/"&gt;termux,&lt;/a&gt; or &lt;a class="reference external" href="https://juicessh.com/"&gt;juiceSSH&lt;/a&gt;. In the end, these apps turned out to be fun for a limited time, but too tedious for everyday use. I'm very fond of &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/working-on-the-command-line.html"&gt;controlling computers with a keyboard&lt;/a&gt;, but for using termux efficiently, you'd need the eyes of an eagle, the fingers of an elf and the dexterity of a spider monkey.&lt;/p&gt;
&lt;p&gt;For ordinary human beings, &lt;a class="reference external" href="https://syncthing.net/"&gt;syncthing&lt;/a&gt; is the tool of choice. It's available on f-droid, easy to set up on all participating systems, and works reliably without manual intervention. In my case, I've simply created a folder (~/androidshare) on my desktop that automatically receives all files from my phone that may be worth to keep, including the backups of the andOTP and keepassDX databases and all photographs of my cats. 😍&lt;/p&gt;</description><category>backup</category><category>hardware</category><category>linux</category><category>thoughts</category><guid>https://cobra.pdes-net.org/posts/android-file-transfer.html</guid><pubDate>Fri, 24 Dec 2021 10:32:48 GMT</pubDate></item><item><title>A simple automated backup scheme</title><link>https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;I haven't talked about backups since more than two years, but as detailed in my previous &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/the-age-of-digital-decline.html"&gt;post&lt;/a&gt;, I was recently most emphatically reminded that it isn't clear to most people that their data can vanish anytime. Anytime? Anytime. &lt;img alt="poof" class="align-bottom" src="https://cobra.pdes-net.org/images/poof.svg" style="width: 65px;"&gt;&lt;/p&gt;
&lt;p&gt;I've detailed what I expect from a backup solution and what I've used over the years in several previous posts (see &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/better-backup.html"&gt;one&lt;/a&gt;, &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/attic.html"&gt;two&lt;/a&gt;, and &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html"&gt;three&lt;/a&gt;) and do not need to repeat that here. My current backup scheme is based on &lt;a class="reference external" href="https://www.borgbackup.org/"&gt;borg&lt;/a&gt; with support from &lt;a class="reference external" href="https://www.borgbackup.org/"&gt;rsync&lt;/a&gt; and &lt;a class="reference external" href="https://owncloud.org/"&gt;ownCloud&lt;/a&gt;. The following chart (which looks way more complicated than it is) visualizes this scheme and is explained below.&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://cobra.pdes-net.org/images/backup.svg"&gt;
&lt;img alt="../images/backup.svg.png" class="align-center" src="https://cobra.pdes-net.org/images/backup.svg.png" style="width: 700px;"&gt;
&lt;/a&gt;
&lt;p&gt;My home installation is on the left, separated from my office setup on the right by the dashed line in the center. The desktops (top) are equipped with an SSD containing the system and home partitions as well as an HDD for archiving, backup, and caching purposes. Active projects are stored in a dedicated ownCloud folder and synchronized between all clients, including my notebooks. The synchronization is done via the ownCloud server (the light gray box at the lower right) and is denoted by (1) in the chart. The server keeps a number of previous versions of each file, and in case a file is deleted, the latest version is kept, providing a kind of poor man's backup. But I'm using ownCloud to sync my active projects between my machines, not for its backup features.&lt;/p&gt;
&lt;p&gt;The actual backup from the SSD to the HDD is denoted by (2) or by (2') for my notebooks (to the same HDD, but over WiFi), and is done by borg. The backup is then transferred to a NAS (the gray boxes at the bottom) by simple rsync scripts indicated by (3). All of that is orchestrated with the help of a few crontab entries – here's the one for my office system as an example:&lt;/p&gt;
&lt;pre class="literal-block"&gt;$ crontab -l
15  7-21        *   *   *       $HOME/bin/backup.borg
30  21          *   *   *       source $HOME/.keychain/${HOSTNAME}-sh;  $HOME/bin/sync.backup
30  23          *   *   *       $HOME/bin/sync.vms
30  02          *   *   *       $HOME/bin/sync.archive&lt;/pre&gt;
&lt;p&gt;The first entry invokes my borg backup script (see below) every hour between 7:15 and 21:15 (I'm highly unlikely to work outside of this time interval). The second entry (see also below) takes care of transferring the entire backup folder on the HDD 15 min after the last backup to the NAS. Since my rsync script invokes ssh for transport, I use &lt;a class="reference external" href="https://www.funtoo.org/Keychain"&gt;keychain&lt;/a&gt; to inform cron about the current values of the environment variables SSH_AUTH_SOCK and SSH_AGENT_PID. The third entry induces the transfer of any changed virtual machine to the internal HDD. And finally, the fourth entry syncs the archive on the internal HDD to an external one (3'). I do that since once a project is finished, the corresponding folder is moved out of the ownCloud folder to the archive, effectively taking it out from the daily backup. This way, the size of my ownCloud folder never increased beyond 3.5 GB over the past five years. Since the projects typically don't change anymore once they are in the archive, this step effectively just creates a copy of the archive folder.&lt;/p&gt;
&lt;p&gt;What's not shown in the chart above: there's a final backup level involving the NAS. At home I do that manually (and thus much too infrequently) &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/back-up-the-nas.html"&gt;by rsyncing the NAS content to the HDDs I've collected over the years. `&lt;/a&gt; 😉 At the office, the NAS is backed up to tape every night automatically. The tapes are part of a &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Tape_library"&gt;tape library&lt;/a&gt; located in a different building (unfortunately, too close to survive a nuclear strike 😉 ), and are kept ten years as legally required.&lt;/p&gt;
&lt;p&gt;What does all of that mean when I prepare an important document such as a publication or a patent? Well, let's count. It doesn't matter where I start working: since the document is in my ownCloud folder, it is soon present on five different disks (two desktops and notebooks, and the ownCloud server). The backup and sync adds four more disks, and the final backup of the NAS results in two more copies (one on disk, one on tape). Altogether, within one day, my important document is automatically duplicated to ten different storage media (disks or tape) in three different locations. And when I continue working on this document the next days, my borg configuration (see below) keeps previous copies up to six month in the past (see cron mail below).&lt;/p&gt;
&lt;p&gt;You're probably thinking that I'm a complete paranoid. 10 different storage media in 3 different locations! Crazy! Well, the way I do it, I get this kind of redundancy and the associated peace of mind for free. See for yourself:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;(1) ownCloud&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;My employee runs an ownCloud server. I just need to install the client on all of my desktops and notebooks. If you are not as lucky: there are very affordable ownCloud or nextCloud (recommended) servers available in the interwebs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;(2) backup.borg&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A simple shell script:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-1" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-1" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-1"&gt;&lt;/a&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-2" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-2" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-3" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-3" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-3"&gt;&lt;/a&gt;&lt;span class="c1"&gt;#`https://github.com/borgbackup/borg &amp;lt;https://github.com/borgbackup/borg&amp;gt;`_&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-4" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-4" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-4"&gt;&lt;/a&gt;&lt;span class="c1"&gt;#`https://borgbackup.readthedocs.io/en/stable/index.html &amp;lt;https://borgbackup.readthedocs.io/en/stable/index.html&amp;gt;`_&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-5" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-5" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-6" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-6" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-6"&gt;&lt;/a&gt;ionice&lt;span class="w"&gt; &lt;/span&gt;-c3&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="nv"&gt;$$&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-7" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-7" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-8" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-8" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-8"&gt;&lt;/a&gt;&lt;span class="nv"&gt;repository&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/bam/backup/attic"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# directory backing up to&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-9" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-9" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-9"&gt;&lt;/a&gt;&lt;span class="nv"&gt;excludelist&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/home/ob/bin/exclude_from_attic.txt"&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-10" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-10" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-10"&gt;&lt;/a&gt;&lt;span class="nv"&gt;hostname&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$HOSTNAME&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-11" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-11" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-12" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-12" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-12"&gt;&lt;/a&gt;notify-send&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Starting backup"&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-13" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-13" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-13"&gt;&lt;/a&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-14" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-14" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-14"&gt;&lt;/a&gt;&lt;span class="w"&gt;          &lt;/span&gt;borg&lt;span class="w"&gt; &lt;/span&gt;create&lt;span class="w"&gt; &lt;/span&gt;--info&lt;span class="w"&gt; &lt;/span&gt;--stats&lt;span class="w"&gt; &lt;/span&gt;--compression&lt;span class="w"&gt; &lt;/span&gt;lz4&lt;span class="w"&gt;                  &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-15" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-15" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-15"&gt;&lt;/a&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nv"&gt;$repository&lt;/span&gt;::&lt;span class="nv"&gt;$hostname&lt;/span&gt;-&lt;span class="sb"&gt;`&lt;/span&gt;date&lt;span class="w"&gt; &lt;/span&gt;+%Y-%m-%d--%H:%M:%S&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-16" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-16" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-16"&gt;&lt;/a&gt;&lt;span class="w"&gt;          &lt;/span&gt;/home/ob&lt;span class="w"&gt;                                                      &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-17" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-17" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-17"&gt;&lt;/a&gt;&lt;span class="w"&gt;          &lt;/span&gt;--exclude-from&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$excludelist&lt;/span&gt;&lt;span class="w"&gt;                                   &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-18" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-18" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-18"&gt;&lt;/a&gt;&lt;span class="w"&gt;          &lt;/span&gt;--exclude-caches
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-19" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-19" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-19"&gt;&lt;/a&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-20" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-20" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-20"&gt;&lt;/a&gt;notify-send&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Backup complete"&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-21" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-21" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-21"&gt;&lt;/a&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-22" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-22" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-22"&gt;&lt;/a&gt;&lt;span class="w"&gt;          &lt;/span&gt;borg&lt;span class="w"&gt; &lt;/span&gt;prune&lt;span class="w"&gt; &lt;/span&gt;--info&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$repository&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--keep-within&lt;span class="o"&gt;=&lt;/span&gt;1d&lt;span class="w"&gt; &lt;/span&gt;--keep-daily&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;7&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--keep-weekly&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--keep-monthly&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-23" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-23" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-23"&gt;&lt;/a&gt;
&lt;a id="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-24" name="rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-24" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_6eae9e5ddffc4ab795ae369a9aef6c3e-24"&gt;&lt;/a&gt;&lt;span class="w"&gt;          &lt;/span&gt;borg&lt;span class="w"&gt; &lt;/span&gt;list&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$repository&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;(3) sync.backup&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A simple shell script:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-1" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-1" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-1"&gt;&lt;/a&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-2" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-2" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-3" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-3" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-3"&gt;&lt;/a&gt;&lt;span class="c1"&gt;# `http://everythinglinux.org/rsync/ &amp;lt;http://everythinglinux.org/rsync/&amp;gt;`_&lt;/span&gt;
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-4" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-4" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-4"&gt;&lt;/a&gt;&lt;span class="c1"&gt;# `http://troy.jdmz.net/rsync/index.html &amp;lt;http://troy.jdmz.net/rsync/index.html&amp;gt;`_&lt;/span&gt;
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-5" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-5" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-6" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-6" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-6"&gt;&lt;/a&gt;ionice&lt;span class="w"&gt; &lt;/span&gt;-c3&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="nv"&gt;$$&lt;/span&gt;
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-7" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-7" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-8" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-8" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-8"&gt;&lt;/a&gt;&lt;span class="nv"&gt;RHOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;nas4711
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-9" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-9" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-10" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-10" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-10"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BUSPATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/bam/backup/attic
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-11" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-11" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-11"&gt;&lt;/a&gt;&lt;span class="nv"&gt;BUDPATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/users/brandt/backup
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-12" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-12" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-12"&gt;&lt;/a&gt;
&lt;a id="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-13" name="rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-13" href="https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html#rest_code_0627c3ae5c824e2cbd9e9cdcdde29fcf-13"&gt;&lt;/a&gt;nice&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;+10&lt;span class="w"&gt; &lt;/span&gt;rsync&lt;span class="w"&gt; &lt;/span&gt;-az&lt;span class="w"&gt; &lt;/span&gt;-e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'ssh -l brandt'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--stats&lt;span class="w"&gt; &lt;/span&gt;--delete&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$BUSPATH&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$RHOST&lt;/span&gt;:&lt;span class="nv"&gt;$BUDPATH&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The two other scripts in the crontab listing above are entirely analogous to the one above.&lt;/p&gt;
&lt;p&gt;That's all. It's just these scripts and the associated crontab entries above, nothing more. And since (2) and (3) are managed by cron, I'm informed about the status of my backup every time one is performed. The list of entries you see in the mail below are the individual backups I could roll back to, or just copy individual files from after mounting the whole caboodle with 'borg mount -v /bam/backup/attic /bam/attic_mnt/' (see the screenshot below). You see how these backups are organized: hourly for the last 24h, daily for the last week, weekly for the past month, and monthly for the five months after.&lt;/p&gt;
&lt;pre class="literal-block"&gt;From: "(Cron Daemon)" &amp;lt;ob@pdi282&amp;gt;
Subject: Cron &amp;lt;ob@pdi282&amp;gt; $HOME/bin/backup.borg

------------------------------------------------------------------------------
Archive name: pdi282-2018-12-21--14:15:01
Archive fingerprint: d31db1cd8223ca084cc367deb62e440bfe2dfe4fd163aefc6b6294935f1877b8
Time (start): Fri, 2018-12-21 14:15:01
Time (end):   Fri, 2018-12-21 14:15:21
Duration: 19.52 seconds
Number of files: 173314
Utilization of max. archive size: 0%
------------------------------------------------------------------------------
                                           Original size      Compressed size    Deduplicated size
This archive:               30.14 GB             22.17 GB              1.40 MB
All archives:              975.54 GB            715.02 GB             43.41 GB

                                           Unique chunks         Total chunks
Chunk index:                  216890              6892358
------------------------------------------------------------------------------
pdi282-2018-06-30--21:15:01          Sat, 2018-06-30 21:15:01 [113186c574898837d0fb11e6fb7b71f62b0a5422d71b627662aec0d2d6a0e0bf]
pdi282-2018-07-31--21:15:01          Tue, 2018-07-31 21:15:01 [8af0cccbab5645490fcec5e88576dad1a3fbbfd3d726a35e17851d7bec545958]
pdi282-2018-08-31--21:15:01          Fri, 2018-08-31 21:15:01 [2d763ea253d18222015d124c48826425e75b83efedeedcc11b24cf8f0d7e8899]
pdi282-2018-09-30--21:15:01          Sun, 2018-09-30 21:15:01 [39932a0d8c081bc05f9cdff54637e3962fd9e622edce8ef64160e79ae767541f]
pdi282-2018-10-31--21:15:01          Wed, 2018-10-31 21:15:02 [49386980b5270554c6c92b8397809736dea5d07c7ccb3861187a6ed5065ba7a6]
pdi282-2018-11-18--21:15:01          Sun, 2018-11-18 21:15:02 [c2eb215ce883fa5a0800a9d4b9a6c53ac82ace48151180e6a15e944dbf65e009]
pdi282-2018-11-25--21:15:01          Sun, 2018-11-25 21:15:01 [e99c2f3baed4a863b08551605eb8ebeaa5ed6a02decccdb88268c89a9b9b9cc0]
pdi282-2018-11-30--21:15:01          Fri, 2018-11-30 21:15:01 [882f6466adcbc43d7e1a12df5f38ecc9b257a436143b00711aa37e16a4dbf54d]
pdi282-2018-12-02--21:15:02          Sun, 2018-12-02 21:15:02 [7436da61af62faf21ca3f6aeb38f536ec5f1a4241e2d17c9f67271c3ba76c188]
pdi282-2018-12-09--21:15:01          Sun, 2018-12-09 21:15:02 [82e6c845601c1a12266b0b675dfeaee44cd4ab6f33dafa981f901a3e84567bbb]
pdi282-2018-12-13--21:15:01          Thu, 2018-12-13 21:15:01 [9ac3dfd4aca2e56df8927c7bc676cd476ea249f4dd2c1c39fc2a4997e0ada896]
pdi282-2018-12-14--21:15:02          Fri, 2018-12-14 21:15:02 [c8c1358f58dae6eb28bd66e9b49c7cfe237720de21214ebd99cc4b4964ec9249]
pdi282-2018-12-15--21:15:01          Sat, 2018-12-15 21:15:01 [e24d3b26dcdf81d0b0899085fb992c7a7d33d16671fba7a2c9ef1215bd3ae8fb]
pdi282-2018-12-16--21:15:01          Sun, 2018-12-16 21:15:01 [27a8a6943f1053d106ced8d40848eccbfb6c145d80d5e2a9e92f891ed98778ce]
pdi282-2018-12-17--21:15:02          Mon, 2018-12-17 21:15:02 [14118ea958387e0a606e9f627182e521b92b4e2c2dd9fb5387660b84a08971a6]
pdi282-2018-12-18--21:15:01          Tue, 2018-12-18 21:15:01 [842c3f7e301de89944d8edf7483956aff2b7cf9e15b64b327f476464825bd250]
pdi282-2018-12-19--21:15:01          Wed, 2018-12-19 21:15:01 [b7f99c56a8e6ee14559b3eddec04646c8a756515765db562c35b8fbefcd4e58e]
pdi282-2018-12-20--15:15:01          Thu, 2018-12-20 15:15:01 [e832afd41762a69cb8c5fe1c14395dde313dc4368871fd27073fdc50e9f7c6c9]
pdi282-2018-12-20--16:15:01          Thu, 2018-12-20 16:15:01 [8471ccb87d513604d31320ff91c2e0aaf0d31e5ff908ff41b8653c55ee11c1e5]
pdi282-2018-12-20--17:15:01          Thu, 2018-12-20 17:15:01 [73a3ae72815a10732fc495317a7e0f8cd9d05eb2ea862f8c01b437138ac82103]
pdi282-2018-12-20--18:15:01          Thu, 2018-12-20 18:15:01 [7eced8e18b52d00300c8f1b17e188fbfc1124dc60adf68ef2924425677615a96]
pdi282-2018-12-20--19:15:01          Thu, 2018-12-20 19:15:01 [6b7dbc4095b704209921424a52ed37d854b3a61c49cc65ac6889d215aad95a6f]
pdi282-2018-12-20--20:15:01          Thu, 2018-12-20 20:15:01 [66da0f57d6c93b149a9fdf679acf5e43fc22ce6b582db4da3ab606df741bdf82]
pdi282-2018-12-20--21:15:01          Thu, 2018-12-20 21:15:01 [1fce9aa4751be905a45ccce7fca3d44be3cf580d5e4b7c4f5091167099df57ad]
pdi282-2018-12-21--07:15:01          Fri, 2018-12-21 07:15:02 [ee551653a18d400719f9ffe1a67787326f5d5dad41be7d7b5482d5610ed86d43]
pdi282-2018-12-21--08:15:01          Fri, 2018-12-21 08:15:01 [264d7ce1dab3bc1578b521a170ee944598fa99f894d6ca273793ad14824b1689]
pdi282-2018-12-21--09:15:01          Fri, 2018-12-21 09:15:01 [b37de3616438e83c7184af57080690db3a76de521e77fd1ae6e90262f6beb1cc]
pdi282-2018-12-21--10:15:01          Fri, 2018-12-21 10:15:01 [6862d0136b2e4ac7fc0544eb74c0085e7baceca7147bd59b13cd68cbf00cb089]
pdi282-2018-12-21--11:15:01          Fri, 2018-12-21 11:15:01 [e5c6ee4ea65d6dacb34badb850353da87f9d5c19bb42e4fb3b951efecd58e64f]
pdi282-2018-12-21--12:15:01          Fri, 2018-12-21 12:15:01 [5b93f864b9422ed953c1aabb5b1b98ce9ae04fe2f584c05e91b87213082e2ff0]
pdi282-2018-12-21--13:15:01          Fri, 2018-12-21 13:15:01 [461f976422c45a7d10d38d1db097abd30a4885181ec7ea2086d05f0afd9169eb]
pdi282-2018-12-21--14:15:01          Fri, 2018-12-21 14:15:01 [d31db1cd8223ca084cc367deb62e440bfe2dfe4fd163aefc6b6294935f1877b8]&lt;/pre&gt;
&lt;p&gt;Here's a screenshot of nemo running on my notebook with an sftp connection to my office desktop, after having mounted the available backups with the command given above.&lt;/p&gt;
&lt;img alt="../images/backup_list.png" class="align-center" src="https://cobra.pdes-net.org/images/backup_list.png"&gt;</description><category>backup</category><category>linux</category><guid>https://cobra.pdes-net.org/posts/a-simple-automated-backup-scheme.html</guid><pubDate>Fri, 21 Dec 2018 14:41:21 GMT</pubDate></item><item><title>The age of (digital) decline</title><link>https://cobra.pdes-net.org/posts/the-age-of-digital-decline.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;About a decade ago, AppleInsider presented &lt;a class="reference external" href="https://appleinsider.com/articles/10/01/29/apple_reinventing_file_access_wireless_sharing_for_ipad.html"&gt;an enthusiastic report&lt;/a&gt; on the latest innovation from the iPhone inventor:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Apple is dramatically rethinking how applications organize their documents on iPad, leaving behind the jumbled file system [...].&lt;/p&gt;
&lt;p&gt;Outside of savvy computer users, the idea of opening a file by searching through hierarchical paths in the file system is a bit of a mystery.&lt;/p&gt;
&lt;p&gt;Apple has already taken some steps to hide complexity in the file system in Mac OS X, [...] the iPhone similarly abstracts away the file system entirely; there is no concept of opening or saving files.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I remember reading that and being &lt;em&gt;very&lt;/em&gt; sceptical, perhaps as one of a few, &lt;a class="reference external" href="http://ipadinsight.com/ipad-basics/ipad-to-allow-for-easier-file-sharing-but-still-very-limited-file-system-access/"&gt;but not the only one&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Heck, my 6 year old daughter can understand the idea of saving some files to a folder with her name on it, and others to different locations.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a class="reference external" href="http://johnnyholland.org/2011/03/the-death-of-the-file-system/"&gt;Another lone voice in the digital wilderness&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;While this might sound like some kind of user experience utopia, I have a grave concern that eliminating a file system in this manner misses a huge audience. Us.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now, almost 10 years later, we begin to pay the price for this development. How's that? Well, my experience shows that users who grew up with iOS or Android as their prime computing environment have difficulties to grasp the basic paradigms that still dominate professional work with computers. In particular, only few young users seem to understand the concept of a &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Computer_file"&gt;file&lt;/a&gt; (yes, a file, but see above), &lt;a class="reference external" href="https://en.wikipedia.org/wiki/File_format"&gt;file types,&lt;/a&gt; and &lt;a class="reference external" href="https://en.wikipedia.org/wiki/File_system"&gt;file systems&lt;/a&gt;.  Even less understood is the &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Client%E2%80%93server_model"&gt;client-server model,&lt;/a&gt; a concept that is indispensable in a modern IT infrastructure.&lt;/p&gt;
&lt;p&gt;Consequences of this erosion of knowledge range from the comical to the disastrous. As an example for the former: when I ask for original data I do not mean ASCII data embedded in an MS Word document and a photo- or micrograph embedded in a Powerpoint presentation. However, many young users do not know that a 'data.dat' or a 'photograph.tiff' are valid file formats that can be viewed and edited by suitable applications. A secretary at an associated university had the opposite tendency: she wrote invitations for seminars with Word, printed them, scanned the printout with 1200 dpi, and attached the resulting 100 MB bitmap to electronic invitations sent by e-mail.&lt;/p&gt;
&lt;p&gt;That's funny if your e-mail account has no size limit. But even if, you may see that this development has also much less amusing consequences. On a very general level, these users are incapable to appropriately interact with professional IT infrastructures, including common desktop environments (regardless of their provenience). More specifically, users with these deficiencies should not be trusted with handling and managing important data at all. Because ... they will lose them.&lt;/p&gt;
&lt;p&gt;At least that's what's happening here: the number of users who experience a total loss of their data increased rapidly over the past few years. In most cases, the cause was not negligence and carelessness, but an alarming level of ignorance. Often, the root cause arose simply from bypassing the infrastructure we provide, and employing the private notebook for data analysis and presentation instead of the dedicated office desktop. Now, our employees &lt;em&gt;can&lt;/em&gt; bring their own devices if they like, but if they don't register them with our IT staff, they will be classified as guest devices that have no access to our intranet – with the rather obvious result that the data on these devices cannot be synced to the home directory of the respective user on our file server (which is part of a daily incremental backup on tape, covering every day over the last 10 years as legally required).&lt;/p&gt;
&lt;p&gt;The users, naturally, don't find that obvious at all (although they have been informed at length about these facts). They claim to have acted in the firm believe that the data on their private notebook will be automatically backed up to “the cloud” as soon as they enter a certain “zone” around their working place. When I asked how they imagined this miracle backup would work, one of them referred to Apple commercials in which photographs were transferred from an iPhone to an iPad “magically”. “That's the state-of-the-art, right? I expected that it would be implemented here!” She also said that she imagined the mechanism to work wirelessly, but that she wouldn't care how it worked, as long as it did.&lt;/p&gt;
&lt;p&gt;Now, when people approach me with these stories, they want (i) forgiveness and understanding and (ii) an immediate solution. Well...&lt;/p&gt;
&lt;img alt="../images/mccoy-doctor-not-magician.svg" class="align-center" src="https://cobra.pdes-net.org/images/mccoy-doctor-not-magician.svg" style="width: 500px;"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Fortunately, we now have first level support consisting of an invariably cheery youth who finds these problems most entertaining. Let's see what he says in a few years from now, when pampering the “digital natives” has become the next big thing.&lt;/p&gt;
&lt;p&gt;And let's see where we are then, with our big hopes and high flying dreams of, for example, artificial intelligence and quantum computing, autonomous electric mobility, populating the Mars, establishing controlled fusion on Earth, and controlling the world's climate. Personally, when I see the present generation of which the majority has difficulties to count to three, well, you know, I'm not all that optimistic. 😉&lt;/p&gt;</description><category>backup</category><category>thoughts</category><guid>https://cobra.pdes-net.org/posts/the-age-of-digital-decline.html</guid><pubDate>Mon, 17 Dec 2018 20:09:08 GMT</pubDate></item><item><title>This backup is futile</title><link>https://cobra.pdes-net.org/posts/this-backup-is-futile.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;A couple of month ago, I noticed that I could not mount the filesystem created by attic, t&lt;a href="http://pdes-net.org/cobra/posts/attic.html"&gt;he program I was using to backup my data&lt;/a&gt;. A temporary inconvenience, I thought. Will certainly be fixed in a matter of days, I reasoned. But the situation was unchanged after two weeks, and to my great dismay, I found that I was also unable to extract single files from the backups. Attic was thus dutifully doing its hourly job, but I could have equally well directed all of them to /dev/null. &lt;/p&gt;
&lt;p&gt;When searching for the issue, I discovered &lt;a href="https://github.com/jborg/attic/issues/217"&gt;this thread&lt;/a&gt;. Attic was not yet completely broken at that time, but the stance of its developer is still remarkable: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Attic is my "feel good" pet project that I want to be able to code on whenever I happen to get some spare time. And when I have as little spare time as I currently have, I really do not want to spend it all on reviewing, merging, debugging and rewriting other peoples code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Why on earth did he ever put his “pet project” on github then? &lt;/p&gt;
&lt;p&gt;Since the community was interested, the project was &lt;a href="https://borgbackup.readthedocs.io/en/stable/"&gt;forked&lt;/a&gt;. I switched to the fork and never looked back.&lt;/p&gt;
&lt;p&gt;If you have an existing attic backup, all you have to do is to upgrade it by issuing&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;borg upgrade -v /path/to/repository
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;and to replace 'attic' by 'borg' in all backup scripts you may have. There is one major difference, though: if you want compression, you have to explicitly enable it, since borg allows you to chose the compression algorithm as well as the compression level. &lt;/p&gt;
&lt;p&gt;As an example, here's the shell script I use to backup deepgreen (my Fujitsu Lifebook) to the big disk in my desktop (blackvelvet) via wifi:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-1"&gt;&lt;code data-line-number=" 1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-2"&gt;&lt;code data-line-number=" 2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-3"&gt;&lt;code data-line-number=" 3"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="c1"&gt;#&amp;lt;https://github.com/borgbackup/borg&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-4"&gt;&lt;code data-line-number=" 4"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="c1"&gt;#&amp;lt;https://borgbackup.readthedocs.io/en/stable/index.html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-5"&gt;&lt;code data-line-number=" 5"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-6"&gt;&lt;code data-line-number=" 6"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;ionice&lt;span class="w"&gt; &lt;/span&gt;-c3&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="nv"&gt;$$&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-7"&gt;&lt;code data-line-number=" 7"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-8"&gt;&lt;code data-line-number=" 8"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;repository&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"cobra@blackvelvet:/bam/backup/attic/deepgreen"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# directory backing up to&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-9"&gt;&lt;code data-line-number=" 9"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;excludelist&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/home/cobra/bin/exclude_from_attic.txt"&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-10"&gt;&lt;code data-line-number="10"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;hostname&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$HOSTNAME&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-11"&gt;&lt;code data-line-number="11"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-12"&gt;&lt;code data-line-number="12"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;notify-send&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Starting backup"&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-13"&gt;&lt;code data-line-number="13"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-14"&gt;&lt;code data-line-number="14"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;borg&lt;span class="w"&gt; &lt;/span&gt;create&lt;span class="w"&gt; &lt;/span&gt;--info&lt;span class="w"&gt; &lt;/span&gt;--stats&lt;span class="w"&gt; &lt;/span&gt;--compression&lt;span class="w"&gt; &lt;/span&gt;lz4&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-15"&gt;&lt;code data-line-number="15"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nv"&gt;$repository&lt;/span&gt;::&lt;span class="nv"&gt;$hostname&lt;/span&gt;-&lt;span class="sb"&gt;`&lt;/span&gt;date&lt;span class="w"&gt; &lt;/span&gt;+%Y-%m-%d--%H:%M:%S&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-16"&gt;&lt;code data-line-number="16"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;/home/cobra&lt;span class="w"&gt;                                               &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-17"&gt;&lt;code data-line-number="17"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;--exclude-from&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$excludelist&lt;/span&gt;&lt;span class="w"&gt;                               &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-18"&gt;&lt;code data-line-number="18"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;--exclude-caches
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-19"&gt;&lt;code data-line-number="19"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-20"&gt;&lt;code data-line-number="20"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;notify-send&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Backup complete"&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-21"&gt;&lt;code data-line-number="21"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-22"&gt;&lt;code data-line-number="22"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;borg&lt;span class="w"&gt; &lt;/span&gt;prune&lt;span class="w"&gt; &lt;/span&gt;--info&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$repository&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--keep-within&lt;span class="o"&gt;=&lt;/span&gt;1d&lt;span class="w"&gt; &lt;/span&gt;--keep-daily&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;7&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--keep-weekly&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--keep-monthly&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-23"&gt;&lt;code data-line-number="23"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/this-backup-is-futile.html#-24"&gt;&lt;code data-line-number="24"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;borg&lt;span class="w"&gt; &lt;/span&gt;list&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$repository&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description><category>backup</category><category>linux</category><guid>https://cobra.pdes-net.org/posts/this-backup-is-futile.html</guid><pubDate>Sun, 29 May 2016 14:10:42 GMT</pubDate></item><item><title>Back up the NAS</title><link>https://cobra.pdes-net.org/posts/back-up-the-nas.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;Two weeks ago, my NAS suddenly emitted a high-pitched, enervating sound, and the indicator of one of the hard disk trays blinked nervously. The info line in the display screamed 'hard disk failure, RAID degraded', my wife's face was frozen in terror, the cats stared at me with eyes as big as saucers, and I was close to a heart attack. What prevented the disaster was my sudden realization that I had made a backup copy just a week ago...&lt;/p&gt;
&lt;p&gt;In any case, since I've set up a RAID 5 for the four disks in my NAS, nothing was lost yet. And I actually wanted to upgrade the disks for quite some time, since their total capacity of somewhat less than 6 TB was close to be exhausted. Hence, I ordered four 3 TB NAS disks right away, but kept brooding over the question how to create backup copies when the capacity would be close to 9 TB. Should I really invest in a second NAS? Naa: I really don't need another always-on device in my flat.&lt;/p&gt;
&lt;p&gt;The solution was so simple. With three 2 TB disks freed from the NAS, two 1 TB disks just lying around, and 6 TB in three USB hard disks, there's already more than enough disk space to back up the NAS. And the orphan SATA disks can be utilized by simply employing a &lt;a href="https://www.alternate.de/Hardware-Komponenten-Festplatten-Zubeh%C3%B6r-Dockingstation/html/listings/1012?listingTitle=Festplatten+Dockingstation&amp;amp;tk=7&amp;amp;lk=8310&amp;amp;sort=RATING&amp;amp;order=DESC#listingResult"&gt;docking station&lt;/a&gt;! Yes, it's that easy.&lt;/p&gt;
&lt;p&gt;I've acquired &lt;a href="http://www.alternate.de/Sharkoon/QuickPort-XT-HC-Dockingstation/html/product/1180116?tk=7&amp;amp;lk=8310"&gt;this one&lt;/a&gt; and, just for he fun of it, partioned and formatted three of the orphan disks. Copying data from the NAS (mounted via cifs over a GB switch) worked flawlessly. &lt;/p&gt;
&lt;p&gt;When the new disks arrived, I exchanged one by one, as one does for a RAID. It always took a few hours to rebuild the system, so I simply waited from one night to the other. Finally, it just took 10 min to expand the RAID to the larger disk size. The almost 9 TB should suffice for some time. 😊&lt;/p&gt;</description><category>backup</category><guid>https://cobra.pdes-net.org/posts/back-up-the-nas.html</guid><pubDate>Sat, 31 Oct 2015 13:23:54 GMT</pubDate></item><item><title>Pinheads</title><link>https://cobra.pdes-net.org/posts/pinheads.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;I've been using cloud-based storage services to synchronize files between my different machines &lt;a href="http://pdes-net.org/cobra/posts/cloudy.html"&gt;since years&lt;/a&gt;. Recently, I've synchronized active projects via the ownCloud server we've set up at the office. For private purposes, such as sharing cat photos with the family, I've used &lt;a href="http://pdes-net.org/cobra/posts/sync-backup-and-share.html"&gt;Wuala&lt;/a&gt; since it offered ample space for this purpose for free, featured client-side encryption, and used servers located in the EU.&lt;/p&gt;
&lt;p&gt;In June 2014, Wuala announced a new pricing plan which included a termination of the free storage offer they had previously. However, the original press release also included the statement "Remaining customers will keep their free storage." All right.&lt;/p&gt;
&lt;p&gt;This morning, I was thus mildly surprised to receive an e-mail from Wuala stating that I've exceeded my "available Wuala storage space". Starting the client told me that my "available Wuala storage space" is 0 bytes, which I've indeed exceeded. What happened? &lt;/p&gt;
&lt;p&gt;It turned out that Wuala didn't keep their promise and didn't communicate their business moves properly. As documented by Caschy, Wuala &lt;a href="http://stadt-bremerhaven.de/cloud-wuala-versprechen-kunden/"&gt;changed the original press release&lt;/a&gt; in October 2014. I haven't received any mail regarding this change. &lt;/p&gt;
&lt;p&gt;Instead, they now inform me "that we reserve the right to delete your account if you don't upgrade or delete files within the next 30 days."&lt;/p&gt;
&lt;p&gt;And then: "We're sure that you will continue to enjoy the benefits of Wuala, the secure Cloud Storage."&lt;/p&gt;
&lt;p&gt;&lt;a href="https://spideroak.com/"&gt;Sure&lt;/a&gt;. &lt;a href="https://drive.bitcasa.com/"&gt;:D&lt;/a&gt;&lt;/p&gt;</description><category>backup</category><category>encryption</category><category>thoughts</category><category>web</category><guid>https://cobra.pdes-net.org/posts/pinheads.html</guid><pubDate>Thu, 01 Jan 2015 13:35:22 GMT</pubDate></item><item><title>Close call</title><link>https://cobra.pdes-net.org/posts/close-call.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;If you're using &lt;a href="https://cobra.pdes-net.org/posts/butter-bei-die-fische.html" title="btrfs and its snapshot function"&gt;btrfs and its snapshot function&lt;/a&gt;: stay away from kernel 3.17! &lt;a href="https://www.google.de/?gfe_rd=cr&amp;amp;ei=TCxKVPihOeaH8QehxIDQBw#q=btrfs+corruption+3.17" title="It may corrupt your filesystem"&gt;It may corrupt your filesystem&lt;/a&gt;. I've just spent the better part of the morning trying to coax my desktop into getting back to its normal self.&lt;/p&gt;
&lt;p&gt;After updating to 3.17 and editing syslinux.cfg to &lt;a href="https://www.archlinux.org/news/changes-to-intel-microcodeupdates/" title="take care of the now manual microcode updates"&gt;take care of the now manual microcode updates&lt;/a&gt;, I've noticed the following anomalies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KDE needed several minutes to start, just as every KDE application afterwards&lt;/li&gt;
&lt;li&gt;System load was high (up to 5) despite the fact that the system was essentially idling (no CPU or I/O activities)&lt;/li&gt;
&lt;li&gt;the btrfs formatted system partition switched to RO mode after a few minutes of use. WTF?&lt;/li&gt;
&lt;li&gt;after a further reboot with the microcode updates disabled, avahi didn't come up and journald dumped one core after the other (105, to be precise).&lt;/li&gt;
&lt;li&gt;oh, and there was no network at this point 😒&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After rolling back to kernel 3.16.4, reinstalling systemd, and purging all (corrupted) journal files in /var/log/journal, the worst seems to be over.&lt;/p&gt;
&lt;p&gt;Note that this bug is not restricted to users of Archlinux, but was reported by users of Fedora 20, Debian Sid, Gentoo, and OpenSUSE Tumbleweed.&lt;/p&gt;</description><category>archlinux</category><category>backup</category><category>debian</category><category>linux</category><category>suse</category><guid>https://cobra.pdes-net.org/posts/close-call.html</guid><pubDate>Fri, 24 Oct 2014 12:36:24 GMT</pubDate></item><item><title>Attic</title><link>https://cobra.pdes-net.org/posts/attic.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;&lt;a href="https://attic-backup.org/" title="Attic"&gt;Attic&lt;/a&gt; is the candidate in this &lt;a href="https://cobra.pdes-net.org/posts/better-backup.html" title="backup programs"&gt;list of backup programs&lt;/a&gt; which managed to convince me entirely. It has a lot in common with the one I've written about below, i.e., &lt;a href="https://cobra.pdes-net.org/posts/obnam.html" title="Obnam"&gt;Obnam&lt;/a&gt;: it is written in python and offers very similar features, namely, snapshot backups, data de-duplication across files and backup generations, and optional AES (instead of GPG) encryption. It's available for Debian (Jessie and Sid) and Archlinux, and for all others (including Debian Wheezy and Fedora) you can use use 'pip install attic' instead.&lt;/p&gt;
&lt;p&gt;Attic doesn't have a separate configuration file. The following bash script handles everything:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-1"&gt;&lt;code data-line-number=" 1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-2"&gt;&lt;code data-line-number=" 2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-3"&gt;&lt;code data-line-number=" 3"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="c1"&gt;#https://attic-backup.org/quickstart.html#quickstart&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-4"&gt;&lt;code data-line-number=" 4"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="c1"&gt;#http://peterjolson.com/full-system-backup-using-attic-backup-to-nfs/&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-5"&gt;&lt;code data-line-number=" 5"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-6"&gt;&lt;code data-line-number=" 6"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;ionice&lt;span class="w"&gt; &lt;/span&gt;-c3&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="nv"&gt;$$&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-7"&gt;&lt;code data-line-number=" 7"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-8"&gt;&lt;code data-line-number=" 8"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;repository&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"cobra@blackvelvet:/bam/backup/attic/deepgreen"&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-9"&gt;&lt;code data-line-number=" 9"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;excludelist&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/home/cobra/bin/exclude_from_attic.txt"&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-10"&gt;&lt;code data-line-number="10"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;hostname&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$HOSTNAME&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-11"&gt;&lt;code data-line-number="11"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-12"&gt;&lt;code data-line-number="12"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;notify-send&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Starting backup"&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-13"&gt;&lt;code data-line-number="13"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-14"&gt;&lt;code data-line-number="14"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;attic&lt;span class="w"&gt; &lt;/span&gt;create&lt;span class="w"&gt; &lt;/span&gt;--stats&lt;span class="w"&gt;                                  &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-15"&gt;&lt;code data-line-number="15"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;$repository&lt;/span&gt;::&lt;span class="nv"&gt;$hostname&lt;/span&gt;-&lt;span class="sb"&gt;`&lt;/span&gt;date&lt;span class="w"&gt; &lt;/span&gt;+%Y-%m-%d--%H:%M:%S&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-16"&gt;&lt;code data-line-number="16"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;/home/cobra&lt;span class="w"&gt;                                         &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-17"&gt;&lt;code data-line-number="17"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;--exclude-from&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$excludelist&lt;/span&gt;&lt;span class="w"&gt;                         &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-18"&gt;&lt;code data-line-number="18"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;--exclude-caches
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-19"&gt;&lt;code data-line-number="19"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-20"&gt;&lt;code data-line-number="20"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;notify-send&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Backup complete"&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-21"&gt;&lt;code data-line-number="21"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/attic.html#-22"&gt;&lt;code data-line-number="22"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;attic&lt;span class="w"&gt; &lt;/span&gt;prune&lt;span class="w"&gt; &lt;/span&gt;-v&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$repository&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--keep-within&lt;span class="o"&gt;=&lt;/span&gt;1d&lt;span class="w"&gt; &lt;/span&gt;--keep-daily&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;7&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--keep-weekly&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--keep-monthly&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Attic is a little more verbose than Obnam in its reports:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="n"&gt;Date&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Thu&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;0200&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CEST&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;From&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"(Cron Daemon)"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cobra&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;localdomain&lt;/span&gt;
&lt;span class="n"&gt;To&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cobra&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;localdomain&lt;/span&gt;
&lt;span class="n"&gt;Subject&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Cron"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cobra&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sr"&gt;/home/cobra/bin/&lt;/span&gt;&lt;span class="n"&gt;backup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;attic&lt;/span&gt;

&lt;span class="n"&gt;Archive&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;04&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;04&lt;/span&gt;
&lt;span class="n"&gt;Archive&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;fingerprint&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;e20c50dbdf43f9d31ee138338aab929ae78d82e4564bf6f05f55edd439a73e35&lt;/span&gt;
&lt;span class="n"&gt;Start&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Thu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;04&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;End&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Thu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Duration&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;27.40&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;seconds&lt;/span&gt;
&lt;span class="n"&gt;Number&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;files&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;166064&lt;/span&gt;

&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="n"&gt;Original&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;Compressed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;Deduplicated&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;
&lt;span class="n"&gt;This&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;               &lt;/span&gt;&lt;span class="mf"&gt;41.71&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GB&lt;/span&gt;&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="mf"&gt;30.56&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GB&lt;/span&gt;&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="mf"&gt;21.05&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MB&lt;/span&gt;
&lt;span class="n"&gt;All&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archives&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="mf"&gt;995.98&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GB&lt;/span&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="mf"&gt;732.81&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GB&lt;/span&gt;&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="mf"&gt;26.54&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GB&lt;/span&gt;
&lt;span class="o"&gt;------------------------------------------------------------------------------&lt;/span&gt;
&lt;span class="n"&gt;Keeping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;04&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Thu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;29&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Keeping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;04&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;08&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Thu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;08&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Keeping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;04&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;07&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Thu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;07&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;33&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Keeping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Keeping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;29&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Keeping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;29&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Keeping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;27&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Keeping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;08&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Sun&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Aug&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Keeping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;08&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Sat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Aug&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;27&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Keeping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;08&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;29&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;07&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;53&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;53&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Fri&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Aug&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;29&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;07&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;54&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Keeping&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;08&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;53&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Thu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Aug&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Pruning&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Pruning&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Pruning&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;26&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Pruning&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Pruning&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;26&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Pruning&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Pruning&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;span class="n"&gt;Pruning&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="n"&gt;Wed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Sep&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;26&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;I've decided to use Attic instead of Obnam for one main reason: speed. On the mini, the slowest member of my computing batallion, 15000 files occupying 4.7 GB take 17 s to backup for Attic, but 95 s for Obnam. On blackvelvet, the fastest by far, 165000 files occupying 42 GB take 25 s instead of 70 s.&lt;/p&gt;
&lt;p&gt;What are the most important factors determining Attic's performance? Well, it depends. If you backup to a remote location, your upload speed may ultimately limit the overall speed. If that's not the case, since you're in a GBit LAN or backup to an internal hard disk, it still depends. If a lot of files have to be accounted for, the critical factor is the I/O performance of the mass storage device you're using. In the opposite case, Attic puts a 100% load on one core of your CPU independent of its performance class. Attic is thus utilizing the available resources quite nicely. Consequently, the performance of Attic can be roughly scaled with the file number for machines with comparable performance. For example, my lifebook here at home has 16000 files spread over 3.3 GB, and it takes Attic a mere 6 s for a snapshot. My office computer has essentially the same disk and cpu performance (Core 2 Duo class CPU, 320 GB HD), but more data: 255000 files (x15) spread over 67 GB (x20) taking 90 s (x15).&lt;/p&gt;
&lt;p&gt;Three more remarks:&lt;/p&gt;
&lt;p&gt;Attic's deduplication and compression schemes are apparently more efficient than those of Obnam, since the total size of the repository with a similar number of snapshots is significantly smaller. Those obtained by rsnaphot or rdiff-backup are anyway much larger since these tools do not compress the data.&lt;/p&gt;
&lt;p&gt;A backup to a remote location is accelerated if Attic is installed on both, client and server. However, you can still backup to an atticless server using sshfs (with a small performance hit).&lt;/p&gt;
&lt;p&gt;Finally, you can restore your data in the same way as with Obnam, namely, by mounting the repository:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="n"&gt;attic&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mount&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cobra&lt;/span&gt;&lt;span class="nv"&gt;@blackvelvet&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bam&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;backup&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;attic&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;deepgreen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;cobra&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;attic_mnt&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Nice.&lt;/p&gt;</description><category>backup</category><category>linux</category><guid>https://cobra.pdes-net.org/posts/attic.html</guid><pubDate>Sun, 07 Sep 2014 14:25:06 GMT</pubDate></item><item><title>Obnam</title><link>https://cobra.pdes-net.org/posts/obnam.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;&lt;a href="http://obnam.org/" title="Obnam"&gt;Obnam&lt;/a&gt; is one of the two backup programs &lt;a href="https://cobra.pdes-net.org/posts/better-backup.html" title="Obnam"&gt;in my list&lt;/a&gt; which I highly recommend. It offers snapshot backups (in the spirit of &lt;a href="https://cobra.pdes-net.org/posts/butter-bei-die-fische.html" title="btrfs"&gt;btrfs&lt;/a&gt; snapshot subvolumes), data de-duplication across files and backup generations, and optional GnuPG encryption. Archers can get it on the AUR, and Debilians may obtain the current version from the &lt;a href="http://obnam.org/download/" title="developer's repository."&gt;developer's repository.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Obnam is ridiculously easy to configure and use:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="k"&gt;[config]&lt;/span&gt;

&lt;span class="na"&gt;repository&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;sftp://blackvelvet/bam/backup/nb_snapshot/deepgreen/&lt;/span&gt;

&lt;span class="na"&gt;keep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;7d,4w&lt;/span&gt;

&lt;span class="na"&gt;lru-size&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;1024&lt;/span&gt;
&lt;span class="na"&gt;upload-queue-size&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;512&lt;/span&gt;

&lt;span class="na"&gt;log&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;/home/cobra/.obnam/logs/default.log&lt;/span&gt;
&lt;span class="na"&gt;log-level&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;warning&lt;/span&gt;
&lt;span class="na"&gt;log-max&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;10mb&lt;/span&gt;
&lt;span class="na"&gt;log-keep&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;10&lt;/span&gt;
&lt;span class="na"&gt;log-mode&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;0600&lt;/span&gt;

&lt;span class="na"&gt;exclude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;\.cache$, \.thumbnails$, \.tmp$, /cache/, /Downloads/, /temp/, /Trash/, /VirtualBox VMs/, /wuala/&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Save this file as ~/.config/obnam/default.conf, for example, modify it to your needs, and execute obnam either directly&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;obnam --verbose backup $HOME
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;or via a &lt;a href="http://bastian.rieck.ru/blog/posts/2013/backups_with_obnam/" title="small shell script"&gt;small shell script&lt;/a&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-1"&gt;&lt;code data-line-number=" 1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-2"&gt;&lt;code data-line-number=" 2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-3"&gt;&lt;code data-line-number=" 3"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;notify-send&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Backup started, please be patient..."&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-4"&gt;&lt;code data-line-number=" 4"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-5"&gt;&lt;code data-line-number=" 5"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;obnam&lt;span class="w"&gt; &lt;/span&gt;backup&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-6"&gt;&lt;code data-line-number=" 6"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-7"&gt;&lt;code data-line-number=" 7"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$?&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-ne&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-8"&gt;&lt;code data-line-number=" 8"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;notify-send&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Unable to complete backup."&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-9"&gt;&lt;code data-line-number=" 9"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-10"&gt;&lt;code data-line-number="10"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-11"&gt;&lt;code data-line-number="11"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;notify-send&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Backup successfully completed."&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/obnam.html#-12"&gt;&lt;code data-line-number="12"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;On my notebooks, I run this script manually, but on my desktops, I've added an entry to my crontab:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mf"&gt;7&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;23&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;cobra&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;backup&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="n"&gt;obnam&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The cron daemon sends a mail to report what has happened:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="n"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Fri&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;29&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Aug&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2014&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;0200&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CEST&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;From&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"(Cron Daemon)"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cobra&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;localdomain&lt;/span&gt;
&lt;span class="n"&gt;To&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cobra&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;localdomain&lt;/span&gt;
&lt;span class="n"&gt;Subject&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Cron"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cobra&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;blackvelvet&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;cobra&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;backup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;obnam&lt;/span&gt;

&lt;span class="n"&gt;Backed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;up&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;77&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;files&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;187140&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;found&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;uploaded&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;63.0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MiB&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;m9s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;at&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;934.9&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;KiB&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;average&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;speed&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;That's a snapshot of my desktop with a total backup volume of 42 GB. Without the two lines in the config customizing the &lt;a href="http://listmaster.pepperfish.net/pipermail/obnam-support-obnam.org/2014-June/003086.html" title="lru- and upload-queue sizes,"&gt;lru- and upload-queue sizes,&lt;/a&gt; a snapshot takes about 10 min, i.e., nine times longer. This mediocre performance with the default settings is certainly one of the reasons for the numerous reports of obnam being nice but &lt;a href="http://blog.karssen.org/2013/01/04/comparing-rsnapshot-and-obnam-for-scheduled-large-backups/" title="slow"&gt;slow&lt;/a&gt;. The speedup obtained by changing these settings, however, depends on your hardware: on the &lt;a href="https://cobra.pdes-net.org/posts/turbo.html" title="Mini"&gt;Mini&lt;/a&gt;, obnam is CPU limited, and it takes 90 s for one snapshot (of 5 GB size) no matter what the lru- and upload-queue sizes.&lt;/p&gt;
&lt;p&gt;Restoring data is as easy as creating the backup. You can simply mount the backup, like that:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;obnam mount --to /bam/obnam_mnt/
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;and access the resulting read-only filesystem with anything you like. Nice.&lt;/p&gt;</description><category>backup</category><category>linux</category><guid>https://cobra.pdes-net.org/posts/obnam.html</guid><pubDate>Sun, 31 Aug 2014 13:35:20 GMT</pubDate></item><item><title>Better backup</title><link>https://cobra.pdes-net.org/posts/better-backup.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;There's no such thing as too many backups. An example.&lt;/p&gt;
&lt;p&gt;A guy I know (lets call him user C) amused himself by playing with an incremental backup scheme based entirely on &lt;a href="https://www.gnu.org/savannah-checkouts/gnu/tar/manual/html_node/Incremental-Dumps.html" title="tar:"&gt;tar:&lt;/a&gt;&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-1"&gt;&lt;code data-line-number=" 1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-2"&gt;&lt;code data-line-number=" 2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Based on ideas of Alessandro "AkiRoss" Re&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-3"&gt;&lt;code data-line-number=" 3"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="c1"&gt;#http://blog.ale-re.net/2011/06/incremental-backups-with-gnu-tar-cron.html&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-4"&gt;&lt;code data-line-number=" 4"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-5"&gt;&lt;code data-line-number=" 5"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;MONTH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date&lt;span class="w"&gt; &lt;/span&gt;+%Y%m&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-6"&gt;&lt;code data-line-number=" 6"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;DAY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date&lt;span class="w"&gt; &lt;/span&gt;+%Y%m%d&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-7"&gt;&lt;code data-line-number=" 7"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;BCKDIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/bam/backup
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-8"&gt;&lt;code data-line-number=" 8"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;ARCDIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/bam/backup/archives
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-9"&gt;&lt;code data-line-number=" 9"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;SRCDIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/bam/backup/snapshots/deepgreen
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-10"&gt;&lt;code data-line-number="10"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-11"&gt;&lt;code data-line-number="11"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;TARGETFILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$ARCDIR&lt;/span&gt;&lt;span class="s2"&gt;/nb_snapshot_&lt;/span&gt;&lt;span class="nv"&gt;$DAY&lt;/span&gt;&lt;span class="s2"&gt;.tar.zz"&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-12"&gt;&lt;code data-line-number="12"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;LOGFILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$ARCDIR&lt;/span&gt;&lt;span class="s2"&gt;/nb_snapshot_&lt;/span&gt;&lt;span class="nv"&gt;$MONTH&lt;/span&gt;&lt;span class="s2"&gt;.snar"&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-13"&gt;&lt;code data-line-number="13"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="nv"&gt;EXCLUDEFILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$BCKDIR&lt;/span&gt;&lt;span class="s2"&gt;/nb_socketlist"&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-14"&gt;&lt;code data-line-number="14"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-15"&gt;&lt;code data-line-number="15"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;tar&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;-X&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$EXCLUDEFILE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-g&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$LOGFILE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$SRCDIR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;pigz&lt;span class="w"&gt; &lt;/span&gt;--fast&lt;span class="w"&gt; &lt;/span&gt;--rsyncable&lt;span class="w"&gt; &lt;/span&gt;--zlib&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$TARGETFILE&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;The script worked well, and the backups kept piling up. User C realized that he needed a mechanism to restrict the time span over which backups are kept, and he thus added the following line to the end of the script to implement this mechanism:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="nx"&gt;find&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nx"&gt;ARCDIR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;!&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;newermt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"1 month ago"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;print0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;xargs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;f&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Well, actually ... the line user C really used was ... hmmm ... &lt;em&gt;slightly&lt;/em&gt; different. Instead of referring to' $ARCDIR', he addressed '.'.&lt;/p&gt;
&lt;p&gt;Ooops.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;User C is of course my own dumb self. But dumb or not, my backup concept has worked: I had a backup taken minutes before the unintentional purge of my entire home directory, and was able to resume normal operation within the hour. This hourly incremental backup resides on an internal disk different from the one holding my system and home partitions, and is synchronized every night with my NAS.&lt;/p&gt;
&lt;p&gt;Now, let's get technical. How do I ensure that I have a backup when I need it?&lt;/p&gt;
&lt;p&gt;That's really very simple: I use software which makes the task to create backups and to restore them as foolproof as possible. And that means:&lt;/p&gt;
&lt;p&gt;(i) The backup software is command-line oriented and thus fits seamlessly into a cron- and script-based infrastructure, making automation of the whole process a breeze.&lt;br&gt;
 (ii) The backup software's configuration is script-based and thus transparent and straightforward to revise, keep, and document.&lt;/p&gt;
&lt;p&gt;For several years now, &lt;a href="https://cobra.pdes-net.org/posts/backup-again.html" title="I've used"&gt;I've used&lt;/a&gt; &lt;a href="http://www.rsnapshot.org/" title="rsnapshot"&gt;rsnapshot&lt;/a&gt; at home and &lt;a href="http://www.nongnu.org/rdiff-backup/" title="rdiff-backup"&gt;rdiff-backup&lt;/a&gt; at the office. To save the home directories of my notebooks, I transfered them to my desktop using plain rsync. The above tar script then created an incremental backup also for these directories. That's a very heterogeneous and altogether outdated solution, and although it has served me well for years, I've recently decided to give my backup scheme a complete overhaul. In particular, I wanted one solution covering all my use cases. To my delight, I've discovered that a number of new backup programs for Linux are actively developed at present, some of which boast features such as global deduplication, efficient compression, and optional GPG encryption.&lt;/p&gt;
&lt;p&gt;Here's a (certainly incomplete) list of contenders I will examine in the near future:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://attic-backup.org/" title="attic"&gt;attic&lt;/a&gt;&lt;br&gt;
&lt;a href="http://stromberg.dnsalias.org/~strombrg/backshift/" title="backshift"&gt;backshift&lt;/a&gt;&lt;br&gt;
&lt;a href="http://burp.grke.org/" title="burp"&gt;burp&lt;/a&gt;&lt;br&gt;
&lt;a href="http://www.hashbackup.com/home" title="hashbackup"&gt;hashbackup&lt;/a&gt;&lt;br&gt;
&lt;a href="http://obnam.org/" title="obnam"&gt;obnam&lt;/a&gt;&lt;br&gt;
&lt;a href="http://zbackup.org/" title="zbackup"&gt;zbackup&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In any case, when the day ends, and all hourly backups have been done, I sync them to the NAS:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-1"&gt;&lt;code data-line-number="1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-2"&gt;&lt;code data-line-number="2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://cobra.pdes-net.org/posts/better-backup.html#-3"&gt;&lt;code data-line-number="3"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;rsync&lt;span class="w"&gt; &lt;/span&gt;-az&lt;span class="w"&gt; &lt;/span&gt;/bam/backup/&lt;span class="w"&gt; &lt;/span&gt;cobra@thecus::snapshot_blackvelvet
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;I know, I know: if the house burns down, I'm going to lose this replica of my backup as well. Gimme a 100 Mbit/s upload. Then we'll talk.&lt;/p&gt;</description><category>backup</category><category>linux</category><guid>https://cobra.pdes-net.org/posts/better-backup.html</guid><pubDate>Sun, 24 Aug 2014 15:50:42 GMT</pubDate></item></channel></rss>