<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://things.bleu255.com/runyourown/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gnd</id>
	<title>Run Your Own - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://things.bleu255.com/runyourown/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gnd"/>
	<link rel="alternate" type="text/html" href="https://things.bleu255.com/runyourown/Special:Contributions/Gnd"/>
	<updated>2026-04-29T10:33:59Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=461</id>
		<title>Off-site Backup with Borg</title>
		<link rel="alternate" type="text/html" href="https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=461"/>
		<updated>2020-04-06T10:47:25Z</updated>

		<summary type="html">&lt;p&gt;Gnd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A quick&amp;amp;dirty run-down how to use Borg for daily offsite backups (non-sql). &lt;br /&gt;
&lt;br /&gt;
=== Situation ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;local&#039;&#039;&#039; is the machine that needs to be backed up, &#039;&#039;&#039;HOST&#039;&#039;&#039; is the machine where backups will be stored. &lt;br /&gt;
&lt;br /&gt;
* HOST - remote storage for backups&lt;br /&gt;
* USER - remote user&lt;br /&gt;
* DIRECTORY - remote directory containing backups&lt;br /&gt;
&lt;br /&gt;
=== Setup ===&lt;br /&gt;
&lt;br /&gt;
We assume Borg is installed on HOST already. &lt;br /&gt;
&lt;br /&gt;
* setup USER @ HOST (on local: ssh-keygen -t ed25519 -b 320, on HOST: useradd USER, add key to authorized_keys, etc etc)&lt;br /&gt;
* create DIRECTORY at HOST and make it writable by USER&lt;br /&gt;
* on local: compile borg like: https://borgbackup.readthedocs.io/en/stable/installation.html#git-installation&lt;br /&gt;
* the above needs some additional packages but u&#039;ll figure that out&lt;br /&gt;
* on local: enter borg env like &amp;lt;pre&amp;gt;source /root/src/borg-env/bin/activate&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: init repository like &amp;lt;pre&amp;gt;borg init --encryption=keyfile-blake2 USER@HOST:DIRECTORY (provide passphrase)&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: export key like: &amp;lt;pre&amp;gt;borg key export USER@HOST:DIRECTORY borg.key&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: hide key in a safe place &amp;amp; remember passphrase &amp;amp; shred borg.key&lt;br /&gt;
* on local: install sendemail for mail reporting: &amp;lt;pre&amp;gt;apt-get install sendemail&amp;lt;/pre&amp;gt;&lt;br /&gt;
* modify &amp;amp; use the script below (eg. by adding it into crontab)&lt;br /&gt;
&lt;br /&gt;
=== Script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Borg automated backups&lt;br /&gt;
# Based on: https://borgbackup.readthedocs.io/en/stable/quickstart.html#automating-backups&lt;br /&gt;
# .. but not so fancy, lel&lt;br /&gt;
#&lt;br /&gt;
# This will backup to HOST into DIRECTORY&lt;br /&gt;
#   ::sys is a repository for system backup (/etc /root /var/log /usr/local)&lt;br /&gt;
#   ::www is a repository for www backup (/data/www)&lt;br /&gt;
#   ::git is a repository for git backup (/data/git)&lt;br /&gt;
#&lt;br /&gt;
##########################################################################################&lt;br /&gt;
# mail reporting parameters&lt;br /&gt;
SERVER=&amp;quot;&amp;quot;&lt;br /&gt;
PORT=&amp;quot;&amp;quot;&lt;br /&gt;
USER=&amp;quot;r&amp;quot;&lt;br /&gt;
PASS=&amp;quot;&amp;quot;&lt;br /&gt;
FROM=&amp;quot;&amp;quot;&lt;br /&gt;
TO=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# get into the environment&lt;br /&gt;
source /root/src/borg-env/bin/activate&lt;br /&gt;
&lt;br /&gt;
# set some variables&lt;br /&gt;
export BORG_REPO=USER@HOST:DIRECTORY&lt;br /&gt;
export BORG_PASSPHRASE=&#039;PASSPHRASE&#039;&lt;br /&gt;
&lt;br /&gt;
# some helpers and error handling&lt;br /&gt;
info() { printf &amp;quot;\n%s %s\n\n&amp;quot; &amp;quot;$( date )&amp;quot; &amp;quot;$*&amp;quot; &amp;gt;&amp;amp;2; }&lt;br /&gt;
trap &#039;echo $( date ) Backup interrupted &amp;gt;&amp;amp;2; exit 2&#039; INT TERM&lt;br /&gt;
&lt;br /&gt;
# make a sys backup and prune old sys backups&lt;br /&gt;
info &amp;quot;Starting sys backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;sys_{now}&#039; /etc /root /var/log /usr/local&lt;br /&gt;
sys_create=$?&lt;br /&gt;
info &amp;quot;Pruning sys repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;sys_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
sys_prune=$?&lt;br /&gt;
sys_exit=$(( sys_create &amp;gt; sys_prune ? sys_create : sys_prune ))&lt;br /&gt;
&lt;br /&gt;
# make a www backup and prune old www backups&lt;br /&gt;
info &amp;quot;Starting www backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;www_{now}&#039; /data/www&lt;br /&gt;
www_create=$?&lt;br /&gt;
info &amp;quot;Pruning www repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;www_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
www_prune=$?&lt;br /&gt;
www_exit=$(( www_create &amp;gt; www_prune ? www_create : www_prune ))&lt;br /&gt;
&lt;br /&gt;
# make a git backup and prune old git backups&lt;br /&gt;
info &amp;quot;Starting git backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;git_{now}&#039; /data/git&lt;br /&gt;
git_create=$?&lt;br /&gt;
info &amp;quot;Pruning git repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;git_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
git_prune=$?&lt;br /&gt;
git_exit=$(( git_create &amp;gt; git_prune ? git_create : git_prune ))&lt;br /&gt;
&lt;br /&gt;
# handle errors and report&lt;br /&gt;
# we can also do it like &#039;&#039;$sys_exit -gt 1&#039;&#039; in case we get warnings about changed files that we don&#039;t care about reporting&lt;br /&gt;
if [ $sys_exit -gt 0 ] || [ $www_exit -gt 0 ] || [ $git_exit -gt 0 ]; then &lt;br /&gt;
        message=&amp;quot;sys_exit: $sys_exit\nwww_exit: $www_exit\ngit_exit: $git_exit&amp;quot;&lt;br /&gt;
        sendemail -o tls=yes -s $SERVER:$PORT -xu $USER -xp $PASS -f $FROM -t $TO -u &amp;quot;Warning: Borg backup might have failed&amp;quot; -m &amp;quot;$message&amp;quot;&lt;br /&gt;
        global_exit=1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# exit through trap&lt;br /&gt;
exit ${global_exit}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:System]]&lt;/div&gt;</summary>
		<author><name>Gnd</name></author>
	</entry>
	<entry>
		<id>https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=460</id>
		<title>Off-site Backup with Borg</title>
		<link rel="alternate" type="text/html" href="https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=460"/>
		<updated>2020-04-06T10:46:05Z</updated>

		<summary type="html">&lt;p&gt;Gnd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A quick&amp;amp;dirty run-down how to use Borg for daily offsite backups (non-sql). Situation: &#039;&#039;&#039;local&#039;&#039;&#039; is the machine that needs to be backed up, &#039;&#039;&#039;HOST&#039;&#039;&#039; is the machine where backups will be stored. &lt;br /&gt;
&lt;br /&gt;
* HOST - remote storage for backups&lt;br /&gt;
* USER - remote user&lt;br /&gt;
* DIRECTORY - remote directory containing backups&lt;br /&gt;
&lt;br /&gt;
We assume Borg is installed on HOST already. &lt;br /&gt;
&lt;br /&gt;
* setup USER @ HOST (on local: ssh-keygen -t ed25519 -b 320, on HOST: useradd USER, add key to authorized_keys, etc etc)&lt;br /&gt;
* create DIRECTORY at HOST and make it writable by USER&lt;br /&gt;
* on local: compile borg like: https://borgbackup.readthedocs.io/en/stable/installation.html#git-installation&lt;br /&gt;
* the above needs some additional packages but u&#039;ll figure that out&lt;br /&gt;
* on local: enter borg env like &amp;lt;pre&amp;gt;source /root/src/borg-env/bin/activate&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: init repository like &amp;lt;pre&amp;gt;borg init --encryption=keyfile-blake2 USER@HOST:DIRECTORY (provide passphrase)&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: export key like: &amp;lt;pre&amp;gt;borg key export USER@HOST:DIRECTORY borg.key&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: hide key in a safe place &amp;amp; remember passphrase &amp;amp; shred borg.key&lt;br /&gt;
* on local: install sendemail for mail reporting: &amp;lt;pre&amp;gt;apt-get install sendemail&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Modify &amp;amp; use the script (eg. by adding it into crontab)&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Borg automated backups&lt;br /&gt;
# Based on: https://borgbackup.readthedocs.io/en/stable/quickstart.html#automating-backups&lt;br /&gt;
# .. but not so fancy, lel&lt;br /&gt;
#&lt;br /&gt;
# This will backup to HOST into DIRECTORY&lt;br /&gt;
#   ::sys is a repository for system backup (/etc /root /var/log /usr/local)&lt;br /&gt;
#   ::www is a repository for www backup (/data/www)&lt;br /&gt;
#   ::git is a repository for git backup (/data/git)&lt;br /&gt;
#&lt;br /&gt;
##########################################################################################&lt;br /&gt;
# mail reporting parameters&lt;br /&gt;
SERVER=&amp;quot;&amp;quot;&lt;br /&gt;
PORT=&amp;quot;&amp;quot;&lt;br /&gt;
USER=&amp;quot;r&amp;quot;&lt;br /&gt;
PASS=&amp;quot;&amp;quot;&lt;br /&gt;
FROM=&amp;quot;&amp;quot;&lt;br /&gt;
TO=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# get into the environment&lt;br /&gt;
source /root/src/borg-env/bin/activate&lt;br /&gt;
&lt;br /&gt;
# set some variables&lt;br /&gt;
export BORG_REPO=USER@HOST:DIRECTORY&lt;br /&gt;
export BORG_PASSPHRASE=&#039;PASSPHRASE&#039;&lt;br /&gt;
&lt;br /&gt;
# some helpers and error handling&lt;br /&gt;
info() { printf &amp;quot;\n%s %s\n\n&amp;quot; &amp;quot;$( date )&amp;quot; &amp;quot;$*&amp;quot; &amp;gt;&amp;amp;2; }&lt;br /&gt;
trap &#039;echo $( date ) Backup interrupted &amp;gt;&amp;amp;2; exit 2&#039; INT TERM&lt;br /&gt;
&lt;br /&gt;
# make a sys backup and prune old sys backups&lt;br /&gt;
info &amp;quot;Starting sys backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;sys_{now}&#039; /etc /root /var/log /usr/local&lt;br /&gt;
sys_create=$?&lt;br /&gt;
info &amp;quot;Pruning sys repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;sys_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
sys_prune=$?&lt;br /&gt;
sys_exit=$(( sys_create &amp;gt; sys_prune ? sys_create : sys_prune ))&lt;br /&gt;
&lt;br /&gt;
# make a www backup and prune old www backups&lt;br /&gt;
info &amp;quot;Starting www backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;www_{now}&#039; /data/www&lt;br /&gt;
www_create=$?&lt;br /&gt;
info &amp;quot;Pruning www repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;www_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
www_prune=$?&lt;br /&gt;
www_exit=$(( www_create &amp;gt; www_prune ? www_create : www_prune ))&lt;br /&gt;
&lt;br /&gt;
# make a git backup and prune old git backups&lt;br /&gt;
info &amp;quot;Starting git backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;git_{now}&#039; /data/git&lt;br /&gt;
git_create=$?&lt;br /&gt;
info &amp;quot;Pruning git repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;git_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
git_prune=$?&lt;br /&gt;
git_exit=$(( git_create &amp;gt; git_prune ? git_create : git_prune ))&lt;br /&gt;
&lt;br /&gt;
# handle errors and report&lt;br /&gt;
# we can also do it like &#039;&#039;$sys_exit -gt 1&#039;&#039; in case we get warnings about changed files that we don&#039;t care about reporting&lt;br /&gt;
if [ $sys_exit -gt 0 ] || [ $www_exit -gt 0 ] || [ $git_exit -gt 0 ]; then &lt;br /&gt;
        message=&amp;quot;sys_exit: $sys_exit\nwww_exit: $www_exit\ngit_exit: $git_exit&amp;quot;&lt;br /&gt;
        sendemail -o tls=yes -s $SERVER:$PORT -xu $USER -xp $PASS -f $FROM -t $TO -u &amp;quot;Warning: Borg backup might have failed&amp;quot; -m &amp;quot;$message&amp;quot;&lt;br /&gt;
        global_exit=1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# exit through trap&lt;br /&gt;
exit ${global_exit}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:System]]&lt;/div&gt;</summary>
		<author><name>Gnd</name></author>
	</entry>
	<entry>
		<id>https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=459</id>
		<title>Off-site Backup with Borg</title>
		<link rel="alternate" type="text/html" href="https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=459"/>
		<updated>2020-04-06T10:45:46Z</updated>

		<summary type="html">&lt;p&gt;Gnd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A quick&amp;amp;dirty run-down how to use Borg for daily offsite backups (non-sql). Situation: &#039;&#039;&#039;local&#039;&#039;&#039; is the machine that needs to be backed up, &#039;&#039;&#039;HOST&#039;&#039;&#039; is the machine where backups will be stored. &lt;br /&gt;
&lt;br /&gt;
* HOST - remote storage for backups&lt;br /&gt;
* USER - remote user&lt;br /&gt;
* DIRECTORY - remote directory containing backups&lt;br /&gt;
&lt;br /&gt;
We assume Borg is installed on HOST already. &lt;br /&gt;
&lt;br /&gt;
* setup USER @ HOST (on local: ssh-keygen -t ed25519 -b 320, on HOST: useradd USER, add key to authorized_keys, etc etc)&lt;br /&gt;
* create DIRECTORY at HOST and make it writable by USER&lt;br /&gt;
* on local: compile borg like: https://borgbackup.readthedocs.io/en/stable/installation.html#git-installation&lt;br /&gt;
* the above needs some additional packages but u&#039;ll figure that out&lt;br /&gt;
* on local: enter borg env like &amp;lt;pre&amp;gt;source /root/src/borg-env/bin/activate&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: init repository like &amp;lt;pre&amp;gt;borg init --encryption=keyfile-blake2 USER@HOST:DIRECTORY (provide passphrase)&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: export key like: &amp;lt;pre&amp;gt;borg key export USER@HOST:DIRECTORY borg.key&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: hide key in a safe place &amp;amp; remember passphrase &amp;amp; shred borg.key&lt;br /&gt;
* on local: install sendemail for mail reporting: &amp;lt;pre&amp;gt;apt-get install sendemail&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- modify &amp;amp; use the script (eg. by adding it into crontab): &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Borg automated backups&lt;br /&gt;
# Based on: https://borgbackup.readthedocs.io/en/stable/quickstart.html#automating-backups&lt;br /&gt;
# .. but not so fancy, lel&lt;br /&gt;
#&lt;br /&gt;
# This will backup to HOST into DIRECTORY&lt;br /&gt;
#   ::sys is a repository for system backup (/etc /root /var/log /usr/local)&lt;br /&gt;
#   ::www is a repository for www backup (/data/www)&lt;br /&gt;
#   ::git is a repository for git backup (/data/git)&lt;br /&gt;
#&lt;br /&gt;
##########################################################################################&lt;br /&gt;
# mail reporting parameters&lt;br /&gt;
SERVER=&amp;quot;&amp;quot;&lt;br /&gt;
PORT=&amp;quot;&amp;quot;&lt;br /&gt;
USER=&amp;quot;r&amp;quot;&lt;br /&gt;
PASS=&amp;quot;&amp;quot;&lt;br /&gt;
FROM=&amp;quot;&amp;quot;&lt;br /&gt;
TO=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# get into the environment&lt;br /&gt;
source /root/src/borg-env/bin/activate&lt;br /&gt;
&lt;br /&gt;
# set some variables&lt;br /&gt;
export BORG_REPO=USER@HOST:DIRECTORY&lt;br /&gt;
export BORG_PASSPHRASE=&#039;PASSPHRASE&#039;&lt;br /&gt;
&lt;br /&gt;
# some helpers and error handling&lt;br /&gt;
info() { printf &amp;quot;\n%s %s\n\n&amp;quot; &amp;quot;$( date )&amp;quot; &amp;quot;$*&amp;quot; &amp;gt;&amp;amp;2; }&lt;br /&gt;
trap &#039;echo $( date ) Backup interrupted &amp;gt;&amp;amp;2; exit 2&#039; INT TERM&lt;br /&gt;
&lt;br /&gt;
# make a sys backup and prune old sys backups&lt;br /&gt;
info &amp;quot;Starting sys backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;sys_{now}&#039; /etc /root /var/log /usr/local&lt;br /&gt;
sys_create=$?&lt;br /&gt;
info &amp;quot;Pruning sys repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;sys_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
sys_prune=$?&lt;br /&gt;
sys_exit=$(( sys_create &amp;gt; sys_prune ? sys_create : sys_prune ))&lt;br /&gt;
&lt;br /&gt;
# make a www backup and prune old www backups&lt;br /&gt;
info &amp;quot;Starting www backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;www_{now}&#039; /data/www&lt;br /&gt;
www_create=$?&lt;br /&gt;
info &amp;quot;Pruning www repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;www_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
www_prune=$?&lt;br /&gt;
www_exit=$(( www_create &amp;gt; www_prune ? www_create : www_prune ))&lt;br /&gt;
&lt;br /&gt;
# make a git backup and prune old git backups&lt;br /&gt;
info &amp;quot;Starting git backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;git_{now}&#039; /data/git&lt;br /&gt;
git_create=$?&lt;br /&gt;
info &amp;quot;Pruning git repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;git_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
git_prune=$?&lt;br /&gt;
git_exit=$(( git_create &amp;gt; git_prune ? git_create : git_prune ))&lt;br /&gt;
&lt;br /&gt;
# handle errors and report&lt;br /&gt;
# we can also do it like &#039;&#039;$sys_exit -gt 1&#039;&#039; in case we get warnings about changed files that we don&#039;t care about reporting&lt;br /&gt;
if [ $sys_exit -gt 0 ] || [ $www_exit -gt 0 ] || [ $git_exit -gt 0 ]; then &lt;br /&gt;
        message=&amp;quot;sys_exit: $sys_exit\nwww_exit: $www_exit\ngit_exit: $git_exit&amp;quot;&lt;br /&gt;
        sendemail -o tls=yes -s $SERVER:$PORT -xu $USER -xp $PASS -f $FROM -t $TO -u &amp;quot;Warning: Borg backup might have failed&amp;quot; -m &amp;quot;$message&amp;quot;&lt;br /&gt;
        global_exit=1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# exit through trap&lt;br /&gt;
