PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : File-Upload per Bash



der_angler
18.01.05, 09:58
Hallo,
ich habe ne ziemlich dumme Frage. Und zwar, wie kann ich unter Fedora Core 2 eine Datei auf meinen Webserver laden??
Und zwar per Bash. Will mir ein Skript basteln was folgendes tut:
1. jeden Tag das Fernsehprogramm runterladen - OK!
2. das xml-File zippen - OK!
3. das gezippte File auf meinen Webserver aufspielen - FEHLER!
4. das ganze zuhause vom Webserver donwloaden und eintragen - OK!

Also wie ihr seht geht es mir wirklich nur darum wie ich per Skript ne Datei auf einen Webserver hochladen kann und vorallem wie und wo ich die Zugangsadaten zu meinem Webserver eintragen muss?


Please help me :)

Jofisch
18.01.05, 10:28
hi,

hast du ein ftp-zugang zu deinem webserver? wenn ja ist ftp (file transfer programm) dein freund.


ftp -u ftp://<username>:<password>@<host><pfad> <datei zum hochladen>

mfg
jofisch

eclipse
18.01.05, 10:40
Lege in dein Homedir folgende Datei an
.netrc
In diese schreibst du rein


machine ip_adresse_des_ftp_servers
login dein_login_name
password dein_passwort

Dann gehst du hin und schreibts in ein File,ich nenns hiermal ftpfile, folgendes rein:


cd in_das_dir_das_du_willst
put /Pfad/zum/File/zum/hochladen
quit



Dann rufst du einfach auf mit:
ftp ip_adresse_ftpserver < ftpfile
fertig.
Nun schreibst du das ganze halt noch als dein crontab und fertig.

P.S. Die .netrc darf nur für den Eigentümer les/schreibar sein.
Also mach nach dem anlegen bitte ein chmod 600 ~/.netrc

Sascha-Ulf
18.01.05, 11:05
man wget ist Dein Freund. Damit kannst Du aus der Konsole heraus gezielt Dateien von anderen Servern downloaden, man kann auch ganze Websites downloaden.

edit /
wget -b http://DOMAIN/Datei

wget -r http://DOMAIN

drcux
18.01.05, 11:09
@Sascha-Ulf

upload, nicht download

Sascha-Ulf
18.01.05, 11:16
Ist mir schon klar, aber ich finde es einfacher das Skript gleich auf dem Webserver laufen zu lassen. Warum ein Skript von zwei Rechnern abhängig machen? Aber na ja, der andere Weg wird sicherlich gehen.

Blackhawk
18.01.05, 11:21
scp ist ein Teil der SSH-Suite und kann somit die gleichen Mechanismen (Public-/Private-Key-Verfahren) nutzen...

der_angler
18.01.05, 11:41
... ich habe es jetzt mal so versucht
[root@rhsrv root]# ftp -p ftp://username:password@ftp.christopher-boehm.de yum.conf

aber dann erscheint nur folgendes
ftp: ftp://username:password@ftp.christopher-boehm.de yum.conf: Servname not supported for ai_socktype

Also klappt das irgendwie nicht!
Achja, die Funktion "ftp -u" kennt er bei mir gar nicht.

Jofisch
18.01.05, 11:52
hmm dann scheint das unter fc2 ne andere version zu sein. unter debian (sarge) und suse(8.2, 9.1) funkt das einwandfrei.

mfg
jofisch

Blackhawk
18.01.05, 14:28
ich mach immer
scp /etc/yum.conf root@hostname:/etc
da ich dort im .ssh-Verzeichnis von root meinen publickey hitnerlegt habe (in authorized-keys) geht das ohne passwort usw, also auch per cron...

der_angler
18.01.05, 15:10
nur das ich auf meinem Webserver weder ssh-Zugriff habe, noch einen PublicKey hinterlegt habe und schon gar keine cronjobs erzeugen kann, deswegen das ganze mit 2 Servern.
Also könnt ihr das mit scp glatt vergessen und mir vielleicht sagen was das für ne seltsame Fehlermeldung ist.
Kann doch net so schwer sein eine Datei upzuloaden oder?

eclipse
18.01.05, 15:44
Kann doch net so schwer sein eine Datei upzuloaden oder?

Würdest du mein Posting gelesen haben, dann hättest du schon lange deine Lösung.
Aber nö wird anscheinend nicht gelesen. Tztztztz!
Und dann wundern sich die Leute wenn man auf ihrer Postings nicht mehr antwortet.

der_angler
19.01.05, 21:51
... habe es jetzt ja auch mit deiner Lösung hinbekommen :) :) :) :) Danke

Aber jetzt würde ich gerne nochmal zu dem
wget -b http://www.xxxx.de/daten.zip was fragen, und zwar startet das Ding ja so im Hintergrund. Hmmm, aber wenn ich ein Skript habe, wie halte ich das den dann so lange an bis der Download erfolgreich war. Weil ich will ja mit dem File weiter arbeiten, aber wenn der im Hintergrund runterlädt geht das Skript ja weiter ???
Und wo speichert er den das File?

tictactux
19.01.05, 23:03
und zwar startet das Ding ja so im Hintergrund. Hmmm, aber wenn ich ein Skript habe, wie halte ich das den dann so lange an bis der Download erfolgreich war. Weil ich will ja mit dem File weiter arbeiten, aber wenn der im Hintergrund runterlädt geht das Skript ja weiter ???


wget --quiet -c -nH http://www.xxxx.de/daten.zip &
wait $!
wait wartet im Skript auf Beenden von wget (->help wait, man bash)

Und wo speichert er den das File?
man wget :D (Option -O wenn Du einen eigenen Namen geben willst)
In Verbindung mit obigem -nH im aktuellen Verzeichnis.
Gruß,
Wolfgang

artspin
19.01.05, 23:17
Wenn du hinter dem wget das & weglässt, brauchst du auch kein wait mehr. Das & steht ja dafür, dass der Prozess in den Hintergrund versetzt wird.

tictactux
19.01.05, 23:49
Wenn du hinter dem wget das & weglässt, brauchst du auch kein wait mehr. Das & steht ja dafür, dass der Prozess in den Hintergrund versetzt wird.
Ich habe die Frage prinzipiell verstanden: also für den Fall, daß zwischen
"wget &" und wait noch ein paar (Vordergrund-)Befehle stehen, an einem
bestimmten Punkt im Skript der Download aber abgeschlossen sein soll.
So hatte ich "geht das Script ja weiter..." gelesen (auf den zweiten Blick
vielleicht falsch ?)

Ansonsten macht das in der Tat keinen Sinn ;)
Gruß,
Wolfgang