Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Ausgaben v. ls oder find unterdruecken

  1. #1
    Gast

    Post Ausgaben v. ls oder find unterdruecken

    Hi,
    ich möchte in einem Script alle Dateien mit bestimmten Rechten vor der Verarbeitung wegkopieren. Deshalb weil während des Scriptlaufs im ausgangsverzeichnis noch Dateien entstehen können, die ich aber noch nicht benutzen kann.
    Die benutzbaren Dateien habe 0666 als Rechtemuster. Ich habe also einen Befehl "mv $(find *.tif -perm 0666) /VERZEICHNIS/". Dieser Befehl liefert wenn keine Datei da ist eine Fehlerbeschreibung für den mv, welche per Mail des Cronjobs versandt wird.
    Der Fehlerkanal ist auf /dev/null umgeleitet.
    Ich habe dann davor noch:
    ls *.tif
    [ $? != 0 ] && exit 0
    probiert, aber dann bekomme ich die Mail für ls.
    Was kann ich tun, daß dies aufhört?
    MfG,
    Werner

  2. #2
    Senior Mitglied
    Registriert seit
    24.08.1999
    Beiträge
    132

    Post

    Sorry da blick ich nich ganz durch!

    Oder meinst du das?

    ls *.tif 2>/dev/null

  3. #3
    Gast

    Post

    Hi,
    o.k., etwas mehr vom Hintergrund.
    Ich habe einen Linuxrechner mit Hylafax, der Faxe für die Firma empfangen soll. Während des Faxempfangs hat die Datei 0600 Rechteschema. Nach Abschluß des Faxempfangs hat die Datei 0666.
    Da ich unter Linux eine Datei tatsächlich verschieben kann, obwohl der Faxserver gerade in diese schreibt, bekomme ich mit meinem Script welches zu bestimmten Zeiten läuft Probleme.
    Dieses prüft nicht, ob der Faxserver aktiv ist und/oder eine Datei eigentlich belegt.

    Deshalb sollen am Anfang meines Scripts alle angekommenen Faxe, die vollständig empfangen sind, also Rechteschema 0666 haben in ein anderes Verzeichnis verschoben werden und dann von dort aus zu pdf`s gemacht werden usw.

    Den Befehl, den ich eigentlich zum Verschieben verwenden wollte war:
    mv $(find *.tif -perm 0666) /VERZEICHNIS/

    nur: wenn im Verzeichnis keine *.tif-Datei ist, bekomme ich bei jedem CRON-Lauf eine Fehlermeldung.

    Diese wirft den Hilfetext von mv aus.

    Dann habe ich probiert, dies dadurch zu umgehen, daß ich vor dem mv mit:
    ls *.tif
    [ $? != 0 ] && exit 0

    abfrage, ob ein tif vorhanden ist, wenn nicht , soll ein exit gemacht werden.

    Jetzt bekomme ich ein Mail für den ls :-( .

    mit exec habe ich den Fehlerkanal nach /dev/null umgeleitet, glaube ich zumindest.

    Kann ich die Meldungen abstellen?
    MfG,
    Wernr

  4. #4
    Gast

    Post

    Hi,
    o.k., etwas mehr vom Hintergrund.
    Ich habe einen Linuxrechner mit Hylafax, der Faxe für die Firma empfangen soll. Während des Faxempfangs hat die Datei 0600 Rechteschema. Nach Abschluß des Faxempfangs hat die Datei 0666.
    Da ich unter Linux eine Datei tatsächlich verschieben kann, obwohl der Faxserver gerade in diese schreibt, bekomme ich mit meinem Script welches zu bestimmten Zeiten läuft Probleme.
    Dieses prüft nicht, ob der Faxserver aktiv ist und/oder eine Datei eigentlich belegt.

    Deshalb sollen am Anfang meines Scripts alle angekommenen Faxe, die vollständig empfangen sind, also Rechteschema 0666 haben in ein anderes Verzeichnis verschoben werden und dann von dort aus zu pdf`s gemacht werden usw.

    Den Befehl, den ich eigentlich zum Verschieben verwenden wollte war:
    mv $(find *.tif -perm 0666) /VERZEICHNIS/

    nur: wenn im Verzeichnis keine *.tif-Datei ist, bekomme ich bei jedem CRON-Lauf eine Fehlermeldung.

    Diese wirft den Hilfetext von mv aus.

    Dann habe ich probiert, dies dadurch zu umgehen, daß ich vor dem mv mit:
    ls *.tif
    [ $? != 0 ] && exit 0

    abfrage, ob ein tif vorhanden ist, wenn nicht , soll ein exit gemacht werden.

    Jetzt bekomme ich ein Mail für den ls :-( .

    mit exec habe ich den Fehlerkanal nach /dev/null umgeleitet, glaube ich zumindest.

    Kann ich die Meldungen abstellen?
    MfG,
    Wernr

  5. #5
    Registrierter Benutzer
    Registriert seit
    13.12.1999
    Ort
    Landshut
    Beiträge
    80

    Talking

    Hallo Werner

    Teste einfach mal:

    mv $(find *.tif -perm 0666 2> /dev/null) /VERZEICHNIS/ 2> /dev/null

    geht zwar sicher irgendwie schöner aber ich glaube es funzt so. 1. Fehlerumleitung für find und die 2. für mv

    Gruß Rupert

    [Dieser Beitrag wurde von rup am 18. Dezember 2000 editiert.]

  6. #6
    Senior Mitglied
    Registriert seit
    24.08.1999
    Beiträge
    132

    Post

    Hi,

    das Problem ist zwar eigentlich schon geloest. Aber als Anmerkung fuer guten Programmierstil(...wer dafuer Zeit hat):

    Fehler nicht erst auftreten lassen wenn moeglich, hier treten zwei Fehler auf den einen kann man verhinden:

    FILES=$(find /VERZ -name "*.tif" -perm 0666 2> /dev/null)
    [ X$FILES != X ] && mv $FILES /VERZ/

    mfg Tobias

  7. #7
    Registrierter Benutzer
    Registriert seit
    20.10.1999
    Ort
    Dresden
    Beiträge
    255

    Post

    Mit exec geht's so:

    exec 2>/ven/null

    Das am Anfang des Skripts und alle Fehlermeldungen landen im Nirwana

    Thomas

  8. #8
    Gast

    Post

    Hallo,
    vielen Dank für Eure Antworten,
    inzwischen habe ich bemerkt, daß meine Probleme wohl davon kommen, daß ich die Befehle aus Versehen vor dem "exec 2>/dev/null" geschrieben.

    Tobias:
    der Befehl [ X$FILES != X ] && mv $FILES /VERZ/
    bewirkt, daß in der Klammer nichts Leeres steht, oder?

    Grüße,
    Werner

  9. #9
    Senior Mitglied
    Registriert seit
    24.08.1999
    Beiträge
    132

    Post

    Wenn FILES nicht leer ist fuehre aus "mv ..."

Lesezeichen

Berechtigungen

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