exit ${global_exit}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:System]]&lt;/div&gt;</summary>
		<author><name>Gnd</name></author>
	</entry>
	<entry>
		<id>https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=458</id>
		<title>Off-site Backup with Borg</title>
		<link rel="alternate" type="text/html" href="https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=458"/>
		<updated>2020-04-06T10:45:29Z</updated>

		<summary type="html">&lt;p&gt;Gnd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A quick&amp;amp;dirty run-down how to use Borg for daily offsite backups (non-sql). Situation: &#039;&#039;&#039;local&#039;&#039;&#039; is the machine that needs to be backed up, &#039;&#039;&#039;HOST&#039;&#039;&#039; is the machine where backups will be stored. &lt;br /&gt;
&lt;br /&gt;
* HOST - remote storage for backups&lt;br /&gt;
* USER - remote user&lt;br /&gt;
* DIRECTORY - remote directory containing backups&lt;br /&gt;
&lt;br /&gt;
We assume Borg is installed on HOST already. &lt;br /&gt;
&lt;br /&gt;
* setup USER @ HOST (on local: ssh-keygen -t ed25519 -b 320, on HOST: useradd USER, add key to authorized_keys, etc etc)&lt;br /&gt;
* create DIRECTORY at HOST and make it writable by USER&lt;br /&gt;
* on local: compile borg like: https://borgbackup.readthedocs.io/en/stable/installation.html#git-installation&lt;br /&gt;
* the above needs some additional packages but u&#039;ll figure that out&lt;br /&gt;
* on local: enter borg env like &amp;lt;pre&amp;gt;source /root/src/borg-env/bin/activate&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: init repository like &amp;lt;pre&amp;gt;borg init --encryption=keyfile-blake2 USER@HOST:DIRECTORY (provide passphrase)&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: export key like: &amp;lt;pre&amp;gt;borg key export USER@HOST:DIRECTORY borg.key&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: hide key in a safe place &amp;amp; remember passphrase &amp;amp; shred borg.key&lt;br /&gt;
* on local: install sendemail for mail reporting (&amp;lt;pre&amp;gt;apt-get install sendemail&amp;lt;/pre&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
- modify &amp;amp; use the script (eg. by adding it into crontab): &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Borg automated backups&lt;br /&gt;
# Based on: https://borgbackup.readthedocs.io/en/stable/quickstart.html#automating-backups&lt;br /&gt;
# .. but not so fancy, lel&lt;br /&gt;
#&lt;br /&gt;
# This will backup to HOST into DIRECTORY&lt;br /&gt;
#   ::sys is a repository for system backup (/etc /root /var/log /usr/local)&lt;br /&gt;
#   ::www is a repository for www backup (/data/www)&lt;br /&gt;
#   ::git is a repository for git backup (/data/git)&lt;br /&gt;
#&lt;br /&gt;
##########################################################################################&lt;br /&gt;
# mail reporting parameters&lt;br /&gt;
SERVER=&amp;quot;&amp;quot;&lt;br /&gt;
PORT=&amp;quot;&amp;quot;&lt;br /&gt;
USER=&amp;quot;r&amp;quot;&lt;br /&gt;
PASS=&amp;quot;&amp;quot;&lt;br /&gt;
FROM=&amp;quot;&amp;quot;&lt;br /&gt;
TO=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# get into the environment&lt;br /&gt;
source /root/src/borg-env/bin/activate&lt;br /&gt;
&lt;br /&gt;
# set some variables&lt;br /&gt;
export BORG_REPO=USER@HOST:DIRECTORY&lt;br /&gt;
export BORG_PASSPHRASE=&#039;PASSPHRASE&#039;&lt;br /&gt;
&lt;br /&gt;
# some helpers and error handling&lt;br /&gt;
info() { printf &amp;quot;\n%s %s\n\n&amp;quot; &amp;quot;$( date )&amp;quot; &amp;quot;$*&amp;quot; &amp;gt;&amp;amp;2; }&lt;br /&gt;
trap &#039;echo $( date ) Backup interrupted &amp;gt;&amp;amp;2; exit 2&#039; INT TERM&lt;br /&gt;
&lt;br /&gt;
# make a sys backup and prune old sys backups&lt;br /&gt;
info &amp;quot;Starting sys backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;sys_{now}&#039; /etc /root /var/log /usr/local&lt;br /&gt;
sys_create=$?&lt;br /&gt;
info &amp;quot;Pruning sys repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;sys_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
sys_prune=$?&lt;br /&gt;
sys_exit=$(( sys_create &amp;gt; sys_prune ? sys_create : sys_prune ))&lt;br /&gt;
&lt;br /&gt;
# make a www backup and prune old www backups&lt;br /&gt;
info &amp;quot;Starting www backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;www_{now}&#039; /data/www&lt;br /&gt;
www_create=$?&lt;br /&gt;
info &amp;quot;Pruning www repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;www_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
www_prune=$?&lt;br /&gt;
www_exit=$(( www_create &amp;gt; www_prune ? www_create : www_prune ))&lt;br /&gt;
&lt;br /&gt;
# make a git backup and prune old git backups&lt;br /&gt;
info &amp;quot;Starting git backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;git_{now}&#039; /data/git&lt;br /&gt;
git_create=$?&lt;br /&gt;
info &amp;quot;Pruning git repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;git_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
git_prune=$?&lt;br /&gt;
git_exit=$(( git_create &amp;gt; git_prune ? git_create : git_prune ))&lt;br /&gt;
&lt;br /&gt;
# handle errors and report&lt;br /&gt;
# we can also do it like &#039;&#039;$sys_exit -gt 1&#039;&#039; in case we get warnings about changed files that we don&#039;t care about reporting&lt;br /&gt;
if [ $sys_exit -gt 0 ] || [ $www_exit -gt 0 ] || [ $git_exit -gt 0 ]; then &lt;br /&gt;
        message=&amp;quot;sys_exit: $sys_exit\nwww_exit: $www_exit\ngit_exit: $git_exit&amp;quot;&lt;br /&gt;
        sendemail -o tls=yes -s $SERVER:$PORT -xu $USER -xp $PASS -f $FROM -t $TO -u &amp;quot;Warning: Borg backup might have failed&amp;quot; -m &amp;quot;$message&amp;quot;&lt;br /&gt;
        global_exit=1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# exit through trap&lt;br /&gt;
exit ${global_exit}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:System]]&lt;/div&gt;</summary>
		<author><name>Gnd</name></author>
	</entry>
	<entry>
		<id>https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=457</id>
		<title>Off-site Backup with Borg</title>
		<link rel="alternate" type="text/html" href="https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=457"/>
		<updated>2020-04-06T10:44:39Z</updated>

		<summary type="html">&lt;p&gt;Gnd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A quick&amp;amp;dirty run-down how to use Borg for daily offsite backups (non-sql). Situation: &#039;&#039;&#039;local&#039;&#039;&#039; is the machine that needs to be backed up, &#039;&#039;&#039;HOST&#039;&#039;&#039; is the machine where backups will be stored. &lt;br /&gt;
