<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://www.root-wiki.de/index.php?action=history&amp;feed=atom&amp;title=Borg_Backup</id>
		<title>Borg Backup - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://www.root-wiki.de/index.php?action=history&amp;feed=atom&amp;title=Borg_Backup"/>
		<link rel="alternate" type="text/html" href="https://www.root-wiki.de/index.php?title=Borg_Backup&amp;action=history"/>
		<updated>2026-04-29T05:36:29Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in Root-Wiki</subtitle>
		<generator>MediaWiki 1.25.3</generator>

	<entry>
		<id>https://www.root-wiki.de/index.php?title=Borg_Backup&amp;diff=646&amp;oldid=prev</id>
		<title>Nevakee am 13. Juni 2020 um 06:36 Uhr</title>
		<link rel="alternate" type="text/html" href="https://www.root-wiki.de/index.php?title=Borg_Backup&amp;diff=646&amp;oldid=prev"/>
				<updated>2020-06-13T06:36:23Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der Artikel ist eher als Notiz für mich gedacht und nicht als Anleitung!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SSH Keys generieren ==&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen&lt;br /&gt;
&lt;br /&gt;
 Generating public/private rsa key pair.&lt;br /&gt;
 Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_storagebox&lt;br /&gt;
 Enter passphrase (empty for no passphrase):&lt;br /&gt;
 Enter same passphrase again:&lt;br /&gt;
 Your identification has been saved in /root/.ssh/id_rsa_storagebox.&lt;br /&gt;
 Your public key has been saved in /root/.ssh/id_rsa_storagebox.pub.&lt;br /&gt;
&lt;br /&gt;
Inhalt von ~/.ssh/id_rsa_storagebox.pub in die authorized_keys auf dem Backup Server kopieren.&lt;br /&gt;
&lt;br /&gt;
Die Berechtigungen für den .ssh Ordner auf 0700 setzen und für die authorized_keys auf 0600.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Verbindung kann mit folgenden Befehl getestet werden:&lt;br /&gt;
 sftp -o &amp;quot;IdentityFile=/root/.ssh/id_rsa_storagebox&amp;quot; -P 23 u123456-sub1@u123456.your-storagebox.de&lt;br /&gt;
&lt;br /&gt;
== Borg Repository initialisieren ==&lt;br /&gt;
&lt;br /&gt;
Als Ordner nehme ich die Variable HOSTNAME.&lt;br /&gt;
&lt;br /&gt;
 borg init --encryption=repokey ssh://u123456-sub1@u123456.your-storagebox.de:23/./$(hostname)&lt;br /&gt;
&lt;br /&gt;
Jetzt kann man das Passwort für die Repository festlegen. Passwort aufschreiben, sonst kommt man später nicht mehr an die Backup dran!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initial Backup erstellen ==&lt;br /&gt;
&lt;br /&gt;
 borg create -v --stats \&lt;br /&gt;
 ssh://u123456-sub1@u123456.your-storagebox.de:23/./$(hostname)::initial \&lt;br /&gt;
 / \&lt;br /&gt;
 --exclude /dev \&lt;br /&gt;
 --exclude /proc \&lt;br /&gt;
 --exclude /sys \&lt;br /&gt;
 --exclude /var/run \&lt;br /&gt;
 --exclude /run \&lt;br /&gt;
 --exclude /lost+found \&lt;br /&gt;
 --exclude /tmp \&lt;br /&gt;
 --exclude /mnt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Backups auflisten ==&lt;br /&gt;
&lt;br /&gt;
 borg list ssh://u123456-sub1@u123456.your-storagebox.de:23/./$(hostname)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Backups löschen ==&lt;br /&gt;
&lt;br /&gt;
 borg delete ssh://u123456-sub1@u123456.your-storagebox.de:23/./$(hostname)::2020-02-22_10:00&lt;br /&gt;
&lt;br /&gt;
== Verzeichnis aus Backup wiederherstellen ==&lt;br /&gt;
&lt;br /&gt;
In dem Beispiel wird das Verzeichnis /var/www von dem Backup 2020-02-22_10:00 in dem aktuelle Verzeichnis, in dem man sich befindet, wiederhergestellt.&lt;br /&gt;
 mkdir /opt/backup-restore&lt;br /&gt;
 cd /opt/backup-restore&lt;br /&gt;
 borg extract ssh://u123456-sub1@u123456.your-storagebox.de:23/./$(hostname)::2020-02-22_10:00 var/www&lt;br /&gt;
