LINKCHECKER(1) | LinkChecker auf der Kommandozeile | LINKCHECKER(1) |
NAME¶
linkchecker - Kommandozeilenprogramm zum Prüfen von HTML Dokumenten und Webseiten auf ungültige VerknüpfungenSYNTAX¶
linkchecker [Optionen] [Datei-oder-URL]...BESCHREIBUNG¶
LinkChecker beinhaltet- •
- rekursives Prüfen und Multithreading
- •
- Ausgabe als farbigen oder normalen Text, HTML, SQL, CSV, XML oder einen Sitemap-Graphen in verschiedenen Formaten
- •
- Unterstützung von HTTP/1.1, HTTPS, FTP, mailto:, news:, nntp:, Telnet und Verknüpfungen auf lokale Dateien
- •
- Einschränkung der Linküberprüfung mit URL-Filter,
- •
- Proxy-Unterstützung
- •
- Benutzer/Passwort Authorisierung für HTTP, FTP und Telnet
- •
- Unterstützung des robots.txt Protokolls
- •
- Unterstützung für Cookies
- •
- Unterstützung für HTML5
- •
- HTML- und CSS-Syntaxprüfung
- •
- Antivirusprüfung
- •
- ein Kommandozeilenprogramm, GUI und web interface
BEISPIELE¶
Der häufigste Gebrauchsfall prüft die angegebene Domäne rekursiv, inklusive aller einzelnen nach außen zeigenden Verknüpfungen:linkchecker http://www.example.net/
linkchecker --ignore-url=^mailto: mysite.example.org
linkchecker ../bla.html
linkchecker c:\temp\test.html
linkchecker www.example.com
linkchecker -r0 ftp.example.org
linkchecker -odot -v www.example.com | dot -Tps > sitemap.ps
OPTIONEN¶
Allgemeine Optionen¶
- -fDATEINAME, --config=DATEINAME
- Benutze DATEINAME als Konfigurationsdatei. Standardmäßig benutzt LinkChecker ~/.linkchecker/linkcheckerrc.
- -h, --help
- Hilfe! Gebe Gebrauchsanweisung für dieses Programm aus.
- --stdin
- Lese Liste von URLs zum Prüfen von der Standardeingabe, getrennt durch Leerzeichen.
- -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.
- -V, --version
- Gebe die Version aus und beende das Programm.
Ausgabeoptionen¶
- --check-css
- Prüfe Syntax von CSS URLs mit cssutils. Wenn es nicht installiert ist, prüfe mit dem W3C Online Validator.
- --check-html
- Prüfe Syntax von HTML URLs mit HTML tidy. Wenn es nicht installiert ist, prüfe mit dem W3C Online Validator.
- --complete
- Gebe alle geprüften URLs aus. Standard ist es, doppelte URLs nur einmal auszugeben.
- -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.
- -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. Das
ENCODING gibt die Ausgabekodierung an. Der Standard ist das der
lokalen Spracheinstellung. Gültige Enkodierungen sind unter
http://docs.python.org/library/codecs.html#standard-encodings
aufgelistet.
- --no-status
- Gebe keine Statusmeldungen aus.
- --no-warnings
- Gebe keine Warnungen aus. Standard ist die Ausgabe von Warnungen.
- -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.
- --profile
- Schreibe Profiling-Daten in eine Datei namens linkchecker.prof im aktuellen Arbeitsverzeichnis. Siehe auch --viewprof.
- -q, --quiet
- Keine Ausgabe, ein Alias für -o none. Dies ist nur in Verbindung mit -F nützlich.
- --scan-virus
- Prüfe Inhalt von URLs auf Viren mit ClamAV.
- --trace
- Trace-Information ausgeben.
- -v, --verbose
- Gebe alle geprüften URLs einmal aus. Standard ist es, nur fehlerhafte URLs und Warnungen auszugeben.
- --viewprof
- Gebe vorher generierte Profiling-Daten aus. Siehe auch --profile.
- -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.
- --warning-size-bytes=NUMMER
- Gebe eine Warnung aus, wenn die Inhaltsgröße bekannt ist und die angegebene Anzahl von Bytes übersteigt.
Optionen zum Prüfen¶
- -a, --anchors
- Prüfe HTTP Ankerverweise. Standard ist, Ankerverweise nicht zu prüfen. Diese Option aktiviert die Ausgabe der Warnung url-anchor-not-found.
- -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.
- --ignore-url=REGEX
- Prüfe lediglich die Syntax von URLs welche dem
angegebenen regulären Ausdruck entsprechen.
- -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-follow-url=REGEX
- Prüfe URLs, welche dem angegebenen regulären
Ausdruck entsprechen, aber führe keine Rekursion durch.
- -p, --password
- Liest ein Passwort von der Kommandozeile und verwende es für HTTP und FTP Autorisierung. Für FTP ist das Standardpasswort anonymous@. Für HTTP gibt es kein Standardpasswort. Siehe auch -u.
- -PNUMMER, --pause=NUMMER
- Pausiere die angegebene Anzahl von Sekunden zwischen zwei aufeinander folgenden Verbindungen zum demselben Rechner. Standard ist keine Pause zwischen Verbindungen.
- -rNUMMER, --recursion-level=NUMMER
- Prüfe rekursiv alle URLs bis zu der angegebenen Tiefe. Eine negative Tiefe bewirkt unendliche Rekursion. Standard Tiefe ist unendlich.
- --timeout=NUMMER
- Setze den Timeout für TCP-Verbindungen in Sekunden. Der Standard Timeout ist 60 Sekunden.
- -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.
- --user-agent=STRING
- Gibt den User-Agent an, der zu HTTP-Servern geschickt wird,
z.B. "Mozilla/4.0". Der Standard ist
"LinkChecker/X.Y", wobei X.Y die aktuelle Version von
LinkChecker ist.
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¶
LinkChecker akzeptiert Pythons reguläre Ausdrücke. Siehe http://docs.python.org/howto/regex.html für eine Einführung.COOKIE-DATEIEN¶
Eine Cookie-Datei enthält Standard HTTP-Header (RFC 2616) 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.
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"
export http_proxy="http://user1:mypass@proxy.example.org:8081"
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:)
-
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
Versuche, zu dem angegeben Telnetrechner zu verginden und falls Benutzer/Passwort angegeben sind, wird versucht, sich anzumelden.
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.
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)
- “steam:“ (Steam browser 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: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.UMGEBUNG¶
NNTP_SERVER - gibt Standard NNTP Server anRÜCKGABEWERT¶
Der Rückgabewert ist 2 falls- •
- ein Programmfehler aufgetreten ist.
- •
- ungültige Verknüpfungen gefunden wurden oder
- •
- Warnungen gefunden wurden und Warnungen aktiviert sind
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¶
~/.linkchecker/linkcheckerrc - StandardkonfigurationsdateiSIEHE AUCH¶
linkcheckerrc(5)AUTHOR¶
Bastian Kleineidam <calvin@users.sourceforge.net>COPYRIGHT¶
Copyright © 2000-2012 Bastian Kleineidam2010-07-01 | LinkChecker |