YAFC

yafc?

yafc steht fuer yet another ftp client.
Er wird ebenfalls unter Konsole bedient und bestitzt zudem noch folgende Features: Inhalt

Download und Installation der Quellen

Ich gehe hier auf die Installation der Sourcen ein. Bei Free-, Net- und OpenBSD findet man yafc in der Portcollection.
Zuerst benoetigen wir also die Sourcen. Diese findet man auf der Projectpage bei Sourceforge (http://yafc.sourceforge.net/). Die aktuelle Version (Stand 15.06.03) ist 1.0. Nachdem wir das Archiv runtergeladen haben, wird es mit
  $ tar -xvzf yafc-1.0.tar.gz
entpackt. Anschlieszend wechseln wir in das neu erstellte Verzeichnis und geben dort
  $ ./configure --help
ein um uns die zur Verfuegung stehenden Optionen ausgeben zu lassen. Mit welchen Optionen man 'configure' letztendlich aufruft, haengt von den eigenen Beduerfnissen ab. Ich habe (unter OpenBSD 3.2) folgende angegeben:
  $ ./configure --with-krb4 --with-krb5 --with-pic --with-readline --with-socks
Nachdem das Makefile durch 'configure' erstellt worden ist, kann man die Sourcen kompilieren und yafc installieren. Das geschiet mit:
  $ make && make install
Inhalt

Startparameter

Man kann yafc schon beim Start mit verschiedenen Parametern aufrufen. Eine Auflistung und kurze Erklaerung folgt jetzt.
-a (--anon)
Hier wird ein Anonymous - Login gestartet. Die Email - Addresse wird zuerst in der Konfigurationsdatei gesucht (zuerst wird die /etc/yafcrc und danach die ~/.yafc/yafcrc gelesen). Wenn sie dort nicht definiert wurde, wird sie in der Variable $EMAIL (hat die irgendwer gesetzt?) gesucht. Sollte sie dort auch nicht gefunden werden, dann wird sie aus dem lokalem User- und Hostnamen zusammengesetzt.

-d (--debug)
Hier wird 'yafc' im Debug-Mode gestartet. Hier werden alle Strings ausgegeben, die an den Server gesendet bzw. vom Server empfangen werden.

-D (--dump-rc)
Hier wird die Konfigurationsdatei nach stdout geschrieben (fuer Leute die keinen Pager haben *sigh*).

-m (--mechanism=MECH)
Hier kann man angeben wie man sich auf dem Server einloggen will. Zur Auswahl steht hier "krb4", "krb5" oder "none".

-n (--norc)
Keine Konfigurationsdatei verwenden.

-p (--noproxy)
Keinen Proxy verwenden (auch wenn in der Konfigurationsdatei einer angegeben wurde).

-q (--quiet)
Per Default zeigt 'yafc' beim Start eine kurze Meldung mit dem Copyright an. Mit dem Parameter kann man dies unterbinden.

-r /path/to/file (--rcfile=/path/to/file)
Hier kann man eine alternative Konfigurationsdatei angeben.

-t /path/to/file (--trace)
Hier kann man die 'trace' - Datei angeben. In diese Datei werden die Strings protokolliert, die an den Server gesendet bzw. empfangen werden.

-u (--noauto)
Hier wird der automatische Login unterbunden.
-v (--verbose)
Sollte klar sein.

-w (--wait=zeit)
Hier kann man die Zeit angeben, die zwischen den Verbindungsversuchen gewartet werden soll.

-W (--workdir=/path/to/DIR)
Hier kann man ein alternatives Verzeichnis angeben, in dem 'yafc' die Konfigurations- und tempoaeren Dateien anlegen / suchen soll.

-V (--version)
Auch klar.

-h (--help)
Logisch oder?.
Inhalt

Konfigurationsvariablen

Es stehen folgende Variablen zur Verfuegung (Kommentare werden mit '#' eingeleitet):
anon_password "password"
Hier kann man das Passwort fuer anonyme Logins setzen.

autologin no # oder yes
Hier kann man das automatische Login unterbinden (siehe 'bookmarks').

autoreconnect on # oder off
Hier kann man den automatischen Verbindungsaufbau aktivieren oder unterbinden.

quit_on_eof yes # oder no
Wenn 'yes' gesetzt ist, kann man die Session mit 'CRTL-D' beenden.

read_netrc yes # oder no
Hier kann man angeben ob die ~/.netrc gelesen werden soll oder nicht.

use_passive_mode yes # oder no
Hier kann man angeben ob der 'passive-mode' verwendet werden soll oder nicht.

reverse_dns yes # no
Sollte klar sein.

waiting_dots on # off
Wenn 'on' gesetzt ist, werden Datei- und Verzeichnissnamen mit '...' angegeben waehrend das Directorylistening noch aktiv ist.

cache_timeout 60 # Zeit in Sekunden
Hier kann man die Zeit angeben, nach wieviel Sekunden nicht mehr aus dem Cache gelesen werden soll. '0' (Null) steht fuer immer (es wird also immer aus dem Cache gelesen).

verbose on #off
Hier kann man die ausfuehrlichen Meldungen ein- oder ausschalten.

debug on #off
Siehe oben, nur diesmal fuer Debugging.

ssh_program "/path/to/ssh"
Hier kann man den Pfad zu SSH angeben (es wird nur SSH2 unterstuetzt).

sftp_server_program "/path/to/sftp-server"
Hier kann man den Pfad zum sftp - Server angeben.

use_env_string no # yes
Wenn 'yes' gesetzt ist, taucht 'yafc' in 'ps' aus.

remote_completion yes # no
Hier kann man angeben ob die Datei- und Verzeichnisnamen vervollstaendigt werden sollen.

auto_bookmark yes # no | ask Hier kann man angeben ob die aktuelle Verbindung ge'bookmark't werden soll.

auto_bookmark_save_password yes # no
Hier kann man angeben ob die Passwoerter gespeichert werden sollen (chmod 0600 nicht vergessen!).

auto_bookmark_silent yes # no
Hier kann man die Nachricht 'Bookmark saved ..' unterdruecken.

default_type binary # oder ascii
Hier kann man den Type fuer Transfers angeben.

default_mechanism krb4 # oder default_mechanism "krb4:krb5:none"
Hier kann man Kerberos verwenden.

ascii_transfer_mask "file:*.suffix:*.suffix1"
Hier kann man angeben welche Dateien man immer im Ascii - Modus uebertragen will (interessant fuer Perl - Scripte).

beep_after_long_command yes # oder no
Hier kann man angeben ob nach einem "langem" Kommando ($ mput 1 2 3 4 5 ..) ein Beep kommen soll.

long_command_time 60 # Zeit in Sekunden
Hier kann man definieren nach wieviel Sekunden ein Kommando ein "langes Kommando" ist.

connection_timeout 23 # Zeit in Sekunden
Auch klar.

connect_attempts 42
Hier kann man die Anzahl der Verbindungsversuche einstellen.

connect_wait_time 42 # Zeit in Sekunden
Damit wird die Zeit festgelegt, die zwischen den Verbindungsversuchen gewartet werden soll.

use_history yes # oder no
Hier kann man angeben ob die History (~/.yafc/history) verwendet werden soll oder nicht.

history_max 31337
Hier kann man Laenge der History definieren (Angabe in Zeilen).

startup_local_directory /path/to/DIR
Das ist ueberlebenswichtig!!!!11! Erstellt ein Verzeichnis in dem ihr eure zukunftigen Downloads speichern wollt und gebt hier den Pfad an. Sobald dann 'yafc' gestartet wird, wechselt er automatisch in der Verzeichnis und alles Downloads werden dort gespeichert.

nohup_mailaddress email@foo.bar
Hier kann man eine Email - Addresse angeben, an die eine Mail geschickt wird, wenn ein 'nohup' - Down- oder Upload beendet worden ist.

sendmail_path "/path/to/sendmail"
Wird nur benoetigt, wenn nohup_mailaddress verwendet wird.

prompt1 {string}
prompt2 {string}
prompt3 {string}

Das wird etwas laenger ;)
prompt1 ist der Prompt, der angezeigt wird, wenn man 'yafc' gestartet hat, aber noch keine Verbindung aufgebaut hat.
prompt2 wird angezeigt, wenn man verbunden, aber noch nicht eingeloggt ist.
prompt3 wird angezeigt wenn man verbunden und eingeloggt ist.
Man kann als String folgende Variablen verwenden:
%u  Username.
%h  Der remote Hostname.
%H  '%h' aber erst nach dem ersten '.' (Punkt).
%m  Der remote machine - Name (die Ausgabe von 'gethostbyname').
%M  Siehe oben.
%n  Die remote IP.
%w  Das aktuelle Verzeichnis.
%W  Siehe oben.
%~  Siehe '%w', aber das Homedirectory wird durch '~' (Tilde) abgekuertzt.
%l  Das aktuelle Verzeichnis (lokal).
%L  Siehe oben.
%c  Die aktuell offenen Verbindungen.
%C  Die aktuell aktiven Verbindungen.
%%  Ein '%'.
%#  Wenn man root ist (lokal) wird ein '#' und ansonsten ein '$' angezeigt.
%{  Einleitung von Escape - Sequenzen.
%}  Ende einer §scape - Sequenz.
\e  Eine Escape - Sequenz (hex 0x1B).
\n  Neue Zeile ('newline').
\t  Tabulator.

