<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.6bit.ch/index.php?action=history&amp;feed=atom&amp;title=Proxmox_USB-Backup</id>
	<title>Proxmox USB-Backup - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.6bit.ch/index.php?action=history&amp;feed=atom&amp;title=Proxmox_USB-Backup"/>
	<link rel="alternate" type="text/html" href="http://wiki.6bit.ch/index.php?title=Proxmox_USB-Backup&amp;action=history"/>
	<updated>2026-05-10T13:38:22Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.6bit.ch/index.php?title=Proxmox_USB-Backup&amp;diff=148&amp;oldid=prev</id>
		<title>Xbl at 13:37, 16 August 2024</title>
		<link rel="alternate" type="text/html" href="http://wiki.6bit.ch/index.php?title=Proxmox_USB-Backup&amp;diff=148&amp;oldid=prev"/>
		<updated>2024-08-16T13:37:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:37, 16 August 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l76&quot;&gt;Line 76:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 76:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;fi&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;fi&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# EOF&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# EOF&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Sensortyp ist ''SSH Script'', als Parameter muss das Backupverzeichnis (in diesem Beispiel ''/mnt/usbackup'') mitgegeben werden.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\\&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der Sensortyp ist ''SSH Script'', als Parameter muss das Backupverzeichnis (in diesem Beispiel ''/mnt/usbackup'') mitgegeben werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Funktionsweise: Es wird geprüft, ob innerhalb des Backupverzeichnisses .zst-Dateien existieren, die jünger als 3 Tage sind. Wenn dies nicht der Fall ist, geht der Sensor in den Fehlerstatus.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\\&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Funktionsweise: Es wird geprüft, ob innerhalb des Backupverzeichnisses .zst-Dateien existieren, die jünger als 3 Tage sind. Wenn dies nicht der Fall ist, geht der Sensor in den Fehlerstatus.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Xbl</name></author>
	</entry>
	<entry>
		<id>http://wiki.6bit.ch/index.php?title=Proxmox_USB-Backup&amp;diff=147&amp;oldid=prev</id>
		<title>Xbl: Created page with &quot;== Ziel == Proxmox-VMs auf externe, wechselnde USB-Disk(s) sichern.  == Weg zum Ziel == USB-Disks können ab Proxmox 8 mit der x-systemd.automount-Option über ''/etc/fstab'' automatisch gemounted werden. Da die Gerätepfade nicht konstant sind werden Regeln mit ''udev'' erstellt, welche die USB-Disks verlässlich am gleichen Ort präsentieren.  === Nur für NTFS-formatierte Platten: ntfs-3g installieren (WebGUI Shell/SSH) === Nativ kann Linux NTFS nur als RO mounten, da...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.6bit.ch/index.php?title=Proxmox_USB-Backup&amp;diff=147&amp;oldid=prev"/>
		<updated>2024-08-16T07:50:00Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Ziel == Proxmox-VMs auf externe, wechselnde USB-Disk(s) sichern.  == Weg zum Ziel == USB-Disks können ab Proxmox 8 mit der x-systemd.automount-Option über &amp;#039;&amp;#039;/etc/fstab&amp;#039;&amp;#039; automatisch gemounted werden. Da die Gerätepfade nicht konstant sind werden Regeln mit &amp;#039;&amp;#039;udev&amp;#039;&amp;#039; erstellt, welche die USB-Disks verlässlich am gleichen Ort präsentieren.  === Nur für NTFS-formatierte Platten: ntfs-3g installieren (WebGUI Shell/SSH) === Nativ kann Linux NTFS nur als RO mounten, da...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Ziel ==&lt;br /&gt;
