Available in

(1) (1)/de (1)/fr

Contents

NAME

linkchecker − prüfe HTML Dokumente und Webseiten auf ungültige Verknüpfungen

SYNTAX

linkchecker [Optionen] [Datei−oder−URL]...

BESCHREIBUNG

LinkChecker bietet rekursives Prüfen, Multithreading, Ausgabe als farbigen oder normalen Text, HTML, SQL, CSV oder einen Sitemap−Graphen in GML oder XML, Unterstützung für HTTP/1.1, HTTPS, FTP, mailto:, news:, nntp:, Telnet und lokale Dateiverknüpfungen, Einschränkung der Verknüpfungsüberprüfung mit URL Filtern bestehend aus regulären Ausdrücken, Proxy Unterstützung, Benutzer/Passwort Authentifizierung für HTTP und FTP, Unterstützung des robots.txt Protokolls, Mehrsprachigkeit, eine Kommandozeilenschnittstelle sowie eine CGI Webschnittstelle (benötigt einen HTTP Server).

BEISPIELE

Der häufigste Gebrauchsfall prüft die angegebene Domäne rekursiv, inklusive aller einzelnen nach außen zeigenden Verknüpfungen:
linkchecker http://treasure.calvinsplayground.de/

Beachten Sie dass dies die komplette Domäne überprüft, welche aus mehreren tausend URLs bestehen kann. Benutzen Sie die Option −r, um die Rekursionstiefe zu beschränken.
Keine Verbindungen zu mailto: Rechnern, nur die URL Syntax wird geprüft. Alle anderen Verknüpfungen werden wie üblich geprüft:
linkchecker −−ignore−url=^mailto: www.mysite.org

Überprüfung einer lokalen HTML Datei unter Unix:
linkchecker ../bla.html

Prüfe von der Standardeingabe:
echo "bla.html" | linkchecker −−stdin

Überprüfung einer lokalen HTML Datei unter Windows:
linkchecker c:\temp\test.html

Sie können den http:// URL Anteil weglassen wenn die Domäne mit www. beginnt:
linkchecker www.myhomepage.de

Sie können den ftp:// URL Anteil weglassen wenn die Domäne mit ftp. beginnt:
linkchecker −r0 ftp.linux.org

Erzeuge einen Sitemap Graphen und konvertiere ihn mit dem graphviz dot Programm:
linkchecker −odot −v www.myhomepage.de | dot −Tps > sitemap.ps

OPTIONEN

Allgemeine Optionen
−h
, −−help

Hilfe! Gebe Gebrauchsanweisung für dieses Programm aus.

−fDATEINAME, −−config=DATEINAME

Benutze DATEINAME als Konfigurationsdatei. Standardmäßig sucht LinkChecker zuerst nach /etc/linkchecker/linkcheckerrc und dann ~/.linkchecker/linkcheckerrc.

−I, −−interactive

Frage nach URLs, falls keine auf der Kommandozeile eingegeben wurden.

−tNUMMER, −−threads=NUMMER

Generiere nicht mehr als die angegebene Anzahl von Threads. Standard Anzahl von Threads ist 10. Um Threads zu deaktivieren, geben Sie eine nicht positive Nummer an.

−−priority

Starte mit normaler Threadpriorität. Als Standard läuft LinkChecker mit niedriger Threadpriorität, um als Hintergrundprozess geeignet zu sein.

−V, −−version

Gebe die Version aus und beende das Programm.

−−allow−root

Keine Entziehung der Priviligien, falls das Programm unter Unix als Benutzer root läuft.

−−stdin

Lese Liste von URLs zum Prüfen von der Standardeingabe, getrennt durch Leerzeichen.

Ausgabeoptionen
−v
, −−verbose

Gebe alle geprüften URLs einmal aus. Standard ist es, nur fehlerhafte URLs und Warnungen auszugeben.

−−complete

Gebe alle geprüften URLs aus. Standard ist es, doppelte URLs nur einmal auszugeben.

