Abfragen, ob Platte gemountet ist

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von ohrobot, 22.06.2008.

  1. #1 ohrobot, 22.06.2008
    ohrobot

    ohrobot Grünschnabel

    Dabei seit:
    20.06.2008
    Beiträge:
    8
    Zustimmungen:
    0
    einfache frage (blutiger shell-skript anfänger).

    ich möchte vor dem backup prüfen ob die (usb-) backup platte gemounted ist. dazu führe ich per cron rsnapshot nicht direkt an sondern ein skript das dies vorher prüfen soll.

    Code:
    #!/bin/bash
    #Programm cron_rsnapshot.sh
    mounted=`mount | grep /dev/sdd1`
    
    if [$mounted]; then
       echo "Backup-Platte gemounted. Backup kann gestartet werden"
    
    else
        echo "Backup-Platte ist nicht gemountet."
    fi
    
    exit 0
    Ausgabe
    Code:
    ./cron_rsnapshot.sh: line 5: [/dev/sdd1: No such file or directory
    WR_ARCHIV ist nicht gemountet
    kann mir jemand einen tipp geben was ich falsch mache?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. a.b.

    a.b. Foren As

    Dabei seit:
    25.12.2007
    Beiträge:
    98
    Zustimmungen:
    0
    $mounted ist in dem Skript nicht der Exitcode, sondern die Ausgabe von "mount | grep /dev/sdd1". Eckige Klammern brauchst du nur für Vergleiche, alles andere geht ohne. (Dann müssten es sowieso zwei sein).
    Korrekt lautet das Skript einfach:
    Code:
    #!/bin/bash
    #Programm cron_rsnapshot.sh
    
    
    if mount | grep /dev/sda1; then
       echo "Backup-Platte gemounted. Backup kann gestartet werden"
    else
        echo "Backup-Platte ist nicht gemountet."
    fi
     
  4. #3 Gott_in_schwarz, 22.06.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Naja, ein [ "$mounted" ] würde einfach testen, ob die Variable mounted nonzero length hat (also "gefüllt" ist).

    Von daher haben da nur ein paar Leerzeichen gefehlt. (Die bash ist was Leerzeichen angeht sehr unbarmherzig.)
    Also statt:
    Code:
    if [$mounted]; then
    einfach:
    Code:
    if [ "$mounted" ]; then
    Die double-quotes sind zu empfehlen, falls es auch mal Leerzeichen in der Ausgabe vom Befehl geben sollte. (Dann wäre das nämlich wieder ein Syntax-Fehler) Ganz genau genommen sollten sie hier zwar "unnötig" sein, aber da sie quasi nie schaden und oft sehr hilfreich sind empfiehlt es sich als "best practice" sie einfach immer zu benutzen, es sei denn, man weiß genau was man tut.

    Die Version mit direktem grep-Befehl im if sollte man mit stdout auf /dev/null gerichtet machen, sonst wird die Ausgabe des Befehls kommentarlos auf den (Standard-)Ausgabekanal gespammt:
    Code:
    if mount | grep /dev/sda1 1>/dev/null; then
    Man kommt übrigens auch mit der ersten Version ganz ohne Variable aus:
    Code:
    if [ "`mount | grep /dev/sda1`" ]; then
    bzw:
    Code:
    if [ "$(mount | grep /dev/sda1)" ]; then
    Das wär dann aber wirklich ein wenig um die Ecke... Sieht allerdings ggf syntaktisch ansprechender aus.
     
  5. #4 ohrobot, 22.06.2008
    ohrobot

    ohrobot Grünschnabel

    Dabei seit:
    20.06.2008
    Beiträge:
    8
    Zustimmungen:
    0
    super, vielen dank! hat mir sehr weitergeholfen.
     
  6. #5 uhbuntuh, 28.06.2008
    Zuletzt bearbeitet: 28.06.2008
    uhbuntuh

    uhbuntuh Jungspund

    Dabei seit:
    26.09.2007
    Beiträge:
    12
    Zustimmungen:
    0
    und wie klappt das ganze per UUID? gibts da irgendeine möglichkeit?
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    habe hier ein backupskript gefunden, dass meine frage beantwortet hat: http://www.ahmedsoliman.com/2008/06/14/good-backup-script/

    hm... dafür wird der Befehl blkid benötigt, der nur als root verfügbar ist... gibt denn keine Möglichkeit als user? Per Label würde es über ähnliche Art uns Weise mit mount -l gehen... ist aber halt nicht eindeutig.

    Edit: Oh hat sich erledigt... /sbin/blkid tuts auch als user.
     
Thema: Abfragen, ob Platte gemountet ist
Besucher kamen mit folgenden Suchen
  1. linux prüfen ob laufwerk gemountet

Die Seite wird geladen...

Abfragen, ob Platte gemountet ist - Ähnliche Themen

  1. CDROm devices abfragen

    CDROm devices abfragen: Hallo Ich versuche per wodim -- devices, bzw. wodim --scanbus, meine CD, DVD-ROM, RAM Laufwerke zu identifizieren, leider giben obigne Befehle...
  2. Mit bash mysql in Schleife abfragen

    Mit bash mysql in Schleife abfragen: Servus @all, ich habe jetzt die ganze Nacht gekämpft, aber es will nicht wie ich mir das vorstelle. Meine Tabelle: id int(11) NOT NULL...
  3. CRON als Root soll ODBC Abfragen machen, kennt jedoch die Zugangsdaten im Cron nicht

    CRON als Root soll ODBC Abfragen machen, kennt jedoch die Zugangsdaten im Cron nicht: Hallo Gemeinde, das ist ja mal ein Titel :-) Nun gut. Schlicht und einfach, ich muss per Cron SQL Abfragen per ODBC fahren, dazu nutze ich hier...
  4. Return von system(..) aus anderem Prozess abfragen

    Return von system(..) aus anderem Prozess abfragen: Hi, ich möchte gerne in Prozess 1 den returnwert von system(command) im Prozess 2 abfragen, habe allerdings keine ahnung wie das möglich ist, hat...
  5. Tastaturstatus remote abfragen ??

    Tastaturstatus remote abfragen ??: Hallo, kennt jemand eine Möglichkeit den Status einer Tastatur remote abzufragen. Ich hab schon xkbvled und xkbwatch probiert, sehe da aber...