&lt;br /&gt;
* HOST - remote storage for backups&lt;br /&gt;
* USER - remote user&lt;br /&gt;
* DIRECTORY - remote directory containing backups&lt;br /&gt;
&lt;br /&gt;
We assume Borg is installed on HOST already. &lt;br /&gt;
&lt;br /&gt;
* setup USER @ HOST (on local: ssh-keygen -t ed25519 -b 320, on HOST: useradd USER, add key to authorized_keys, etc etc)&lt;br /&gt;
* create DIRECTORY at HOST and make it writable by USER&lt;br /&gt;
* on local: compile borg like: https://borgbackup.readthedocs.io/en/stable/installation.html#git-installation&lt;br /&gt;
* the above needs some additional packages but u&#039;ll figure that out&lt;br /&gt;
* on local: enter borg env like &amp;lt;pre&amp;gt;source /root/src/borg-env/bin/activate&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: init repository like &amp;lt;pre&amp;gt;borg init --encryption=keyfile-blake2 USER@HOST:DIRECTORY (provide passphrase)&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: export key like: &amp;lt;pre&amp;gt;borg key export USER@HOST:DIRECTORY borg.key&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: hide key in a safe place &amp;amp; remember passphrase &amp;amp; shred borg.key&lt;br /&gt;
* on local: install sendemail for mail reporting (&#039;&#039;apt-get install sendemail&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
- modify &amp;amp; use the script (eg. by adding it into crontab): &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Borg automated backups&lt;br /&gt;
# Based on: https://borgbackup.readthedocs.io/en/stable/quickstart.html#automating-backups&lt;br /&gt;
# .. but not so fancy, lel&lt;br /&gt;
#&lt;br /&gt;
# This will backup to HOST into DIRECTORY&lt;br /&gt;
#   ::sys is a repository for system backup (/etc /root /var/log /usr/local)&lt;br /&gt;
#   ::www is a repository for www backup (/data/www)&lt;br /&gt;
#   ::git is a repository for git backup (/data/git)&lt;br /&gt;
#&lt;br /&gt;
##########################################################################################&lt;br /&gt;
# mail reporting parameters&lt;br /&gt;
SERVER=&amp;quot;&amp;quot;&lt;br /&gt;
PORT=&amp;quot;&amp;quot;&lt;br /&gt;
USER=&amp;quot;r&amp;quot;&lt;br /&gt;
PASS=&amp;quot;&amp;quot;&lt;br /&gt;
FROM=&amp;quot;&amp;quot;&lt;br /&gt;
TO=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# get into the environment&lt;br /&gt;
source /root/src/borg-env/bin/activate&lt;br /&gt;
&lt;br /&gt;
# set some variables&lt;br /&gt;
export BORG_REPO=USER@HOST:DIRECTORY&lt;br /&gt;
export BORG_PASSPHRASE=&#039;PASSPHRASE&#039;&lt;br /&gt;
&lt;br /&gt;
# some helpers and error handling&lt;br /&gt;
info() { printf &amp;quot;\n%s %s\n\n&amp;quot; &amp;quot;$( date )&amp;quot; &amp;quot;$*&amp;quot; &amp;gt;&amp;amp;2; }&lt;br /&gt;
trap &#039;echo $( date ) Backup interrupted &amp;gt;&amp;amp;2; exit 2&#039; INT TERM&lt;br /&gt;
&lt;br /&gt;
# make a sys backup and prune old sys backups&lt;br /&gt;
info &amp;quot;Starting sys backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;sys_{now}&#039; /etc /root /var/log /usr/local&lt;br /&gt;
sys_create=$?&lt;br /&gt;
info &amp;quot;Pruning sys repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;sys_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
sys_prune=$?&lt;br /&gt;
sys_exit=$(( sys_create &amp;gt; sys_prune ? sys_create : sys_prune ))&lt;br /&gt;
&lt;br /&gt;
# make a www backup and prune old www backups&lt;br /&gt;
info &amp;quot;Starting www backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;www_{now}&#039; /data/www&lt;br /&gt;
www_create=$?&lt;br /&gt;
info &amp;quot;Pruning www repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;www_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
www_prune=$?&lt;br /&gt;
&lt;br /&gt;
# make a git backup and prune old git backups&lt;br /&gt;
info &amp;quot;Starting git backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;git_{now}&#039; /data/git&lt;br /&gt;
git_create=$?&lt;br /&gt;
info &amp;quot;Pruning git repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;git_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
git_prune=$?&lt;br /&gt;
&lt;br /&gt;
# handle errors and report&lt;br /&gt;
# we can also do it like &#039;&#039;$sys_exit -gt 1&#039;&#039; in case we get warnings about changed files that we don&#039;t care about reporting&lt;br /&gt;
if [ $sys_exit -gt 0 ] || [ $www_exit -gt 0 ] || [ $git_exit -gt 0 ]; then &lt;br /&gt;
        message=&amp;quot;sys_exit: $sys_exit\nwww_exit: $www_exit\ngit_exit: $git_exit&amp;quot;&lt;br /&gt;
        sendemail -o tls=yes -s $SERVER:$PORT -xu $USER -xp $PASS -f $FROM -t $TO -u &amp;quot;Warning: Borg backup might have failed&amp;quot; -m &amp;quot;$message&amp;quot;&lt;br /&gt;
        global_exit=1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# exit through trap&lt;br /&gt;
exit ${global_exit}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:System]]&lt;/div&gt;</summary>
		<author><name>Gnd</name></author>
	</entry>
	<entry>
		<id>https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=365</id>
		<title>Off-site Backup with Borg</title>
		<link rel="alternate" type="text/html" href="https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=365"/>
		<updated>2019-09-17T18:18:10Z</updated>

		<summary type="html">&lt;p&gt;Gnd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A very quick&amp;amp;dirty run-down how to use Borg for daily offsite backups (non-sql). Situation: &#039;&#039;&#039;local&#039;&#039;&#039; is the macine that needs to be backed up, &#039;&#039;&#039;HOST&#039;&#039;&#039; is the machine where backups will be stored. &lt;br /&gt;
&lt;br /&gt;
* HOST - remote storage for backups&lt;br /&gt;
* USER - remote user&lt;br /&gt;
* DIRECTORY - remote directory containing backups&lt;br /&gt;
&lt;br /&gt;
We assume Borg is installed on HOST already. &lt;br /&gt;
&lt;br /&gt;
* setup USER @ HOST (on local: ssh-keygen -t ed25519 -b 320, on HOST: useradd USER, add key to authorized_keys, etc etc)&lt;br /&gt;
* create DIRECTORY at HOST and make it writable by USER&lt;br /&gt;
* on local: compile borg like: https://borgbackup.readthedocs.io/en/stable/installation.html#git-installation&lt;br /&gt;
* the above needs some additional packages but u&#039;ll figure that out&lt;br /&gt;
* on local: enter borg env like &amp;lt;pre&amp;gt;source /root/src/borg-env/bin/activate&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: init repository like &amp;lt;pre&amp;gt;borg init --encryption=keyfile-blake2 USER@HOST:DIRECTORY (provide passphrase)&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: export key like: &amp;lt;pre&amp;gt;borg key export USER@HOST:DIRECTORY borg.key&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: hide key in a safe place &amp;amp; remember passphrase &amp;amp; shred borg.key&lt;br /&gt;
&lt;br /&gt;
- modify &amp;amp; use the script (eg. by adding it into crontab): &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Borg automated backups&lt;br /&gt;
# Based on: https://borgbackup.readthedocs.io/en/stable/quickstart.html#automating-backups&lt;br /&gt;
# .. but not so fancy, lel&lt;br /&gt;
#&lt;br /&gt;
# This will backup to HOST into DIRECTORY&lt;br /&gt;
#   ::sys is a repository for system backup (/etc /root /var/log /usr/local)&lt;br /&gt;
#   ::www is a repository for www backup (/data/www)&lt;br /&gt;
#   ::git is a repository for git backup (/data/git)&lt;br /&gt;
#&lt;br /&gt;
##########################################################################################&lt;br /&gt;
&lt;br /&gt;
# get into the environment&lt;br /&gt;
source /root/src/borg-env/bin/activate&lt;br /&gt;
&lt;br /&gt;
# set some variables&lt;br /&gt;
export BORG_REPO=USER@HOST:DIRECTORY&lt;br /&gt;
export BORG_PASSPHRASE=&#039;PASSPHRASE&#039;&lt;br /&gt;
&lt;br /&gt;
# some helpers and error handling&lt;br /&gt;
info() { printf &amp;quot;\n%s %s\n\n&amp;quot; &amp;quot;$( date )&amp;quot; &amp;quot;$*&amp;quot; &amp;gt;&amp;amp;2; }&lt;br /&gt;
trap &#039;echo $( date ) Backup interrupted &amp;gt;&amp;amp;2; exit 2&#039; INT TERM&lt;br /&gt;
&lt;br /&gt;
# make a sys backup and prune old sys backups&lt;br /&gt;
info &amp;quot;Starting sys backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;sys_{now}&#039; /etc /root /var/log /usr/local&lt;br /&gt;
info &amp;quot;Pruning sys repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;sys_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
&lt;br /&gt;
# make a www backup and prune old www backups&lt;br /&gt;
info &amp;quot;Starting www backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;www_{now}&#039; /data/www&lt;br /&gt;
info &amp;quot;Pruning www repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;www_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
&lt;br /&gt;
# make a git backup and prune old git backups&lt;br /&gt;
info &amp;quot;Starting git backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;git_{now}&#039; /data/git&lt;br /&gt;
info &amp;quot;Pruning git repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;git_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:System]]&lt;/div&gt;</summary>
		<author><name>Gnd</name></author>
	</entry>
	<entry>
		<id>https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=364</id>
		<title>Off-site Backup with Borg</title>
		<link rel="alternate" type="text/html" href="https://things.bleu255.com/runyourown/index.php?title=Off-site_Backup_with_Borg&amp;diff=364"/>
		<updated>2019-09-17T18:17:21Z</updated>

		<summary type="html">&lt;p&gt;Gnd: Created page with &amp;quot;A very quick run-down how ti use Borg on itself for daily offsite backups (non-sql). Situation: &amp;#039;&amp;#039;&amp;#039;local&amp;#039;&amp;#039;&amp;#039; is the macine that needs to be backed up, &amp;#039;&amp;#039;&amp;#039;HOST&amp;#039;&amp;#039;&amp;#039; is the machine...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A very quick run-down how ti use Borg on itself for daily offsite backups (non-sql). Situation: &#039;&#039;&#039;local&#039;&#039;&#039; is the macine that needs to be backed up, &#039;&#039;&#039;HOST&#039;&#039;&#039; is the machine where backups will be stored. &lt;br /&gt;
