Bash und .netrc

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von -eraz-, 25.08.2008.

  1. #1 -eraz-, 25.08.2008
    Zuletzt bearbeitet: 25.08.2008
    -eraz-

    -eraz- Tripel-As

    Dabei seit:
    27.03.2008
    Beiträge:
    151
    Zustimmungen:
    0
    Hi ihr,

    ... leider habe ich schon wieder mit meinem störrischen Patienten zu tun. Folgendes Problem: Ich habe ein Skript, dass von einem FTP Daten runterlädt und diese dann automatisch weiter verarbeitet. Nun ist es so, dass ich das Skript in ein anderes Verzeichnis schieben musste und seitdem funktioniert das ganze per Cronjob nicht mehr (allerdings schon wenn ich es mit der Hand ausführe). Folgende ausschlaggebende Zeile wird in das Logfile von Cron geschrieben:

    Code:
    Name ([I]hostname.net[/I]:root): PASS command failed
    Wie gesagt: Vor der Verlegung des Skripts in ein anderes Verzeichnis funktionierte das einwandfrei!! Auch wenn ich das Skript per Hand starte funktioniert es!

    Bin grad voll sauer. X(

    :hilfe:

    PS: Handelt sich übrigens um ein RedHat Enterprise v5
     
  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. Dvergr

    Dvergr Tripel-As

    Dabei seit:
    10.10.2006
    Beiträge:
    180
    Zustimmungen:
    0
    Darf man wissen, wie das Skript aussieht?
     
  4. #3 -eraz-, 25.08.2008
    Zuletzt bearbeitet: 25.08.2008
    -eraz-

    -eraz- Tripel-As

    Dabei seit:
    27.03.2008
    Beiträge:
    151
    Zustimmungen:
    0
    Ja zum Teil, kann hier nicht alles reinposten weil ich's für die Firma gemacht habe, aber der ausschlaggebende Teil dürfte wohl reichen:
    Code:
    ftp hostname.net 3021 <<FTP
        cd 'PAVD.KEEP.DTPRDWCL'
        lcd $PRODDIR
        ls 'PAVD.KEEP.DTPRDWCL.*' $PRODDIR/inhalt
        y
        quit
    FTP
    
    Hab jetzt mal testweise das Skript wieder in den alten Pfad zurück geschoben -> geht nicht mehr. :(

    Wie gesagt: Per Hand funktionierts!

    /edit
    Starte nun das ganze mit ftp -v ... hier kommen unterschiedliche Ausgaben zustande (schon vor der Authentifizierung:

    Per Cronjob:
    Code:
    Connected to hostname.net (<ipAdresse>).
    220-FTPA1 IBM FTP CS V1R7 at ftpHOSTNAME, 08:34:56 on 2008-08-25.
    220 Connection will close if idle for more than 5 minutes.
    Name (hostname.net:root): 331 Send password please.
    530 PASS command failed
    Remote system type is MVS.
    ?Invalid command
    221 Quit command received. Goodbye.
    
    Per Hand:
    Code:
    Connected to hostname.net.
    220-FTPA1 IBM FTP CS V1R7 at ftpHOSTNAME, 08:36:07 on 2008-08-25.
    220 Connection will close if idle for more than 5 minutes.
    534 Server is not willing to accept security mechanism
    504 Server does not understand the specified mechanism
    KERBEROS_V4 rejected as an authentication type
    331 Send password please.
    230 lalelu is logged on.  Working directory is "lalelu".
    Remote system type is MVS.
    250 "PAVD.KEEP.DTPRDWCL." is the working directory name prefix.
    output to local-file: /opt/inhalt? 227 Entering Passive Mode (10,29,76,133,12,152)
    125 List started OK
    250 List completed successfully.
    221 Quit command received. Goodbye.
    
    Mir is aufgefallen, dass er bei der Skriptverarbeitung hostname:root ausgiebt?? Kommt mir irgendwie komisch vor...
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    Ok, mittlerweile bin ich der Sache schon näher gekommen:
    Bei der Skriptverarbeitung verwendet er das .netrc File nicht!! Wenn ich es umbenenne und dann das Skript per Hand starte bekomme ich exakt dieselbe Ausgabe.

    Woran kann es liegen das bei der Skriptverarbeitung über Cron das .netrc File nicht verwendet wird?
     
  5. #4 Wolfgang, 25.08.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Unter welchem User läuft denn der cronjob?

    Es sollte schon der gleiche sein, für welchen die .netrc erstellt wurde.
     
  6. -eraz-

    -eraz- Tripel-As

    Dabei seit:
    27.03.2008
    Beiträge:
    151
    Zustimmungen:
    0
    @Wolfgang
    Ja genau da scheint der sprichwörtliche Hund begraben zu sein.

    Hab durch den Post hier den Fehler gefunden:
    http://209.85.135.104/search?q=cach...123463+cronjob+netrc&hl=de&ct=clnk&cd=3&gl=at (Befindet sich im Google Cache)

    Ich habe nun dem Skript 'export HOME=/root' hinzufügen müssen. Jetzt funktionierts. Im Crontabfile ist '/' als HOME definiert?! Ich kann mir nicht erklären, warum das nun immer funktioniert hat und plötzlich nicht mehr... zudem ist doch das Home Verzeichnis von root defaultmäßig '/root' oder nicht?
     
Thema:

Bash und .netrc

Die Seite wird geladen...

Bash und .netrc - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. Bashscript aus Debian6 läuft nicht auf Debian7

    Bashscript aus Debian6 läuft nicht auf Debian7: Hallo an alle, nachdem ich ein Skript von squeeze auf wheezy kopiert habe und ausführte, erschienen gleich wilde Fehlermeldungen, nach denen ich...
  3. Bash sucht neues Logo

    Bash sucht neues Logo: Die GNU Bourne Again Shell (bash) sucht nach knapp 20 Jahren ein neues, individuelles Logo. Alle Anwender und Interessenten sind deshalb...
  4. Mit bash Skript bestimmte Werte aus Tabelle lesen

    Mit bash Skript bestimmte Werte aus Tabelle lesen: Hallo! Ich beschäftige mich erst seit Kurzem mit bash und bin deshalb noch nicht so fit darin. Und nun habe ich schon ein kleines Problem und...
  5. Bash: Geteiltes Fenster mit unterschiedlichen Funktionen

    Bash: Geteiltes Fenster mit unterschiedlichen Funktionen: Hallo Leute, ist es in Bash möglich, zwei Funktionen in zwei getrennten Teilen eines Terminalfensters ablaufen zu lassen? Da Bash die Befehle...