&lt;br /&gt;
== Backup Script ==&lt;br /&gt;
&lt;br /&gt;
mailutils muss auf dem System installiert sein, damit die E-Mail Benachrichtigung funktioniert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env bash&lt;br /&gt;
 &lt;br /&gt;
 export BORG_RSH=&amp;quot;ssh -i /root/.ssh/id_rsa_storagebox&amp;quot;&lt;br /&gt;
 export BORG_PASSPHRASE=&amp;quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 LOG=&amp;quot;/var/log/borg/backup.log&amp;quot;&lt;br /&gt;
 BACKUP_USER=&amp;quot;u123456-sub1&amp;quot;&lt;br /&gt;
 BACKUP_HOST=&amp;quot;u123456.your-storagebox.de&amp;quot;&lt;br /&gt;
 REPOSITORY=&amp;quot;ssh://${BACKUP_USER}@${BACKUP_HOST}:23/./$(hostname)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 ##&lt;br /&gt;
 ## Write output to logfile&lt;br /&gt;
 ##&lt;br /&gt;
 &lt;br /&gt;
 if [ ! -d &amp;quot;/var/log/borg/&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
     echo &amp;quot;create log dir ...&amp;quot;&lt;br /&gt;
     mkdir -p /var/log/borg/&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 exec &amp;gt; &amp;gt;(tee -i ${LOG})&lt;br /&gt;
 exec 2&amp;gt;&amp;amp;1&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;###### Starting backup on $(date) ######&amp;quot;&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 ##&lt;br /&gt;
 ## Create list of installed software&lt;br /&gt;
 ##&lt;br /&gt;
 &lt;br /&gt;
 dpkg --get-selections &amp;gt; /root/backup/software.list&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 ##&lt;br /&gt;
 ## Sync backup data&lt;br /&gt;
 ##&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Syncing backup files ...&amp;quot;&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 borg create -v --stats                   \&lt;br /&gt;
     $REPOSITORY::'{now:%Y-%m-%d_%H:%M}'  \&lt;br /&gt;
     /                                    \&lt;br /&gt;
     --exclude /dev                       \&lt;br /&gt;
     --exclude /proc                      \&lt;br /&gt;
     --exclude /sys                       \&lt;br /&gt;
     --exclude /var/run                   \&lt;br /&gt;
     --exclude /run                       \&lt;br /&gt;
     --exclude /lost+found                \&lt;br /&gt;
     --exclude /tmp                       \&lt;br /&gt;
     --exclude /mnt&lt;br /&gt;
 &lt;br /&gt;
 status_backup=$?&lt;br /&gt;
 &lt;br /&gt;
 if [ $status_backup -eq 0 ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;###### Finished backup on $(date) ######&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;###### Failed backup on $(date) ######&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 ##&lt;br /&gt;
 ## Pruning backup data&lt;br /&gt;
 ##&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;###### Pruning backup on $(date) ######&amp;quot;&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 borg prune -v $REPOSITORY \&lt;br /&gt;
 --keep-daily=7 \&lt;br /&gt;
 --keep-weekly=4 \&lt;br /&gt;
 --keep-monthly=6&lt;br /&gt;
 &lt;br /&gt;
 status_prune=$?&lt;br /&gt;
 &lt;br /&gt;
 if [ $status_prune -eq 0 ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;###### Pruning finished ######&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;###### Pruning failed ######&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ##&lt;br /&gt;
 ## Send mail to admin&lt;br /&gt;
 ##&lt;br /&gt;
 if [ $status_backup -eq 0 ] &amp;amp;&amp;amp; [ $status_prune -eq 0 ]&lt;br /&gt;
 then&lt;br /&gt;
   mailx -a &amp;quot;From: &amp;quot;$(hostname)&amp;quot; Backup &amp;lt;&amp;quot;$(hostname)&amp;quot;@meinedomain.de&amp;gt;&amp;quot; -s &amp;quot;Successful Borg Backup | &amp;quot;$(hostname) admin@meinedomain.de &amp;lt; $LOG&lt;br /&gt;
 else&lt;br /&gt;
   mailx -a &amp;quot;From: &amp;quot;$(hostname)&amp;quot; Backup &amp;lt;&amp;quot;$(hostname)&amp;quot;@meinedomain.de&amp;gt;&amp;quot; -s &amp;quot;Failed Borg Backup | &amp;quot;$(hostname) admin@meinedomain.de &amp;lt; $LOG&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cronjob für das Script.&lt;br /&gt;
&lt;br /&gt;
/etc/crontab&lt;br /&gt;
 # Example of job definition:&lt;br /&gt;
 # .---------------- minute (0 - 59)&lt;br /&gt;
 # |  .------------- hour (0 - 23)&lt;br /&gt;
 # |  |  .---------- day of month (1 - 31)&lt;br /&gt;
 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...&lt;br /&gt;
 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat&lt;br /&gt;
 # |  |  |  |  |&lt;br /&gt;
 # *  *  *  *  * user-name command to be executed&lt;br /&gt;
 &lt;br /&gt;
 5 1     * * *   root    /root/backup/borgbackup.sh &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Nevakee</name></author>	</entry>

	</feed>