Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Shellscript, Ausgabe nicht nachvollziehbar.

  1. #1
    Shell-User Avatar von zyrusthc
    Registriert seit
    Jan 2004
    Beiträge
    6.340

    Shellscript, Ausgabe nicht nachvollziehbar.

    Vorab das Script verhindert ein Hardwareseitiges Standby einer externen Festplatte.
    Warum bekomme ich bei meinem Script neuerdings diese Meldung? Was hat die df Abfrage mit /run/user/1000/doc zu tun?

    Code:
     #!/bin/sh
     #Autor: Zyrusthc
     #Date: 29.10.2018
     #Disk Sleep Blocker
     
     UUID="/dev/disk/by-uuid/A6D8BBCCD8BB994F"
     MOUNTPOINT="/run/media/zyrus/MyDrive"
     CHECKTIME="30"
     
     while true; do 
       if ( ls -l $UUID 2> /dev/null > /dev/null); then 
          if ( df | grep $MOUNTPOINT 2> /dev/null > /dev/null ); then
            free > $MOUNTPOINT/data.tmp && rm -f $MOUNTPOINT/data.tmp
            sleep $CHECKTIME
          else
            echo "Drive is not mount!"
            sleep $CHECKTIME
          fi
       else 
          echo "Drive Power Off"
          sleep $CHECKTIME
       fi; 
     done
    Code:
    [zyrus@workstation ~]$ hdd_suspend_stopper.sh 
    df: /run/user/1000/doc: Die Operation ist nicht erlaubt
    Notebook: Lenovo Z570 CoreI7
    Workstation: Core2Quad Q6700 - ASUS P5WDG2-WS Pro - 8800GT - 4GB-DDR2/800 - 4x500GB=RAID1 - 120GB SSD - Innovatek Wakü - 27Widescreen/AcerTFT
    Server: IBM X345 + Netfinity 5000

    http://zyrusthc-linux.no-ip.org

  2. #2
    Registrierter Benutzer Avatar von ThorstenHirsch
    Registriert seit
    Nov 2002
    Beiträge
    6.558
    Scheint ein Bug in der gnulib gewesen zu sein: https://askubuntu.com/a/1354171
    ¡Nuestro amigo... el Computador!

  3. #3
    Shell-User Avatar von zyrusthc
    Registriert seit
    Jan 2004
    Beiträge
    6.340
    Gebe ich dem df ein sudo mit bleibt der Fehler aus.
    Notebook: Lenovo Z570 CoreI7
    Workstation: Core2Quad Q6700 - ASUS P5WDG2-WS Pro - 8800GT - 4GB-DDR2/800 - 4x500GB=RAID1 - 120GB SSD - Innovatek Wakü - 27Widescreen/AcerTFT
    Server: IBM X345 + Netfinity 5000

    http://zyrusthc-linux.no-ip.org

  4. #4
    Registrierter Benutzer
    Registriert seit
    Jun 2004
    Beiträge
    1.423
    Füge mal nach der Zeile "#Disk Sleep Blocker" ein
    Code:
    set -x
    ein. Evtl. sieht man dann mehr.

    Ich hab den Fehler auch, wenn ich ausführe:
    Code:
    df /run/user/1000/doc
    df: /run/user/1000/doc: Die Operation ist nicht erlaubt
    obwohl das Verzeichnis mir gehört.

    Mal was anderes: wird die externe Festplatte nur an einem diesen Rechner benutzt?
    Dann könnte man noch versuchen, via hdparm den Suspend in der HW zu deaktivieren.

    Nachtrag: oder mit Hersteller HDD-Tools?
    Geändert von temir (22.01.22 um 19:10 Uhr) Grund: Nachtrag

  5. #5
    Registrierter Benutzer
    Registriert seit
    Jan 2008
    Beiträge
    2.551
    Zweierlei Fehler in den if-Bedingungen:

    1. Mit dem Code :
    Code:
    if ( df | grep $MOUNTPOINT 2> /dev/null > /dev/null ); then
    meinst Du wahrscheinlich, if solle die AUSGABE von df auswerten.
    Dazu brauchst Du, dass das Kommando ausgeführt wird und die Ausgabe zurück gegeben wird.
    Entweder die Backquotes (`...`) oder "$( ... )".

    2. Es muss gesichert werden, das die Bedingung nicht leer wird.
    Liefert Dein grep nichts, dann ist die Bedingung leer, deshalb Dein Fehler

    Mein Workaround:
    Code:
    if (  -n `df | grep $MOUNTPOINT 2> /dev/null > /dev/null` ); then

  6. #6
    Registrierter Benutzer
    Registriert seit
    Jun 2004
    Beiträge
    1.423
    @Aqualung: ich gehe davon aus, dass das IF nach dem true/false prüft: true == 0, false == 1.

    Wenn der grep was findet, liefert er RC=0, wenn nichts gefunden wird: RC=1.
    Kannst selbst mit "echo $?" nach dem grep prüfen.

    Und mit den Klammern () wird dem IF mitgeteilt, dass der Ausdruck innerhalb der Klammern als ganzes zu werten ist.
    Falls ich falsch liegen sollte, bitte korrigieren.

Ähnliche Themen

  1. Suse 10.3 hängt sich auf, nicht nachvollziehbar...
    Von Schlüpfknoten im Forum System installieren und konfigurieren
    Antworten: 12
    Letzter Beitrag: 16.07.08, 07:33
  2. ausgabe bearbeiten (shellscript)
    Von downtown im Forum Linux Allgemein
    Antworten: 13
    Letzter Beitrag: 04.03.04, 15:07
  3. Mozilla hängt sich auf unter Fedora Core 1 (nachvollziehbar) - Hilfe
    Von darkmoon.2xt.de im Forum Anwendungen Allgemein, Software
    Antworten: 5
    Letzter Beitrag: 02.03.04, 15:23
  4. Antworten: 10
    Letzter Beitrag: 15.11.03, 09:53
  5. In Shellscript auf Ausgabe prüfen
    Von mowses im Forum Anwendungen Allgemein, Software
    Antworten: 2
    Letzter Beitrag: 03.11.03, 06:33

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •