Mit DD Cron Job für DD auf Netzlaufwerk erstellen
Hallo Zusammen,
komme eigentlich mehr aus der Windows Welt, jedoch habe ich mich mal daran gemacht, ein Debian zu installieren als Apache Webserver usw. für OwnCloud. Habe ich mich auch da durch gebissen, jedoch hänge ich jetzt an der Sicherungstrategie. Mein Erster Gedanke war, warum Linux das Backup machen lassen, also via Samba und mit Root berechtigungen Windows via UNC Pfad den Inhalt von SDA1 spricht Root kopieren lassen. Irgendwas sagt mir jedoch innerlich, dass dies kein gute Lösung ist, kann nicht mal genau sagen warum
!
Also ich mich DD beschäftigt und folgendes gemacht:
dd if=/dev/sda1 | gzip > ~/image-compress_sda1.img.gz
Jetzt Frage ich mich, es muss doch möglich sein das Ganze zum ersten zu automatisieren cronjob und dann das Image direkt auf einer Windows Freigabe zu speichern oder?
Zum Zweiten habe ich mir eine GUI heruntergeladen (/usr/bin/gnome-schedule), damit ich mir die Cronjobs wie unter Windows erstellen und abarbeiten kann. Jedoch weiss ich nicht wie ich das ganze schreiben muss damit z.B. als Root ausgeführt wird?
Ich hoffe auf Hilfe Danke ....
komme eigentlich mehr aus der Windows Welt, jedoch habe ich mich mal daran gemacht, ein Debian zu installieren als Apache Webserver usw. für OwnCloud. Habe ich mich auch da durch gebissen, jedoch hänge ich jetzt an der Sicherungstrategie. Mein Erster Gedanke war, warum Linux das Backup machen lassen, also via Samba und mit Root berechtigungen Windows via UNC Pfad den Inhalt von SDA1 spricht Root kopieren lassen. Irgendwas sagt mir jedoch innerlich, dass dies kein gute Lösung ist, kann nicht mal genau sagen warum
Also ich mich DD beschäftigt und folgendes gemacht:
dd if=/dev/sda1 | gzip > ~/image-compress_sda1.img.gz
Jetzt Frage ich mich, es muss doch möglich sein das Ganze zum ersten zu automatisieren cronjob und dann das Image direkt auf einer Windows Freigabe zu speichern oder?
Zum Zweiten habe ich mir eine GUI heruntergeladen (/usr/bin/gnome-schedule), damit ich mir die Cronjobs wie unter Windows erstellen und abarbeiten kann. Jedoch weiss ich nicht wie ich das ganze schreiben muss damit z.B. als Root ausgeführt wird?
Ich hoffe auf Hilfe Danke ....
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 273010
Url: https://administrator.de/forum/mit-dd-cron-job-fuer-dd-auf-netzlaufwerk-erstellen-273010.html
Ausgedruckt am: 11.05.2025 um 06:05 Uhr
26 Kommentare
Neuester Kommentar

Moin,
das ist problemlos möglich.
1. Windows Freigabe mounten:
https://www.thomas-krenn.com/de/wiki/Windows_Freigabe_unter_Linux_mounte ...
2. Backup Script erstellen:
3. Script als Root in die Crontab eintragen
Das Script wird so täglich 21 Uhr ausgeführt und speichert das Image mit dem aktuellen Datum weg.
Eventuell reicht ja auch einfaches packen und weg kopieren der Daten.
VG
Val
das ist problemlos möglich.
1. Windows Freigabe mounten:
https://www.thomas-krenn.com/de/wiki/Windows_Freigabe_unter_Linux_mounte ...
2. Backup Script erstellen:
#!/bin/bash
DATUM=$(date "+image_backup-%Y-%m-%d.img.gz")
BPATH="/mnt"
dd if=/dev/sda1 | gzip > $BPATH/$DATUM
3. Script als Root in die Crontab eintragen
sudo -s # zum Root machen
crontab -e # crontab Bearbeiten
0 21 * * * /home/username/backup_script.sh
Eventuell reicht ja auch einfaches packen und weg kopieren der Daten.
VG
Val

PS: Ist es normal unter Linux das man beim Mounten das Netzlaufwerk nicht sieht? Er hat mich nach Passwort gefragt aber ansonsten ist nicht sichtbar! Beim erneuten ausführen sagt er aber ist besetzt! Ist das Mounten dauerhaft?
Mach mal eine CLI auf und gib "df -h" ein, da müsstest du die verbundenen Laufwerke sehen.Ein Mount ist bis zum Neustart permanent, soll die Freigabe auch bei einem Neustart verbunden werden, müsstest du das in der "/etc/fstab" vermerken.
bei cronetab -e wird eine tmp Datei unter /tmp/... erstellt! Ergo ist die cronetab nicht vorhanden, wohin soll ich diese speichern? Auf etc gibt es auch noch ein paar Ordner die heissen cron.daily usw.
Die tmp Datei wird nur beim editieren verwendet. Speicherst du diese Datei ab wird sie nach "/var/spool/cron/crontabs/username" installiert.Das Ergebnis kannst du dir mit "crontab -l" anzeigen lassen.
VG
Val