&lt;br /&gt;
* HOST - remote storage for backups&lt;br /&gt;
* USER - remote user&lt;br /&gt;
* DIRECTORY - remote directory containing backups&lt;br /&gt;
&lt;br /&gt;
We assume Borg is installed on HOST already. &lt;br /&gt;
&lt;br /&gt;
* setup USER @ HOST (on local: ssh-keygen -t ed25519 -b 320, on HOST: useradd USER, add key to authorized_keys, etc etc)&lt;br /&gt;
* create DIRECTORY at HOST and make it writable by USER&lt;br /&gt;
* on local: compile borg like: https://borgbackup.readthedocs.io/en/stable/installation.html#git-installation&lt;br /&gt;
* the above needs some additional packages but u&#039;ll figure that out&lt;br /&gt;
* on local: enter borg env like &amp;lt;pre&amp;gt;source /root/src/borg-env/bin/activate&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: init repository like &amp;lt;pre&amp;gt;borg init --encryption=keyfile-blake2 USER@HOST:DIRECTORY (provide passphrase)&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: export key like: &amp;lt;pre&amp;gt;borg key export USER@HOST:DIRECTORY borg.key&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on local: hide key in a safe place &amp;amp; remember passphrase &amp;amp; shred borg.key&lt;br /&gt;
&lt;br /&gt;
- modify &amp;amp; use the script (eg. by adding it into crontab): &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Borg automated backups&lt;br /&gt;
# Based on: https://borgbackup.readthedocs.io/en/stable/quickstart.html#automating-backups&lt;br /&gt;
# .. but not so fancy, lel&lt;br /&gt;
#&lt;br /&gt;
# This will backup to HOST into DIRECTORY&lt;br /&gt;
#   ::sys is a repository for system backup (/etc /root /var/log /usr/local)&lt;br /&gt;
#   ::www is a repository for www backup (/data/www)&lt;br /&gt;
#   ::git is a repository for git backup (/data/git)&lt;br /&gt;
#&lt;br /&gt;
##########################################################################################&lt;br /&gt;
&lt;br /&gt;
# get into the environment&lt;br /&gt;
source /root/src/borg-env/bin/activate&lt;br /&gt;
&lt;br /&gt;
# set some variables&lt;br /&gt;
export BORG_REPO=USER@HOST:DIRECTORY&lt;br /&gt;
export BORG_PASSPHRASE=&#039;PASSPHRASE&#039;&lt;br /&gt;
&lt;br /&gt;
# some helpers and error handling&lt;br /&gt;
info() { printf &amp;quot;\n%s %s\n\n&amp;quot; &amp;quot;$( date )&amp;quot; &amp;quot;$*&amp;quot; &amp;gt;&amp;amp;2; }&lt;br /&gt;
trap &#039;echo $( date ) Backup interrupted &amp;gt;&amp;amp;2; exit 2&#039; INT TERM&lt;br /&gt;
&lt;br /&gt;
# make a sys backup and prune old sys backups&lt;br /&gt;
info &amp;quot;Starting sys backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;sys_{now}&#039; /etc /root /var/log /usr/local&lt;br /&gt;
info &amp;quot;Pruning sys repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;sys_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
&lt;br /&gt;
# make a www backup and prune old www backups&lt;br /&gt;
info &amp;quot;Starting www backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;www_{now}&#039; /data/www&lt;br /&gt;
info &amp;quot;Pruning www repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;www_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
&lt;br /&gt;
# make a git backup and prune old git backups&lt;br /&gt;
info &amp;quot;Starting git backup&amp;quot;&lt;br /&gt;
borg create --stats ::&#039;git_{now}&#039; /data/git&lt;br /&gt;
info &amp;quot;Pruning git repository&amp;quot;&lt;br /&gt;
borg prune --list --prefix &#039;git_&#039; --show-rc --keep-daily 7 --keep-weekly 4 --keep-monthly 6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gnd</name></author>
	</entry>
</feed>