−−no−warnings

Gebe keine Warnungen aus. Standard ist die Ausgabe von Warnungen.

−WREGEX, −−warning−regex=REGEX

Definieren Sie einen regulären Ausdruck der eine Warnung ausgibt falls er auf den Inhalt einer geprüften URL zutrifft. Dies gilt nur für gültige Seiten deren Inhalt wir bekommen können.
Benutzen Sie dies, um nach Seiten zu suchen, welche bestimmte Fehler enthalten, zum Beispiel "Diese Seite wurde entfernt" oder "Oracle Applikationsfehler".

−−warning−size−bytes=NUMMER

Gebe eine Warnung aus, wenn die Inhaltsgröße bekannt ist und die angegebene Anzahl von Bytes übersteigt.

−−check−html

Prüfe Syntax von HTML URLs mit lokaler Bibliothek (HTML tidy).

−−check−html−w3

Prüfe Syntax von HTML URLs mit dem W3C Online Validator.

−−check−css

Prüfe Syntax von CSS URLs mit lokaler Bibliothek (cssutils).

−−check−css−w3

Prüfe Syntax von CSS URLs mit dem W3C Online Validator.

−−scan−virus

Prüfe Inhalt von URLs auf Viren mit ClamAV.

−q, −−quiet

Keine Ausgabe, ein Alias für −o none. Dies ist nur in Verbindung mit −F nützlich.

−oTYP[/ENKODIERUNG], −−output=TYP[/ENKODIERUNG]

Gib Ausgabetyp als text, html, sql, csv, gml, dot, xml, none oder blacklist an. Stadard Typ ist text. Die verschiedenen Ausgabetypen sind unten dokumentiert.
Das ENCODING gibt die Ausgabekodierung an. Der Standard ist das der lokalen Spracheinstellung. Gültige Enkodierungen sind unter http://docs.python.org/lib/standard−encodings.html aufgelistet.

−FTYP[/ENKODIERUNG][/DATEINAME],
−−file−output=
TYP[/ENKODIERUNG][/DATEINAME]

Ausgabe in eine Datei namens linkchecker−out.TYP, $HOME/.linkchecker/blacklist bei blacklist Ausgabe, oder DATEINAME falls angegeben. Der DATEINAME und ENKODIERUNG Teil wird beim Ausgabetyp none ignoriert, ansonsten wird die Datei überschreiben falls sie existiert. Sie können diese Option mehr als einmal verwenden. Gültige Ausgabetypen sind text, html, sql, csv, gml, dot, xml, none oder blacklist. Standard ist keine Dateiausgabe. ENKODIERUNG gibt die Ausgabekodierung an,der Standard ist die Enkodierung der ausgewählten Spracheinstellung. Gültige Enkodierungen sind unter http://docs.python.org/lib/standard−encodings.html aufgelistet. Beachten Sie, dass Sie mit der Option −o none jegliche Ausgaben auf der Konsole verhindern können.

−−no−status

Gebe keine Statusmeldungen aus.

−DNAME, −−debug=NAME

Gebe Testmeldungen aus für den angegebenen Logger. Verfügbare Logger sind cmdline, checking,cache, gui, dns und all. Die Angabe all ist ein Synonym für alle verfügbaren Logger. Diese Option kann mehrmals angegeben werden, um mit mehr als einem Logger zu testen. Um akkurate Ergebnisse zu erzielen, werden Threads deaktiviert.

−−trace

Trace−Information ausgeben.

−−profile

Schreibe Profiling−Daten in eine Datei namens linkchecker.prof im aktuellen Arbeitsverzeichnis. Siehe auch −−viewprof.

−−viewprof

Gebe vorher generierte Profiling−Daten aus. Siehe auch −−profile.

Optionen zum Prüfen
−r
NUMMER, −−recursion−level=NUMMER

Prüfe rekursiv alle URLs bis zu der angegebenen Tiefe. Eine negative Tiefe bewirkt unendliche Rekursion. Standard Tiefe ist unendlich.