habe meinen Teil ganz nach unten geschrieben
Richtig!Muss vieleicht mit dazu sagen, dass ich die ganze zeit die config Dateien der Maschine mit Win-SCP bearbeite tue mich sehr schwer mit der shell vi nano und wie die Dinger heissen..
Das solltest du dir wirklich angewöhnen! Der nano ist recht einfach zu lernen, da ist vi um einiges garstiger. Hab gerade nochmal geschaut, du gibst einfach alles so ein wie du es brauchst und verwendest bei "^O" -> "STRG+O" und bei "^X" -> "STRG+X".
m h dom mon dow user command
Mhh interessant, bei meinem Test Ubuntu ist die "user" Option gar nicht drin. Welches Debian verwendest du denn?Habe df -h ausgeführt steht drin! Was muss ich den in die "/etc/fstab" eintragen damit der drin bleibt?
http://wiki.ubuntuusers.de/Samba_Client_cifs#GrundstrukturGenerell ist das Ubuntuusers Wiki eine super Anlaufstelle für Linuxanfänger!
Außerdem solltest du dein Script noch ausführbar machen (falls nicht schon geschehen):
chmod +x /pfad/zum/script.sh
VG
Val
Moin,
es geht ja scheinbar langsam voran,
der User-Name in der crontab ist bei der eigenen Tabelle nicht nötig (crontab -e), bei /etc/crontab aber vorgesehen.
man crontab
hilft da;
generell hat dieses Sichern einen kleinen und einen großen Nachteil:
klein: auch die unbenutzten Blöcke der Partition werden mit gesichert
groß: das Dateisystem ist nicht konsistent, was während des Sicherns passiert, hinterläßt Müll im Dateisystem.
Dafür gibt es mehrere Ansätze einer Lösung:
- Ignorieren
: vielleicht ist nicht viel schreibend los, jede zweite, dritte Sicherung ist hinreichend konsistent (frühere aufheben)
- Vorheriges remounten als "readonly": mount /dev/sda1 / -o remount,ro - das geht aber im laufenden Betrieb auf / meist nicht ohne weiteres
- Verwenden eines Snapshot-fähigen Dateisystems, z.B. Btrfs als / und dann statt dd gleich den Snapshot rauskopieren
- Sichern des Dateisystems statt des Images: tar, cpio - unter Berücksichtigung nur der relevanten Pfade: z.B. /etc, /usr, /var - nicht /proc - da liegt auch der Arbeitsspeicher...
- Offline-Sicherung: alle Jahre mit Live-CD/USB booten und das dd-Image machen, außer der Zeit nur die veränderten Daten wieder mit tar.
HG
Mark
es geht ja scheinbar langsam voran,
der User-Name in der crontab ist bei der eigenen Tabelle nicht nötig (crontab -e), bei /etc/crontab aber vorgesehen.
man crontab
hilft da;
generell hat dieses Sichern einen kleinen und einen großen Nachteil:
klein: auch die unbenutzten Blöcke der Partition werden mit gesichert
groß: das Dateisystem ist nicht konsistent, was während des Sicherns passiert, hinterläßt Müll im Dateisystem.
Dafür gibt es mehrere Ansätze einer Lösung:
- Ignorieren
- Vorheriges remounten als "readonly": mount /dev/sda1 / -o remount,ro - das geht aber im laufenden Betrieb auf / meist nicht ohne weiteres
- Verwenden eines Snapshot-fähigen Dateisystems, z.B. Btrfs als / und dann statt dd gleich den Snapshot rauskopieren
- Sichern des Dateisystems statt des Images: tar, cpio - unter Berücksichtigung nur der relevanten Pfade: z.B. /etc, /usr, /var - nicht /proc - da liegt auch der Arbeitsspeicher...
- Offline-Sicherung: alle Jahre mit Live-CD/USB booten und das dd-Image machen, außer der Zeit nur die veränderten Daten wieder mit tar.
HG
Mark