transfer_begin_string {string}
Dieser String wird ausgegeben _bevor_ der aktuelle Transfer beginnt. Man kann auch diese Ausgabe formartieren. Hier stehen folgende Variablen zur Verfuegung:
%r  Der Dateiname.
%R  Der Dateiname mit dem absolutem Pfad.
%l  Der Dateiname unter dem er gespeichert wird.
%L  Siehe oben, nur diesmal mit Ausgabe des absolutem Pfades.
%s  Die Groesze die noch uebertragen werden musz.
%S  Die tatsaechliche Groesze.
%e  Die verbleibende Zeit.
%b  Die Transferrate (Bps).
%B  Die Transferrate (Bsp) oder 'stalled'.
%t  Die Zeit seit Beginn des Transfers.
%v  Die "visual progress bar" (Fortschrittsanzeige).

transfer_string {string}
Der String wird ausgegeben, waehrend der Transfer laeuft. Zur Formatierung kann man die oben genannten Variablen verwenden.

transfer_end_string {string}
Dieser String wird ausgegeben wenn der Transfer beendet ist. Auch hier kann man die Variablen von transfer_begin_string zur Formatierung verwenden.

transfer_xterm_string {string}
Hier kann man (wenn das $TERM mit xterm_title_terms gesetzt wurde) den Transfer - Status im Titles des $TERM's anzeigen lassen.