−−no−follow−url=REGEX

Prüfe URLs, welche dem angegebenen regulären Ausdruck entsprechen, aber führe keine Rekursion durch.
Diese Option kann mehrmals angegeben werden.

−−ignore−url=REGEX

Prüfe lediglich die Syntax von URLs, welche dem angegebenen regulären Ausdruck entsprechen.
Diese Option kann mehrmals angegeben werden.

−C, −−cookies

Akzeptiere und sende HTTP Cookies nach der RFC 2109. Lediglich Cookies, die zum ursprünglichen Server zurückgesendet werden, werden akzeptiert. Gesendete und akzeptierte Cookies werden als zusätzlicheLoginformation aufgeführt.

−−cookiefile=DATEINAME

Lese eine Datei mit Cookie−Daten. Das Cookie Datenformat wird weiter unten erklärt.

−a, −−anchors

Prüfe HTTP Ankerverweise. Standard ist, Ankerverweise nicht zu prüfen. Diese Option aktiviert die Ausgabe der Warnung url−anchor−not−found.

−uNAME, −−user=NAME

Verwende den angegebenen Benutzernamen für HTTP und FTP Autorisierung. Für FTP ist der Standardname anonymous. Für HTTP gibt es keinen Standardnamen. Siehe auch −p.

−pNAME, −−password=NAME

Verwende das angegebene Passwort für HTTP und FTP Autorisierung. Für FTP ist das Standardpasswort anonymous@. Für HTTP gibt es kein Standardpasswort. Siehe auch −u.

−−timeout=NUMMER

Setze den Timeout für TCP−Verbindungen in Sekunden. Der Standard Timeout ist 60 Sekunden.

−PNUMMER, −−pause=NUMMER

Pausiere die angegebene Anzahl von Sekunden zwischen zwei aufeinander folgenden Verbindungen zum demselben Rechner. Standard ist keine Pause zwischen Verbindungen.

−NNAME, −−nntp−server=NAME

Gibt ein NNTP Rechner für news: Links. Standard ist die Umgebungsvariable NNTP_SERVER. Falls kein Rechner angegeben ist, wird lediglich auf korrekte Syntax des Links geprüft.

KONFIGURATIONSDATEIEN

Konfigurationsdateien können alle obigen Optionen enthalten. Sie können zudem Optionen enthalten, welche nicht auf der Kommandozeile gesetzt werden können. Siehe linkcheckerrc(5) für mehr Informationen.

AUSGABETYPEN

Beachten Sie, dass standardmäßig nur Fehler und Warnungen protokolliert werden. Sie sollten die −−verbose Option benutzen, um eine komplette URL Liste zu erhalten, besonders bei Ausgabe eines Sitemap−Graphen.

text

Standard Textausgabe in "Schlüssel: Wert"−Form.

html

Gebe URLs in "Schlüssel: Wert"−Form als HTML formatiert aus. Besitzt zudem Verknüpfungen auf die referenzierten Seiten. Ungültige URLs haben Verknüpfungen zur HTML und CSS Syntaxprüfung angehängt.

csv

Gebe Prüfresultat in CSV−Format aus mit einer URL pro Zeile.

gml

Gebe Vater−Kind Beziehungen zwischen verknüpften URLs als GML Graphen aus.

dot

Gebe Vater−Kind Beziehungen zwischen verknüpften URLs als DOT Graphen aus.

gxml

Gebe Prüfresultat als GraphXML−Datei aus.

xml

Gebe Prüfresultat als maschinenlesbare XML−Datei aus.

sql

Gebe Prüfresultat als SQL Skript mit INSERT Befehlen aus. Ein Beispielskript, um die initiale SQL Tabelle zu erstellen ist unter create.sql zu finden.

blacklist

Für Cronjobs geeignet. Gibt das Prüfergebnis in eine Datei ~/.linkchecker/blacklist aus, welche nur Einträge mit fehlerhaften URLs und die Anzahl der Fehlversuche enthält.

none

Gibt nichts aus. Für Debugging oder Prüfen des Rückgabewerts geeignet.

REGULÄRE AUSDRÜCKE

Lediglich Pythons reguläre Ausdrücke werden von LinkChecker akzeptiert. Siehe http://www.amk.ca/python/howto/regex/ für eine Einführung in reguläre Ausdrücke.

Die einzige Hinzufügung ist, dass ein regulärer Ausdruck negiert wird falls er mit einem Ausrufezeichen beginnt.

COOKIE−DATEIEN

Eine Cookie−Datei enthält Standard RFC 805 Kopfdaten mit den folgenden möglichen Namen:
Scheme
(optional)

Setzt das Schema für das die Cookies gültig sind; Standardschema ist http.

Host (erforderlich)

Setzt die Domäne für die die Cookies gültig sind.

Path (optional)

Gibt den Pfad für den die Cookies gültig sind; Standardpfad ist /.

Set−cookie (optional)

Setzt den Cookie Name/Wert. Kann mehrmals angegeben werden.

Mehrere Einträge sind durch eine Leerzeile zu trennen. Das untige Beispiel sendet zwei Cookies zu allen URLs die mit http://example.org/hello/ beginnen, und eins zu allen URLs die mit https://example.org beginnen:

Host: example.com
Path: /hello
Set−cookie: ID="smee"
Set−cookie: spam="egg"

Scheme: https
Host: example.org
Set−cookie: baggage="elitist"; comment="hologram"

PROXY UNTERSTÜTZUNG

Um einen Proxy unter Unix oder Windows zu benutzen, setzen Sie die $http_proxy, $https_proxy oder $ftp_proxy Umgebungsvariablen auf die Proxy URL. Die URL sollte die Form http://[user:pass@]host[:port] besitzen. LinkChecker erkennt auch die Proxy−Einstellungen des Internet Explorers auf einem Windows−System. Auf einem Mac benutzen Sie die Internet Konfiguration. Sie können eine komma−separierte Liste von Domainnamen in der $no_proxy Umgebungsvariable setzen, um alle Proxies für diese Domainnamen zu ignorieren. Einen HTTP−Proxy unter Unix anzugeben sieht beispielsweise so aus:

export http_proxy="http://proxy.example.com:8080"

Proxy−Authentifizierung wird ebenfalls unterstützt:

export http_proxy="http://user1:mypass [AT] proxy.org:8081"

Setzen eines Proxies unter der Windows Befehlszeile:

set http_proxy=http://proxy.example.com:8080

Durchgeführte Prüfungen

Alle URLs müssen einen ersten Syntaxtest bestehen. Kleine Kodierungsfehler ergeben eine Warnung, jede andere ungültige Syntaxfehler sind Fehler. Nach dem Bestehen des Syntaxtests wird die URL in die Schlange zum Verbindungstest gestellt. Alle Verbindungstests sind weiter unten beschrieben.
HTTP Verknüpfungen (http:, https:)

Nach Verbinden zu dem gegebenen HTTP−Server wird der eingegebene Pfad oder Query angefordert. Alle Umleitungen werden verfolgt, und falls ein Benutzer/Passwort angegeben wurde werden diese falls notwendig als Authorisierung benutzt. Permanent umgezogene Webseiten werden als Warnung ausgegeben. Alle finalen HTTP Statuscodes, die nicht dem Muster 2xx entsprechen, werden als Fehler ausgegeben. Der Inhalt von HTML−Seiten wird rekursiv geprüft.

Lokale Dateien (file:)

Eine reguläre, lesbare Datei die geöffnet werden kann ist gültig. Ein lesbares Verzeichnis ist ebenfalls gültig. Alle anderen Dateien, zum Beispiel Gerätedateien, unlesbare oder nicht existente Dateien ergeben einen Fehler. HTML− oder andere untersuchbare Dateiinhalte werden rekursiv geprüft.

Mail−Links (mailto:)

