habe ein Problem mit einem Script:
-----
#!/bin/sh
1. # Datum in Variable Speichern
DATUM=$(date +%Y%m%d)
2.
3. # Datei runterladen
wget -O $DATUM.pdf "adresse-der-datei"
4. # Datei auf Server laden
wput -N $DATUM.pdf ftp://user:password@server/
-----
An Punkt 2. soll geprüft werden, ob auf dem FTP-Server schon die Datei
(heute bspw. "20092210.pdf") existiert. Wenn ja, beende das Script, wenn
nein, arbeite die Schritte 3+4 ab. Weiß nicht, wie ich das für einen
entfernten FTP machen soll.
Die Schritte 1+3+4 funktionieren.
Wer hilft mir auf die Sprünge?
Danke
Gruß
Sven
> An Punkt 2. soll geprüft werden, ob auf dem FTP-Server schon die Datei
> (heute bspw. "20092210.pdf") existiert. Wenn ja, beende das Script, wenn
> nein, arbeite die Schritte 3+4 ab. Weiß nicht, wie ich das für einen
> entfernten FTP machen soll.
Eigentlich am schnellsten, wenn Du dich doof stellst und versuchst via
"wget" die Datei zu holen. Ist sie nicht da, hast Du auch nachher keine
Datei auf der Platte.
Blöde ist nur, dass Du -O verwendest, dann geht das nicht (da macht er
eigentlich ein "wget FILE > OUTFILE" und wenn nix kommt, bleibt die
Datei leer).
Da Du aber weisst, wie die Datei "drüben" heisst, würde ich sie einfach
ohne "-O" erstmal ziehen und wenn sie dann wirklich da ist, umbenennen.
Bernd
--
Visit http://www.nixwill.de and http://www.spammichvoll.de
jean....@nixwill.de & bernado....@spammichvoll.de
if wget -q --delete-after $DATUM.pdf; then exit; fi
> 1. # Datum in Variable Speichern
> DATUM=$(date +%Y%m%d)
>
> 2.
ftp -v ftp://user:password@server/ <<EOF 2>&1|
grep -q '^200 CHMOD '
chmod 0644 $DATUM.pdf
bye
EOF
[ $? -ne 0 ] || exit 2
> 3. # Datei runterladen
> wget -O $DATUM.pdf "adresse-der-datei"
>
> 4. # Datei auf Server laden
> wput -N $DATUM.pdf ftp://user:password@server/
>
> An Punkt 2. soll geprüft werden, ob auf dem FTP-Server schon
> die Datei (heute bspw. "20092210.pdf") existiert.
Ggf. 0644 ersetzen durch den üblichen Wert.
--
printf -v email $(echo \ 155 141 162 143 145 154 142 162 165 151 \
156 163 155 141 100 171 141 150 157 157 056 143 157 155|tr \ \\\\)
# Live every life as if it were your last! #
> ftp -v ftp://user:password@server/ <<EOF 2>&1|
ftp -v ftp://user:password@server/ <<EOF 2>&1 | \
> grep -q '^200 CHMOD '
> chmod 0644 $DATUM.pdf
> bye
> EOF
> [ $? -ne 0 ] || exit 2
--
wget kennt --spider
Das ist hier aber etwas umständlich, weil man erst wgets Ausgabe parsen
muss, da es mit --spider keinen (für diesen Fall) sinnigen Rückgabewert
liefert.
>> Da Du aber weisst, wie die Datei "drüben" heisst, würde ich sie einfach
>> ohne "-O" erstmal ziehen und wenn sie dann wirklich da ist, umbenennen.
>
> wget kennt --spider
An den Parameter hab ich mich nicht so recht herangetraut weil die Doku
dazu doch etwas knapp ist und ich nicht erkennen kann, was er genau macht.
Man kann das ggf. per grep holen. Etwas Nichtvorhandenes sollte einen 404
liefern.
| $ wget http://www.google.de/jkwhfjkfw.html
| --2009-10-23 21:58:51-- http://www.google.de/jkwhfjkfw.html
| Resolving www.google.de... 64.233.169.105, 64.233.169.147, 64.233.169.99, ...
| Connecting to www.google.de|64.233.169.105|:80... connected.
| HTTP request sent, awaiting response... 404 Not Found
| 2009-10-23 21:58:52 ERROR 404: Not Found.
--
Andreas
Linux: The choice of a GNU generation.
Es geht um FTP, daher hat man mit wget nur die Size-Angabe die einem
was sinnvolles verklickert... Bei HTTP funktioniert --spider auch
super, da es bei HTTP-Code != 200 als Rückgabewert eine 1 liefert.
$ curl -I ftp://localhost/; echo $?
0
$ curl -I ftp://localhost/no_such_file; echo $?
curl: (19) Given file does not exist
19
Alternativ perl: 'lwp-request -m HEAD' zum Beispiel ;)
HTH,
-dnh
--
Kiss me twice. I'm schizophrenic.
-- from the BSD fortune file