Proxmox-VMs auf externe, wechselnde USB-Disk(s) sichern.&lt;br /&gt;
&lt;br /&gt;
== Weg zum Ziel ==&lt;br /&gt;
USB-Disks können ab Proxmox 8 mit der x-systemd.automount-Option über ''/etc/fstab'' automatisch gemounted werden.&lt;br /&gt;
Da die Gerätepfade nicht konstant sind werden Regeln mit ''udev'' erstellt, welche die USB-Disks verlässlich am gleichen Ort präsentieren.&lt;br /&gt;
&lt;br /&gt;
=== Nur für NTFS-formatierte Platten: ntfs-3g installieren (WebGUI Shell/SSH) ===&lt;br /&gt;
Nativ kann Linux NTFS nur als RO mounten, daher brauchen wir NTFS-3G.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# apt install ntfs-3g&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB-Disk am Proxmox-Host anhängen (WebGUI Shell/SSH) ===&lt;br /&gt;
Ob die Disk erkannt wurde kann mit ''lsusb'' geprüft werden. Der aktuelle Ort innerhalb ''/dev'' wird mit ''lsblk'' angezeigt, diese Information (beispielsweise ''/dev/sde1'') ersetzt im folgenden Schritt ''/dev/geraet''.&lt;br /&gt;
&lt;br /&gt;
=== udev-Attribute auslesen (WebGUI Shell/SSH) ===&lt;br /&gt;
Wir brauchen ein eindeutiges Identifikationsattribut, um die Disk zu referenzieren. Welche Informationen dafür geeignet sind, ist gerätespezifisch.&lt;br /&gt;
&lt;br /&gt;
Attribute können folgendermassen angezeigt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# udevadm info -a -p  $(udevadm info -q path -n /dev/geraet)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit folgendem Befehl kann die Seriennummer angezeigt werden, diese eignet sich gut für die Identifikation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# udevadm info -a -p  $(udevadm info -q path -n /dev/geraet) | grep serial&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit folgendem Befehl kann die Seriennummer direkt ins Rule-File geschrieben werden, damit spart man sich mühsames Copypasten:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# udevadm info -a -p  $(udevadm info -q path -n /dev/geraet) | grep serial &amp;gt;&amp;gt; /etc/udev/rules.d/69-usb.rules&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== udev-Regeln erstellen (WebGUI Shell/SSH) ===&lt;br /&gt;
Hier wird udev angewiesen, für ein gelistetes Gerät (mit Seriennummer XX oder YY) eine fixe Verknüpfung ''/dev/usbackup1'' (%n = Partitionsnummer) zu erstellen. Die externe USB-Disk wird so immer unter ''/dev/usbackup1'' angezeigt. Falls mehrere Disks angehängt sind, werden diese chronologisch (später angeschlossene zuerst) dem Pfad zur Verfügung gestellt. Pro Zeile wird eine Disk aufgeführt.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# /etc/udev/rules.d/69-usb.rules&lt;br /&gt;
SUBSYSTEM==&amp;quot;block&amp;quot;, ATTRS{serial}==&amp;quot;XX&amp;quot;, SYMLINK+=&amp;quot;usbackup%n&amp;quot;&lt;br /&gt;
SUBSYSTEM==&amp;quot;block&amp;quot;, ATTRS{serial}==&amp;quot;YY&amp;quot;, SYMLINK+=&amp;quot;usbackup%n&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
💡 Bei geänderten Regeln muss udev angewiesen werden, diese neu zu laden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# udevadm control --reload-rules &amp;amp;&amp;amp; udevadm trigger&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mountpoint für die Backupdisk(s) erstellen (WebGUI Shell/SSH) ===&lt;br /&gt;
&amp;lt;code&amp;gt;# mkdir /mnt/usbackup&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Eintrag in der FS-Table erstellen (WebGUI Shell/SSH) ===&lt;br /&gt;
&amp;lt;code&amp;gt;# /etc/fstab&lt;br /&gt;
/dev/usbackup1  /mnt/usbackup   auto    noauto,x-systemd.automount,x-systemd.idle-timeout=69     0 2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cronjob für den Diskwechsel einrichten (WebGUI Shell/SSH) ===&lt;br /&gt;
Hiermit wird jeden Freitag um 1000 das Backup-Repo ordentlich deaktiviert und die Disk vom Mountpoint entfernt. Nun hat man einige Stunden Zeit, die Disk abzuhängen und eine Weitere anzuschliessen. Um 1700 wird das Storageverzeichnis wieder aktiviert und damit die Disk gemountet.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# crontab -e&lt;br /&gt;
0 10 * * fri /usr/sbin/pvesm set usbackup --disable 1 &amp;amp;&amp;amp; /usr/bin/umount /mnt/usbackup&lt;br /&gt;
0 17 * * fri /usr/sbin/pvesm set usbackup --disable 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
⚠️ Gemountete Disks mit aktivem PVE-Storage sollten nicht einfach so ausgesteckt werden. Dies führt zu kuriosem Verhalten und kann auch systemweite Disk-Timeouts auslösen.\\&lt;br /&gt;
&lt;br /&gt;
=== PRTG-Sensor ===&lt;br /&gt;
Dieses Script muss ins Verzeichnis ''/var/prtg/scripts'' kopiert werden.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/env bash&lt;br /&gt;
# Proxmox USB-Backup Sensor für PRTG (SSH Script)&lt;br /&gt;
#&lt;br /&gt;
if [ -z &amp;quot;$1&amp;quot; ]&lt;br /&gt;
then&lt;br /&gt;
        echo &amp;quot;Benützig: backupsensor.sh &amp;lt;BACKUPDIR&amp;gt;&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
else&lt;br /&gt;
        if find $1 -mtime -3 -type f -iname '*.zst' | grep . 1&amp;gt;/dev/null&lt;br /&gt;
        then&lt;br /&gt;
                echo &amp;quot;0:0:Backup aktuell (&amp;lt;=3 Tage)&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        else&lt;br /&gt;
                echo &amp;quot;2:2:Backup zu alt (&amp;gt;3 Tage)&amp;quot;&lt;br /&gt;
                exit 0&lt;br /&gt;
        fi&lt;br /&gt;
fi&lt;br /&gt;
# EOF&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Der Sensortyp ist ''SSH Script'', als Parameter muss das Backupverzeichnis (in diesem Beispiel ''/mnt/usbackup'') mitgegeben werden.\\&lt;br /&gt;
Funktionsweise: Es wird geprüft, ob innerhalb des Backupverzeichnisses .zst-Dateien existieren, die jünger als 3 Tage sind. Wenn dies nicht der Fall ist, geht der Sensor in den Fehlerstatus.\\&lt;/div&gt;</summary>
		<author><name>Xbl</name></author>
	</entry>
</feed>