LINKCHECKER(1)

NAME
linkchecker - Kommandozeilenprogramm zum Prüfen von HTML Dokumenten und Webseiten auf ungültige Verknüpfungen

SYNTAX

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

•   support for HTTP/1.1, HTTPS, FTP, mailto: and local file links

•   Einschränkung der Linküberprüfung mit URL-Filter

•   Proxy-Unterstützung

•   username/password authorization for HTTP and FTP

•   Unterstützung des robots.txt Protokolls

•   Unterstützung für Cookies

•   Unterstützung für HTML5

•   Antivirusprüfung

•   ein Kommandozeilenprogramm und web interface

BEISPIELE

Der häufigste Gebrauchsfall prüft die angegebene Domäne rekursiv:

$ linkchecker http://www.example.com/

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.

Prüfe keine /secret URLs. Alle anderen Verknüpfungen werden wie üblich geprüft:

$ linkchecker --ignore-url=/secret mysite.example.com

Überprüfung einer lokalen HTML Datei unter Unix:

$ linkchecker ../bla.html

Überprüfung einer lokalen HTML Datei unter Windows:

C:\> linkchecker c:empest.html

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

$ linkchecker www.example.com

Sie können den ftp:// URL Anteil weglassen wenn die Domäne mit ftp. beginnt:

$ linkchecker -r0 ftp.example.com

Erzeuge einen Sitemap Graphen und konvertiere ihn mit dem graphviz dot Programm:

$ linkchecker -odot -v www.example.com | dot -Tps > sitemap.ps

OPTIONEN

  Allgemeine Optionen

-f FILENAME, --config=FILENAME
    Use FILENAME as configuration file. By default LinkChecker uses $XDG_CONFIG_HOME/linkchecker/linkcheckerrc.

-h, --help
    Hilfe! Gebe Gebrauchsanweisung für dieses Programm aus.

-t NUMBER, --threads=NUMBER
    Generiere nicht mehr als die angegebene Anzahl von Threads. Die Standardanzahl 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.

--list-plugins
    Print available check plugins and exit.

  Ausgabeoptionen

  URL checking results

-F TYPE[/ENCODING][/FILENAME], --file-output=TYPE[/ENCODING][/FILENAME]
    Output to a file linkchecker-out.TYPE, $XDG_DATA_HOME/linkchecker/failures for the failures output type, or FILENAME if specified. The ENCODING specifies the output encoding, the default is that of your locale. Valid encodings are listed at https://docs.python.org/library/codecs.html#standard-encodings. The FILENAME and ENCODING parts of the none output type will be ignored, else if the file already exists, it will be overwritten. You can specify this option more than once. Valid file output TYPEs are text, html, sql, csv, gml, dot, xml, sitemap, none or failures. Default is no file output. The various output types are documented below. Note that you can suppress all console output with the option -o none.

--no-warnings
    Gebe keine Warnungen aus. Standard ist die Ausgabe von Warnungen.

-o TYPE[/ENCODING], --output=TYPE[/ENCODING]
    Specify the console output type as text, html, sql, csv, gml, dot, xml, sitemap, none or failures. Default type is text. The various output types are documented below. The ENCODING specifies the output encoding, the default is that of your locale. Valid encodings are listed at https://docs.python.org/library/codecs.html#standard-encodings.

-v, --verbose
    Log all checked URLs, overriding --no-warnings. Default is to log only errors and warnings.

  Progress updates

--no-status
    Do not print URL check status messages.

  Application

-D STRING, --debug=STRING
    Print debugging output for the given logger. Available debug loggers are cmdline, checking, cache, plugin and all. all is an alias for all available loggers. This option can be given multiple times to debug with more than one logger.

  Quiet

-q, --quiet
    Quiet operation, an alias for -o none that also hides application information messages. This is only useful with -F, else no results will be output.

  Optionen zum Prüfen

--cookiefile=FILENAME
    Use initial cookie data read from a file. The cookie data format is explained below.

--check-extern
    Check external URLs.

--ignore-url=REGEX
    URLs matching the given regular expression will only be syntax checked. This option can be given multiple times. See section REGULAR EXPRESSIONS for more info.

--no-follow-url=REGEX
    Prüfe URLs die auf den regulären Ausdruck zutreffen, aber führe keine Rekursion durch. Diese Option kann mehrmals angegeben werden. Siehe Abschnitt REGULAR EXPRESSIONS für weitere Infos.

--no-robots
    Check URLs regardless of any robots.txt files.

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

