Bash und .netrc

E

-eraz-

Tripel-As
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
 
Zuletzt bearbeitet:
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?
 
Zuletzt bearbeitet:
Unter welchem User läuft denn der cronjob?

Es sollte schon der gleiche sein, für welchen die .netrc erstellt wurde.
 
@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?
 

Ähnliche Themen

NAS-Drive Mount in Bash-Script über crontab

Backup Skript automatisch ausführen mit udev

[RedHat] Seltsames Verhalten bei Cronjob... Hilfe!!

Zurück
Oben