tilde yes # oder no
Hier wird - wenn 'yes' gesetzt wird - der absolute Pfad zum Homedirectory durch eine '~' (Tilde) abgekuerzt.

xterm_title(1|2|2) {string}
Analog zu prompt(1|2|3); es stehen auch die gleichen Variablen zur Verfuegung.

Inhalt

Aliase

Man kann - wie auch unter der $SHELL - Aliase definieren. Diese kann man entweder in der Konfigurationsdatei setzen oder direkt am Prompt definieren. Mal einige Beispiele:
  alias ls "ls -F --color"
Hier wird 'ls' mit den Optionen '-F --color' ausgefuehrt.
  alias pls "ls %1 | less"
'%1' ist hier das erste Argument, das 'ls' uebergeben wird.

Inhalt

Farben

Zur Formatierung der Prompts stehen auch Farben zur Verfuegung. Diese werden als ANSI Escape - Sequenzen angegeben. Welche zur Verfuegung stehen und wie man diese anwendet, findet man in den Manual - Seiten seiner $SHELL... maybe ;)

Inhalt

Bookmarks

Mit 'yafc' ist es moeglich Bookmarks zu verwenden. Diese werden entweder aus der ~/.netrc oder aus der /.yafc/bookmarks gelesen. Mal einige Beispiele und eine kurze Erklaerung dazu:
default login anonymous
Per Default als 'anonymous' einloggen und den Prompt fuer die Passwortabfrage anzeigen.
default anonymous
Automatischer Login; die Passworteingabe ist nicht noetig.
machine .brainstop.42 login bofh
Hier wuerde sich 'yafc' auf allen Hosts der Domain 'brainstop.42' einloggen und als Username 'bofh' verwenden.
machine brainstop.foo.bar login p0rn cwd ~/42
Loggt sich auf dem Host 'brainstop.foo.bar' mit dem Username 'p0rn' ein und wechselt in das Verzeichnis '42'.
machine p0rn@brainstop.foo.bar/42
Nochmal das gleiche, nur diesmal in einer anderen Version.
machine ftp.foobar.23:31337 anonymous
Loggt sich als 'anonymous' ueber Port '31337' auf dem Server 'ftp.foobar.23' ein.

Eintraege in der ~/.yafc/bookmarks koennen z. B wie folgt aussehen:
machine ftp://ftp.openbsd.org:21 alias 'openbsd' anonymous
machine ftp://ftp.nsa.gov:42 alias 'wtc' login hoover password foo31337bar

Inhalt

Solltet ihr inhaltliche Fehler entdeckt haben, dann teilt mir das am besten per Mail mit. Rechtschreibfehler duerft ihr behalten oder ausdrucken und meinen Deutschlehrer damit erschlagen.
$Id: yafc.html,v 1.1 2003/06/15 20:42:16 dope Exp dope $
Send comments to strcat@gmx.net.