Ein mailto:−Link ergibt eine Liste von E−Mail−Adressen. Falls eine Adresse fehlerhaft ist, wird die ganze Liste als fehlerhaft angesehen. Für jede E−Mail−Adresse werden die folgenden Dinge geprüft:
1) Prüfe die Syntax der Adresse, sowohl den Teil vor als auch nach dem @−Zeichen.
2) Schlage den MX DNS−Datensatz nach. Falls kein MX Datensatz gefunden wurde, wird ein Fehler ausgegeben.
3) Prüfe, ob einer der Mail−Rechner eine SMTP−Verbindung akzeptiert.
Rechner mit höherer Priorität werden zuerst geprüft.
Fall kein Rechner SMTP−Verbindungen akzeptiert, wird eine Warnung ausgegeben.
4) Versuche, die Adresse mit dem VRFY−Befehl zu verifizieren. Falls eine Antwort kommt, wird die verifizierte Adresse als Information ausgegeben.

FTP−Links (ftp:)

Für FTP−Links wird Folgendes geprüft:

1) Eine Verbindung zum angegeben Rechner wird aufgebaut
2) Versuche, sich mit dem gegebenen Nutzer und Passwort anzumelden. Der Standardbenutzer ist “anonymous“, das Standardpasswort ist “anonymous@“.
3) Versuche, in das angegebene Verzeichnis zu wechseln
4) Liste die Dateien im Verzeichnis auf mit dem NLST−Befehl

− Telnet−Links (“telnet:“)

Versuche, zu dem angegeben Telnetrechner zu verginden und falls Benutzer/Passwort angegeben sind, wird versucht, sich anzumelden.

− NNTP−Links (“news:“, “snews:“, “nntp“)

Versuche, zu dem angegebenen NNTP−Rechner eine Verbindung aufzubaucne. Falls eine Nachrichtengruppe oder ein bestimmter Artikel angegeben ist, wird versucht, diese Gruppe oder diesen Artikel vom Rechner anzufragen.

− Ignorierte Links (“javascript:“, etc.)

Ein ignorierte Link wird nur eine Warnung ausgeben. Weitere Prüfungen werden nicht gemacht.

Dies ist eine komplette Liste von erkannten, aber ingorierten Links. Die bekanntesten von ihnen dürften JavaScript−Links sein.

− “acap:“ (application configuration access protocol)
− “afs:“ (Andrew File System global file names)
− “chrome:“ (Mozilla specific)
− “cid:“ (content identifier)
− “clsid:“ (Microsoft specific)
− “data:“ (data)
− “dav:“ (dav)
− “fax:“ (fax)
− “find:“ (Mozilla specific)
− “gopher:“ (Gopher)
− “imap:“ (internet message access protocol)
− “isbn:“ (ISBN (int. book numbers))
− “javascript:“ (JavaScript)
− “ldap:“ (Lightweight Directory Access Protocol)
− “mailserver:“ (Access to data available from mail servers)
− “mid:“ (message identifier)
− “mms:“ (multimedia stream)
− “modem:“ (modem)
− “nfs:“ (network file system protocol)
− “opaquelocktoken:“ (opaquelocktoken)
− “pop:“ (Post Office Protocol v3)
− “prospero:“ (Prospero Directory Service)
− “rsync:“ (rsync protocol)
− “rtsp:“ (real time streaming protocol)
− “service:“ (service location)
− “shttp:“ (secure HTTP)
− “sip:“ (session initiation protocol)
− “tel:“ (telephone)
− “tip:“ (Transaction Internet Protocol)
− “tn3270:“ (Interactive 3270 emulation sessions)
− “vemmi:“ (versatile multimedia interface)
− “wais:“ (Wide Area Information Servers)
− “z39.50r:“ (Z39.50 Retrieval)
− “z39.50s:“ (Z39.50 Session)

Rekursion

Bevor eine URL rekursiv geprüft wird, hat diese mehrere Bedingungen zu erfüllen. Diese werden in folgender Reihenfolge geprüft:

