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>
|
||
|
||
|
||
|
||
|
||
|