-r NUMBER, --recursion-level=NUMBER
    Prüfe rekursiv alle URLs bis zu der angegebenen Tiefe. Eine negative Tiefe bewirkt unendliche Rekursion. Standard Tiefe ist unendlich.

--timeout=NUMBER
    Setze den Timeout für TCP-Verbindungen in Sekunden. Der Standard Timeout ist 60 Sekunden.

-u STRING, --user=STRING
    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.

  Input options

--stdin
    Read from stdin a list of white-space separated URLs to check.

FILE-OR-URL
    The location to start checking with. A file can be a simple list of URLs, one per line, if the first line is "# LinkChecker URL list".

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.

sitemap
    Protokolliere Prüfergebnisse als XML Sitemap dessen Format unter https://www.sitemaps.org/protocol.html dokumentiert ist.

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.

failures
    Suitable for cron jobs. Logs the check result into a file $XDG_DATA_HOME/linkchecker/failures which only contains entries with invalid URLs and the number of times they have failed.

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 https://docs.python.org/howto/regex.html für eine Einführung. Eine Ergänzung ist, dass ein regulärer Ausdruck negiert wird falls er mit einem Ausrufezeichen beginnt.

COOKIE-DATEIEN

Eine Cookie-Datei enthält Standard HTTP-Header (RFC 2616) mit den folgenden möglichen Namen:

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 (erforderlich)
    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"

    Host: example.org
    Set-cookie: baggage="elitist"; comment="hologram"

PROXY UNTERSTÜTZUNG

To use a proxy on Unix or Windows set the http_proxy or https_proxy environment variables to the proxy URL. The URL should be of the form http://[user:pass@]host[:port]. LinkChecker also detects manual proxy settings of Internet Explorer under Windows systems. On a Mac use the Internet Config to select a proxy. You can also set a comma-separated domain list in the no_proxy environment variable to ignore any proxy settings for these domains. The curl_ca_bundle environment variable can be used to identify an alternative certificate bundle to be used with an HTTPS proxy.

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:

C:\> 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. 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.  Check the address syntax, both the parts 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:)
    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

Nicht unterstützte Links (javascript:, etc.)
    Ein nicht unterstützter Link wird nur eine Warnung ausgeben. Weitere Prüfungen werden nicht durchgeführt.

    Die komplette Liste von erkannten, aber nicht unterstützten Links ist in der Quelldatei linkcheck/checker/unknownurl.py. Die bekanntesten davon dürften JavaScript-Links sein.

SITEMAPS

Sitemaps are parsed for links to check and can be detected either from a sitemap entry in a robots.txt, or when passed as a FILE-OR-URL argument in which case detection requires the urlset/sitemapindex tag to be within the first 70 characters of the sitemap. Compressed sitemap files are not supported.

PLUGINS

There are two plugin types: connection and content plugins. Connection plugins are run after a successful connection to the URL host. Content plugins are run if the URL type has content (mailto: URLs have no content for example) and if the check is not forbidden (ie. by HTTP robots.txt). Use the option --list-plugins for a list of plugins and their documentation. All plugins are enabled via the linkcheckerrc(5) configuration file.

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.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 Option --ignore-url, um dies zu verhindern.

Javascript Links werden nicht unterstützt.

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

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

UMGEBUNG

http_proxy
    gibt Standard HTTP Proxy an

https_proxy
    specifies default HTTPS proxy server

curl_ca_bundle
    an alternative certificate bundle to be used with an HTTPS proxy

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

•   ein Programmfehler aufgetreten ist.

    Der Rückgabewert ist 1 falls

•   ungültige Verknüpfungen gefunden wurden oder

•   Warnungen gefunden wurden und Warnungen aktiviert sind

    Sonst ist der Rückgabewert Null.

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

$XDG_CONFIG_HOME/linkchecker/linkcheckerrc - default configuration file

$XDG_DATA_HOME/linkchecker/failures - default failures logger output filename

linkchecker-out.TYP - Standard Dateiname der Logausgabe

SIEHE AUCH

linkcheckerrc(5)

https://docs.python.org/library/codecs.html#standard-encodings - gültige Ausgabe Enkodierungen

https://docs.python.org/howto/regex.html - Dokumentation zu regulären Ausdrücken

AUTHOR
Bastian Kleineidam <bastian.kleineidam@web.de>

COPYRIGHT
2000-2016 Bastian Kleineidam, 2010-2023 LinkChecker Authors