1. Eine URL muss gültig sein.

2. Der URL−Inhalt muss analysierbar sein. Dies beinhaltet zur Zeit HTML−Dateien, Opera Lesezeichen, und Verzeichnisse. Falls ein Dateityp nicht erkannt wird, (zum Beispiel weil er keine bekannte HTML−Dateierweiterung besitzt, und der Inhalt nicht nach HTML aussieht), wird der Inhalt als nicht analysierbar angesehen.

3. Der URL−Inhalt muss ladbar sein. Dies ist normalerweise der Fall, mit Ausnahme von mailto: oder unbekannten URL−Typen.

4. Die maximale Rekursionstiefe darf nicht überschritten werden. Diese wird mit der Option “−−recursion−level“ konfiguriert und ist standardmäßig nicht limitiert.

5. Die URL darf nicht in der Liste von ignorierten URLs sein. Die ignorierten URLs werden mit der Option “−−ignore−url“ konfiguriert.

6. Das Robots Exclusion Protocol muss es erlauben, dass Verknüpfungen in der URL rekursiv verfolgt werden können. Dies wird geprüft, indem in den HTML Kopfdaten nach der "nofollow"−Direktive gesucht wird.

Beachten Sie, dass die Verzeichnisrekursion alle Dateien in diesem Verzeichnis liest, nicht nur eine Untermenge wie bspw. “index.html*“.

BEMERKUNGEN

URLs von der Kommandozeile die mit ftp. beginnen werden wie ftp://ftp. behandelt, URLs die mit www. beginnen wie http://www.. Sie können auch lokale Dateien angeben.

Falls sich Ihr System automatisch mit dem Internet verbindet (z.B. mit diald), wird es dies tun wenn Sie Links prüfen, die nicht auf Ihren lokalen Rechner verweisen Benutzen Sie die Optionen −s und −i, um dies zu verhindern.

Javascript Links werden zur Zeit ignoriert.

Wenn Ihr System keine Threads unterstützt, deaktiviert diese LinkChecker automatisch.

Sie können mehrere Benutzer/Passwort Paare in einer Konfigurationsdatei angeben.

Beim Prüfen von news: Links muß der angegebene NNTP Rechner nicht unbedingt derselbe wie der des Benutzers sein.

UMGEBUNG

NNTP_SERVER − gibt Standard NNTP Server an
http_proxy
− gibt Standard HTTP Proxy an
ftp_proxy
− gibt Standard FTP Proxy an
no_proxy
− kommaseparierte Liste von Domains, die nicht über einen Proxy−Server kontaktiert werden
LC_MESSAGES
, LANG, LANGUAGE − gibt Ausgabesprache an

RÜCKGABEWERT

Der Rückgabewert ist nicht Null falls

ungültige Verknüpfungen gefunden wurden oder

Warnungen gefunden wurden und Warnungen aktiviert sind

ein Programmfehler aufgetreten ist.

LIMITIERUNGEN

LinkChecker benutzt Hauptspeicher für jede zu prüfende URL, die in der Warteschlange steht. Mit tausenden solcher URLs kann die Menge des benutzten Hauptspeichers sehr groß werden. Dies könnte das Programm oder sogar das gesamte System verlangsamen.

DATEIEN

/etc/linkchecker/linkcheckerrc, ~/.linkchecker/linkcheckerrc − Standardkonfigurationsdateien
~/.linkchecker/blacklist
− Standard Dateiname der blacklist Logger Ausgabe
linkchecker−out.
TYP − Standard Dateiname der Logausgabe
http://docs.python.org/lib/standard−encodings.html
− gültige Ausgabe Enkodierungen
http://www.amk.ca/python/howto/regex/
− Dokumentation zu regulären Ausdrücken

SIEHE AUCH

linkcheckerrc(5)

AUTHOR

Bastian Kleineidam <calvin [AT] users.net>

COPYRIGHT

Copyright © 2000−2010 Bastian Kleineidam

COMMENTS

blog comments powered by Disqus