222 lines
6.2 KiB
HTML
222 lines
6.2 KiB
HTML
|
<HTML>
|
|||
|
<HEAD>
|
|||
|
<TITLE>
|
|||
|
FTP on demand
|
|||
|
</TITLE>
|
|||
|
<!-- Changed by: Bernhard Hailer, 24-Feb-1997 -->
|
|||
|
</HEAD>
|
|||
|
|
|||
|
<BODY>
|
|||
|
<H1>
|
|||
|
<P ALIGN=CENTER>
|
|||
|
<IMG SRC="ftp.jpg" ALT="Linux">
|
|||
|
<!IMG SRC="linux.gif" ALT="Linux">
|
|||
|
<!IMG SRC="isdn.gif" ALT="ISDN">
|
|||
|
<BR>
|
|||
|
<FONT SIZE=+3>FTP on demand
|
|||
|
</FONT>
|
|||
|
</P>
|
|||
|
</H1>
|
|||
|
|
|||
|
<HR>
|
|||
|
<P>
|
|||
|
|
|||
|
<FONT SIZE=+3><B>D</B></FONT>as
|
|||
|
kennt man: wenn man von einem etwas weiter entfernten Server (womöglich
|
|||
|
aus Übersee) eine große
|
|||
|
Binärdatei holen will, wird die maximale Übertragungsrate nicht
|
|||
|
mehr richtig ausgenutzt - besonders bei ISDN passiert das schnell. Nun hat man
|
|||
|
sich keinen ISDN-Anschluß legen lassen, um dem Fernmeldeanbieter das
|
|||
|
Geld in den Rachen zu werfen, und außerdem benutzen wir das beste
|
|||
|
Betriebssystem der Welt :-) Und zumindestens Leute, die einen Uni-Zugang
|
|||
|
haben, und dort ein paar Unix-Befehle loswerden können, können hier
|
|||
|
tricksen.
|
|||
|
<P>
|
|||
|
|
|||
|
<H2>Die Theorie</H2>
|
|||
|
|
|||
|
Aber wie? Der Trick besteht darin, daß die Datei nicht sofort und direkt
|
|||
|
downgeloadet wird, sondern daß man das zunächst den Server an der
|
|||
|
Uni machen läßt. Nach einiger Zeit holt man sich die
|
|||
|
gewünschte Datei dann von dort - die Verbindung zum Uniserver ist ja in
|
|||
|
der Regel so gut, daß die maximale Übertragungsrate voll ausgenutzt
|
|||
|
wird. UNIX kennt den Befehl <TT>nohup</TT>, mit dem man Befehle ausführen
|
|||
|
kann, ohne eingeloggt zu sein - das ist die Voraussetzung. Man kann sich also
|
|||
|
beim Provider einloggen und folgende Befehlssequenz eingeben:
|
|||
|
|
|||
|
<PRE>
|
|||
|
provider:# nohup ftp -i ftp.leo.org &
|
|||
|
provider:# exit
|
|||
|
connection closed by foreign host.
|
|||
|
root:# _
|
|||
|
</PRE>
|
|||
|
|
|||
|
Das ganze dauert nicht mehr als ein paar Sekunden, eine Telefoneinheit wurde
|
|||
|
der guten Sache geopfert.
|
|||
|
<P>
|
|||
|
|
|||
|
Allerdings muß man etwas Vorarbeit leisten, denn <TT>ftp</TT> ist ein
|
|||
|
interaktives Programm, welches zur Arbeit eine ganze Menge Informationen
|
|||
|
benötigt (zum Bleistift, was es denn holen soll). Die Interaktivität
|
|||
|
kann man ihm abgewöhnen, dafür ist die Option "-i" da. Die
|
|||
|
Informationen muß man trotzdem übergeben, und das kann man, indem
|
|||
|
man eine Datei <TT>.netrc</TT> beim Provider hinterlegt, in dem alles das
|
|||
|
drinsteht, was ftp tun soll. (Gibt man als Option "-n" an, wird diese Datei
|
|||
|
<I>nicht</I> beachtet!)
|
|||
|
<P>
|
|||
|
|
|||
|
So könnte die Datei <TT>.netrc</TT> aussehen, wenn man sich
|
|||
|
beispielsweise den Kernel 2.0.7 (immerhin mehr als 5 Megabyte!) vom Server
|
|||
|
bei LEO.ORG holen will:
|
|||
|
|
|||
|
<PRE>
|
|||
|
<B>provider:~/.netrc</B>
|
|||
|
machine ftp.leo.org
|
|||
|
login anonymous
|
|||
|
password <I><eigene@email.adresse></I>
|
|||
|
macdef init
|
|||
|
lcd /usr/src
|
|||
|
cd /pub/comp/os/linux/Linus/v2.0
|
|||
|
bin
|
|||
|
get linux-2.0.7.tar.gz
|
|||
|
close
|
|||
|
quit
|
|||
|
</PRE>
|
|||
|
|
|||
|
So kann man sich für jeden Server einen Eintrag machen. Diese Datei
|
|||
|
muß vor dem <TT>nohup ftp</TT> im Heimatverzeichnis beim Provider
|
|||
|
abgelegt werden.
|
|||
|
Eine Stunde später kann man sich den Kernel mit Höchstgeschwindigkeit
|
|||
|
beim Provider abholen. Schön, gell?
|
|||
|
|
|||
|
|
|||
|
<H2>Automatisierung</H2>
|
|||
|
|
|||
|
So. Nun wollen wir das automatisieren. Hierzu muß natürlich wieder
|
|||
|
der cron herhalten, der die datenintensive Übertragung in die billigen
|
|||
|
Nachtstunden verlegt.
|
|||
|
<P>
|
|||
|
|
|||
|
<IMG ALIGN=left SRC="constr.gif">
|
|||
|
<IMG ALIGN=right SRC="constr.gif">
|
|||
|
|
|||
|
<P ALIGN=center>
|
|||
|
<B>... Aber daran arbeite ich noch - laßt Euch überraschen!</B>
|
|||
|
</P>
|
|||
|
|
|||
|
<HR>
|
|||
|
<P>
|
|||
|
|
|||
|
Ich hatte bisher keine Zeit für weitere Forschungen - aber einige
|
|||
|
Leute haben mir geschrieben.
|
|||
|
<P>
|
|||
|
|
|||
|
Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de> schrieb:
|
|||
|
<PRE>
|
|||
|
Hallo,
|
|||
|
|
|||
|
zu "FTP on Demand " solltest Du auf "ncftp" verweisen. Ich oeffne mit "nohup
|
|||
|
ncftp" das Programm, oeffne den Server, denn ich brauchte, waehle mit
|
|||
|
"Tab"-Expansion das File aus, das ich will, starte den Download. Ein CTRL-Z
|
|||
|
und "bg" bringen den Download in den Hintergrund und mich auf die
|
|||
|
Kommandozeile, so das ich den Connect beenden kann.
|
|||
|
</PRE>
|
|||
|
|
|||
|
<P>
|
|||
|
|
|||
|
Gunnar Larisch <Gunnar.Larisch@lpr.e-technik.tu-muenchen.de> schrieb:
|
|||
|
|
|||
|
<PRE>
|
|||
|
anscheinend hast Du auch ISDN, da Du so schöne Anleitungen geschrieben
|
|||
|
hast. Ich hab da paar schöne Skripten, die Dich vielleicht interessieren.
|
|||
|
|
|||
|
getme <Server> <Dir> <File>
|
|||
|
Per cron muss dann noch cronftp gestartet werden. Am nächsten Tag kannst
|
|||
|
Du Dir Dein File abholen.
|
|||
|
|
|||
|
getfrom ist vielleicht auch ganz nützlich.
|
|||
|
|
|||
|
-----------getme--------------
|
|||
|
#!/usr/local/bin/bash
|
|||
|
|
|||
|
# Parameters: Server Path File(s)
|
|||
|
|
|||
|
FTPFILE="/tmp/.$UID.ftpjobs"
|
|||
|
echo Server : $1
|
|||
|
echo Dir : $2
|
|||
|
echo "File : $3"
|
|||
|
echo Jobfile: $FTPFILE
|
|||
|
|
|||
|
touch $FTPFILE
|
|||
|
|
|||
|
echo lcd ~/tmp/ftpjobs >>$FTPFILE
|
|||
|
echo open $1 >>$FTPFILE
|
|||
|
echo user anonymous t8231ah@sunmail.lrz-muenchen.de >>$FTPFILE
|
|||
|
echo bin >>$FTPFILE
|
|||
|
echo "cd $2" >>$FTPFILE
|
|||
|
echo "mget $3" >>$FTPFILE
|
|||
|
echo close >>$FTPFILE
|
|||
|
-------------------------------
|
|||
|
|
|||
|
---------getfrom---------------
|
|||
|
echo Hole $2 von $1...
|
|||
|
echo ftp -i $1 >>~/tmp/ftpjob
|
|||
|
echo bin >>~/TMP/ftpjob
|
|||
|
echo cd $2 >>~/tmp/ftpjob
|
|||
|
-------------------------------
|
|||
|
|
|||
|
---------cronftp--------------
|
|||
|
#!/usr/local/bin/bash
|
|||
|
FTPFILE="/tmp/.$UID.ftpjobs"
|
|||
|
NEWFTPFILE="/tmp/.bgjob_$UID_$RANDOM"
|
|||
|
mkdir ~/tmp/ftpjobs
|
|||
|
echo Using $FTPFILE... as $NEWFTPFILE
|
|||
|
mv $FTPFILE $NEWFTPFILE
|
|||
|
nohup ftp -in >$NEWFTPFILE &
|
|||
|
-------------------------------------
|
|||
|
|
|||
|
Ciao Gunnar
|
|||
|
</PRE>
|
|||
|
<P>
|
|||
|
|
|||
|
Siggi Thoma <sthoma@twilight.rhein-neckar.de> schrieb:
|
|||
|
<PRE>
|
|||
|
Hast Du diesbez<65>glich mal von FTPMAIL geh<65>rt? Vielleicht erf<72>llt das auch den
|
|||
|
gew<EFBFBD>nschten Zweck und ein bißchen einfacher.
|
|||
|
|
|||
|
Schreib mal mail an ftpmail@ftp.uni-stuttgart.de
|
|||
|
subject HELP
|
|||
|
body:
|
|||
|
help
|
|||
|
quit
|
|||
|
|
|||
|
|
|||
|
---------------
|
|||
|
Dieser Server der da an der Uni l<>uft erm<72>glicht es beliebige Dateien
|
|||
|
von jedem ftp-archive auf der Welt nach Stuttgart zu holen. Von dort
|
|||
|
sendet Dir der FTPMAIL-Server die Datei uuencoded als email zu. Von
|
|||
|
Stuttgart aus als EMAIL. Da f<>llt also nur die
|
|||
|
<EFBFBD>bertragungsgeschwindigkeit zu Deinem Provider ins Spiel.
|
|||
|
|
|||
|
Genauere Beschreibungen gibts <20>berall im Netz. Such mal in Yahoo oder
|
|||
|
Altavista unter FTPMAIL.
|
|||
|
|
|||
|
Tschau
|
|||
|
Siggi
|
|||
|
</PRE>
|
|||
|
|
|||
|
<HR>
|
|||
|
<ADDRESS>
|
|||
|
<A HREF="gnulis.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
|||
|
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
|||
|
Last modification: 24-Feb-97 BeH
|
|||
|
</ADDRESS>
|
|||
|
|
|||
|
</BODY>
|
|||
|
</HTML>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|