qqr700
Goto Top

Externe USB-Disks mounten

Hallo,

ich möchte externe USB-Festplatten an einen Rechner (SUSE 13.2.) anschließen. Sie sollen als Backup-Ziel für ein Backup-Script genutzt werden. Ist es möglich das System so zu konfigurieren, dass man
a) die USB-Platten einfach abziehen kann - OHNE ein manuelles umount durchzuführen und OHNE mögliche Datenverluste zu riskieren
b) die Platten im Betrieb einfach anschließt und das Script ungestört darauf seine Backups schreiben kann - OHNE vorher ein manuelles mount durchzuführen?

Falls das geht, hat einer von Euch einen Tipp, wie das gemacht wird? Einfach die mounts in die /etc/fstab eintragen, wird wohl nicht reichen.

Danke und Gruß
QQR700

Content-Key: 271794

Url: https://administrator.de/contentid/271794

Printed on: April 24, 2024 at 02:04 o'clock

Member: michi1983
michi1983 May 12, 2015 at 10:00:29 (UTC)
Goto Top
Hallo,

Einfach die mounts in die /etc/fstab eintragen, wird wohl nicht reichen
Doch, aber mit der UUID und nicht dem Device Name, denn der kann sich ja ändern wenn du zwischenzeitlich ein anderes Gerät an- oder abgesteckt hast.

Gruß
Member: aqui
aqui May 12, 2015 updated at 10:05:56 (UTC)
Goto Top
http://lmgtfy.com/?q=automount+usb+linux
Ist ja heute weitgehender Standard bei allen Distros.
Die Herausforderung dürfte das automatische umount sein ohne Datenverlust. Das kann ja noch nicht einmal Windows zuverlässig.
Mitglied: 114757
114757 May 12, 2015 updated at 10:28:55 (UTC)
Goto Top
Zitat von @aqui:
Die Herausforderung dürfte das automatische umount sein ohne Datenverlust. Das kann ja noch nicht einmal Windows
zuverlässig.
Das könnte ja dann sein Backup-Script erledigen, sobald das Backup fertig ist, ein umount im Script ausführen, fertig.

Ein einfaches abziehen während das Backup läuft ist sowieso absolut nicht zu empfehlen face-wink

Gruß jodel32
Member: Lochkartenstanzer
Solution Lochkartenstanzer May 12, 2015 updated at 14:14:02 (UTC)
Goto Top
Zitat von @QQR700:

a) die USB-Platten einfach abziehen kann - OHNE ein manuelles umount durchzuführen und OHNE mögliche Datenverluste zu
riskieren

Die Platte kann man imerm einfach so abziehen. Ist ja keine mechanische Verriegelugn vorhanden. face-smile

Und wenn Du Datenverlust vermeiden willst, soltlest Du Deine User darauf trimmen, daß die nachschauen, ob die Platte wirklich dismountet ist.


b) die Platten im Betrieb einfach anschließt und das Script ungestört darauf seine Backups schreiben kann - OHNE vorher
ein manuelles mount durchzuführen?

Geht im Prinzip ganz einfach. Du baust in dein Skript ein, daß er nach der uuid des Filesystems sucht und mountet und nach dem Backup wieder "auswirft".

Wenn Du nun Deine User drauf trimmst, daß die die Platte nur dann abziehen dürfen, wenn die mindestens eine Minute lang nicht geblilnkt hat, soltlest Du von Datenvelusten einigermaßen sicehr sein.

Ein grundgerüst könten so aussehen:

  • Prüfe ob /dev/disk-by-uuid/UUID-DER-USB-Platte da ist.
  • Mounte UUID-DER-USB-Platte nach /media/backup-verzeichnis
  • Kopiere Deine Backup dahin
  • Umount /media/backup-verzeichnis


Und schreiben von logs und statusmeldung nicht vergessen.

ggf. kannst Du ja den Rechner noch das abspielen lassen, wenn das Backup efrtig ist.

lks
Member: tgkpln
Solution tgkpln May 12, 2015 updated at 14:14:09 (UTC)
Goto Top
Ich habe mir vor einigen Jahren folgende Lösung einfallen lassen:
1. User steckt die Festplatte an den Linux-Rechner (es Piept 3 mal)
2. Backup wird automatisch durchgeführt (mit rsnapshot)
3. umount wird nach Abschluss des Backups ausgeführt, es piept wieder und der User bekommt eine Mail

Vorsicht: Seit SuSE 11.3 hat sich einiges in der Umgebung geändert. Es könnte sein, dass du hier Anpassungen vornehmen musst. Aber es ist ein Ansatz.

Folgende Lösung funktioniert unter OpenSuSE 11.3 hervoragend:
cat backup1.sh

\#!/bin/bash
\# Script zum erstellen von Backups
\# mit rsnapshot
\# und zum generieren von Meldungen
\# mit Mail
\#
\# 2008-10-21
\# erstellt TG

\# mail -a /var/log/rsnapshot.log

startzeit=$(date +%d.%m.%Y_%T)
echo -e "\a" >/dev/tty6
sleep 1
echo -e "\a" >/dev/tty6
sleep 1
echo -e "\a" >/dev/tty6
sleep 1

mount /dev/sdb1 /media/usbdisk >>/var/log/rsnapshot.monatlich.log
sleep 1

rueckgabe=$( rsnapshot -c /etc/rsnapshot.monatlich.conf monatlich)
\#rueckgabe=$(pwd)

endzeit=$(date +%d.%m.%Y_%T)

echo "\n
monatliches Backup wurde durchgefuehrt
Startzeit:"$startzeit"
Rueckgabe:"$rueckgabe "
Endzeit: "$endzeit "
Die Logdatei ist im Anhang"|mail -s "Datensicherung rsnapshot monatlich" -a /var/log/rsnapshot.monatlich.log -c info@weisichnich.de tgaert@weisichnich.de