Moin,
gerade nochmal getestet und funktioniert unter Ubuntu 14.04 bestens.
Ich hoffe die Nummern hast du nicht im fertigen Script drin?
Also so:
VG
Val
gerade nochmal getestet und funktioniert unter Ubuntu 14.04 bestens.
Ich hoffe die Nummern hast du nicht im fertigen Script drin?
Also so:
#!/bin/bash
DATUM=$(date "+image_backup-%Y-%m-%d.img.gz")
BPATH="/mnt"
dd if=/dev/sda1 | gzip > $BPATH/$DATUM
VG
Val
sorry, jetzt bin ich erst wieder drinn: gzip verlangt ein File, sonst:
gzip -
um dann die Ausgabe weiterzugeben, also:
dd if=/dev/sda1 | gzip - > $BPATH/$DATUM
bzip2 kann ohne.
Nicht debian-Spezifisch, sondern GnuZip.
bzip2 ist erheblich langsamer und braucht mehr Speicher, gzip komprimiert schlechter, xz - als neuer Shooting-Star - ist streamfähig...
HG
Mark
gzip -
um dann die Ausgabe weiterzugeben, also:
dd if=/dev/sda1 | gzip - > $BPATH/$DATUM
bzip2 kann ohne.
Nicht debian-Spezifisch, sondern GnuZip.
bzip2 ist erheblich langsamer und braucht mehr Speicher, gzip komprimiert schlechter, xz - als neuer Shooting-Star - ist streamfähig...
HG
Mark
gzip möchte gemäß man-Page einen Dateinamen haben, um etwas packen zu können - also gedachter Routine-Fall:
gzip Datei
führt dazu, daß Datei gar nicht mehr daliegt, sondern nun
Datei.gz
rumliegt.
also muß man zur Verwendung als "Filter" gzip einen Alibi-Filenamen geben: -
dd if=/dev/sda1 | gzip - > meineDatei.dd.gz
diese Endungen wären übrigens ganz schöne Konvention, damit andere wissen, womit gearbeitet wurde.
Ist die Festplatte eher langsam, aber genug Arbeitsspeicher da:
dd if=/dev/sda1 bs=10M | gzip - > meineDatei.dd.gz
gzip Datei
führt dazu, daß Datei gar nicht mehr daliegt, sondern nun
Datei.gz
rumliegt.
also muß man zur Verwendung als "Filter" gzip einen Alibi-Filenamen geben: -
dd if=/dev/sda1 | gzip - > meineDatei.dd.gz
diese Endungen wären übrigens ganz schöne Konvention, damit andere wissen, womit gearbeitet wurde.
Ist die Festplatte eher langsam, aber genug Arbeitsspeicher da:
dd if=/dev/sda1 bs=10M | gzip - > meineDatei.dd.gz
#!/bin/bash
ZIEL=$(date "+/mnt/image_backup-sda1-%Y-%m-%d.dd.gz")
dd if=/dev/sda1 bs=10M | gzip - > $ZIEL
oder noch kürzer:
#!/bin/bash
dd if=/dev/sda1 bs=10M | gzip - > $(date "+/mnt/image_backup-sda1-%Y-%m-%d.dd.gz")
oder noch kürzer als root:
crontab - e
15 0 * * * dd if=/dev/sda1 bs=10M | gzip - > $(date "+/mnt/image_backup-sda1-%Y-%m-%d.dd.gz")
dabei geht aber das Mounten etwas verloren...
Edit: @119944: stimmt, ZIEL ist zielführend.
ZIEL=$(date "+/mnt/image_backup-sda1-%Y-%m-%d.dd.gz")
dd if=/dev/sda1 bs=10M | gzip - > $ZIEL
oder noch kürzer:
#!/bin/bash
dd if=/dev/sda1 bs=10M | gzip - > $(date "+/mnt/image_backup-sda1-%Y-%m-%d.dd.gz")
oder noch kürzer als root:
crontab - e
15 0 * * * dd if=/dev/sda1 bs=10M | gzip - > $(date "+/mnt/image_backup-sda1-%Y-%m-%d.dd.gz")
dabei geht aber das Mounten etwas verloren...
Edit: @119944: stimmt, ZIEL ist zielführend.

Moin broecker,
Warum funktioniert das dann unter Ubuntu wie oben beschrieben?
https://wiki.ubuntuusers.de/dd#Image-einer-Partition-sichern
VG
Val
ZIEL=$(date "+/mnt/image_backup-sda1-%Y-%m-%d.dd.gz")
dd if=/dev/sda1 bs=10M | gzip - > $DATUM
Sollte dann wenn schon auch unten $ZIEL heißen.dd if=/dev/sda1 bs=10M | gzip - > $DATUM
Warum funktioniert das dann unter Ubuntu wie oben beschrieben?
https://wiki.ubuntuusers.de/dd#Image-einer-Partition-sichern
VG
Val
ZIEL=$(date "+/media/backup211/image_backup-sda1-%Y-%m-%d.dd.gz")
dd if=/dev/sda1 bs=10M | gzip - > $ZIEL
ersetze jedes DATUM durch ZIEL,
das $ zur Ausgabe einer Variablen - die nur als Konvention groß geschrieben,
bei der Eingabe aber kein $ - so geht bash (wie auch sh)
wie lange man über einen Einzeiler sprechen kann...
dd if=/dev/sda1 bs=10M | gzip - > $ZIEL
ersetze jedes DATUM durch ZIEL,
das $ zur Ausgabe einer Variablen - die nur als Konvention groß geschrieben,
bei der Eingabe aber kein $ - so geht bash (wie auch sh)
wie lange man über einen Einzeiler sprechen kann...