Provided by:
linkchecker_5.1-1ubuntu1_i386 
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
-rNUMMER, --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.
--no-proxy-for=REGEX
Rechner welche dem angegebenen regulären Ausdruck entsprechen
sollen direkt und nicht über einen Proxy angesprochen werden.
Diese Option kann mehrmals angegeben werden.
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
$http_proxy, $https_proxy oder $ftp_proxy 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.
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@proxy.example.org:8081"
Setzen eines Proxies unter der Windows Befehlszeile:
set http_proxy=http://proxy.example.com:8080
PERFORMED CHECKES
All URLs have to pass a preliminary syntax test. Minor quoting mistakes
will issue a warning, all other invalid syntax issues are errors.
After the syntax check passes, the URL is queued for connection
checking. All connection check types are described below.
HTTP links (http:, https:)
After connecting to the given HTTP server the given path or
query is requested. All redirections are followed, and if
user/password is given it will be used as authorization when
necessary. Permanently moved pages issue a warning. All final
HTTP status codes other than 2xx are errors. HTML page contents
are checked for recursion.
Local files (file:)
A regular, readable file that can be opened is valid. A readable
directory is also valid. All other files, for example device
files, unreadable or non-existing files are errors. HTML or
other parseable file contents are checked for recursion.
Mail links (mailto:)
A mailto: link eventually resolves to a list of email addresses.
If one address fails, the whole list will fail. For each mail
address we check the following things:
1) Check the adress syntax, both of the part before and after
the @ sign.
2) Look up the MX DNS records. If we found no MX record,
print an error.
3) Check if one of the mail hosts accept an SMTP connection.
Check hosts with higher priority first.
If no host accepts SMTP, we print a warning.
4) Try to verify the address with the VRFY command. If we got
an answer, print the verified address as an info.
FTP links (ftp:)
For FTP links we do:
1) connect to the specified host
2) try to login with the given user and password. The default
user is “anonymous“, the default password is “anonymous@“.
3) try to change to the given directory
4) list the file with the NLST command
- Telnet links (“telnet:“)
We try to connect and if user/password are given, login to the
given telnet server.
- NNTP links (“news:“, “snews:“, “nntp“)
We try to connect to the given NNTP server. If a news group or
article is specified, try to request it from the server.
- Ignored links (“javascript:“, etc.)
An ignored link will only print a warning. No further checking
will be made.
Here is a complete list of recognized, but ignored links. The
most
prominent of them should be JavaScript links.
- “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
Before descending recursively into a URL, it has to fulfill several
conditions. They are checked in this order:
1. A URL must be valid.
2. A URL must be parseable. This currently includes HTML files,
Opera bookmarks files, and directories. If a file type cannot
be determined (for example it does not have a common HTML file
extension, and the content does not look like HTML), it is assumed
to be non-parseable.
3. The URL content must be retrievable. This is usually the case
except for example mailto: or unknown URL types.
4. The maximum recursion level must not be exceeded. It is configured
with the “--recursion-level“ option and is unlimited per default.
5. It must not match the ignored URL list. This is controlled with
the “--ignore-url“ option.
6. The Robots Exclusion Protocol must allow links in the URL to be
followed recursively. This is checked by searching for a
"nofollow" directive in the HTML header data.
Note that the directory recursion reads all files in that directory,
not just a subset like “index.htm*“.
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
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@users.sourceforge.net>
COPYRIGHT
Copyright © 2000-2009 Bastian Kleineidam