echo -e "\a" >/dev/tty6
sleep 1
echo -e "\a" >/dev/tty6
sleep 1
echo -e "\a" >/dev/tty6
sleep 1
umount /media/usbdisk


server:/etc/udev/rules.d # cat 62-Backup.rules
\###### TG
\# Backupregeln fuer monatliches
\# und woechentliches Backup

BUS=="usb",
\# monatlich
\# woechentlich NEU nach Geraetewechsel 2013-09-16
KERNEL=="sdb1",SYSFS{serial}=="20130427020425",SYMLINK+="usbdisk",RUN+="/usr/local/bin/backup_woechentlich.sh"
\#KERNEL=="sdb1",SYSFS{serial}=="S13PJ90Q958979",SYMLINK+="usbdisk",RUN+="/usr/local/bin/backup_woechentlich.sh"
\# monatlich NEU nach Geraetewechsel 2013-09-16
KERNEL=="sdb1",SYSFS{serial}=="20130428015391",SYMLINK+="usbdisk",RUN+="/usr/local/bin/backup1.sh"

Achtung: Die Backslashes habe ich nur für das Quoting hier im Forum hinzugefügt. Das sind normale Kommentarzeilen.

Grüße
Member: Lochkartenstanzer
Lochkartenstanzer May 12, 2015 updated at 13:20:20 (UTC)
Goto Top
Zitat von @tgkpln:


mount /dev/sdb1 /media/usbdisk >>/var/log/rsnapshot.monatlich.log
sleep 1


Große Fallen:

  • Das Drive kann mal auch einen anderen Buchstaben bekommen, weil da "irgendwas" im Weg ist.
  • Du prüfst den Erfolg nicht ab, ob das Drive ordentlich gemountet wurde. Ggf. ballerst Du Dir Dein lokales Filesystem mit dem vermeintlichen Backup voll und es wird kein richtiges Backup auf dem Laufwerk erstellt.

lks

PS: In die Fallen bin ich vor Jahren auch mal getappt.
Member: tgkpln
tgkpln May 12, 2015 at 13:31:13 (UTC)
Goto Top
Ob die Platte richtig gemountet ist, prüfe ich mit rsnapshot. Das kann man so konfigurieren, dass es nicht das lokale FS vollballert. (no_create_root 1)
Das mit dem anderen Buchstaben, kann ich nicht nachvollziehen. Es ist klar festgelegt, wie gemountet wird.
Member: QQR700
QQR700 May 12, 2015 at 14:57:52 (UTC)
Goto Top
Vielen Dank für das Beispiel-Script! face-smile Die Piep-Töne sind eine prima Idee ;) Eine Frage zum zweiten Teil. Was macht das udev? ich hab mir das mal angesehen, werd aber nicht so recht schlau draus. Das sind wohl Regeln, aber was passiert da genau? Meine Vermutung wäre: wenn das System erkennt, dass eine Platte mit der ID 201304... eingesteckt wird, starte das Script /usr/local/bin/backup...
Kommt das hin?
Member: QQR700
QQR700 May 12, 2015 at 15:03:34 (UTC)
Goto Top
Der Vorschlag, das mount/umount in das BackupScript zu integrieren, wurde jetzt mehrfach angesprochen. Ich bin nun bei meinen Recherchen über den automounter und /etc/auto.master gestolpert. Ist das Konstrukt "wackelig" und besser zu meiden? Oder was würde dafür sprechen, das mounten/umounten vom Script selbst machen zu lassen?
Member: Lochkartenstanzer
Lochkartenstanzer May 12, 2015 at 16:03:05 (UTC)
Goto Top
Zitat von @tgkpln:

Das mit dem anderen Buchstaben, kann ich nicht nachvollziehen. Es ist klar festgelegt, wie gemountet wird.

Ich habe die Erfahrung gemacht, daß ein USB-Laufwerk sich nicht immer dran hält als /dev/sdb zu erscheinen, wenn man davon ausgeht, daß es immer das Laufwerk /dev/sdb sein wird.

Es braucht bloß im falschen Moment ein Lock auf /dev/sdb zu sein und schon ist es beim nächsten Anstecken ein /dev/sdc (oder etwas ganz anderes).

Deswegen sollte man auf die uuid prüfen, die einigermaßen zuverläßig unique ist.

lks
Member: aqui
aqui May 12, 2015 at 18:05:58 (UTC)
Goto Top
Das ist lesenswert dazu und erklärt es recht genau:
http://wiki.ubuntuusers.de/udev
Member: tgkpln
tgkpln May 13, 2015 at 12:53:54 (UTC)
Goto Top
Hallo,

das System erkennt anhand dieses Strings: SYSFS{serial}=="20130427020425" , dass genau diese Gerät angeschlossen wird, mountet das Gerät nach /media/usbdisk und startet das Backupscript /usr/local/bin/backup_woechentlich.sh .

Grüße
Member: aqui
aqui May 13, 2015 at 15:48:43 (UTC)
Goto Top
Achtung: Die Backslashes habe ich nur für das Quoting hier im Forum hinzugefügt. Das sind normale Kommentarzeilen.
Dazu kann man wunderbar die Code Tags hier verwenden ! face-smile
Formatting instructions in the posts
Member: tgkpln
tgkpln May 13, 2015 at 16:38:44 (UTC)
Goto Top
Danke, das war die Information, die gefehlt hat.
Member: aqui
aqui May 13, 2015 at 21:36:11 (UTC)
Goto Top
Funktioniert auch noch nachträglich mit Klick auf Mehr --> Bearbeiten beim Thread face-wink