Linklint: old-school link checking

Linklint is an Open Source Perl program that checks links on web sites. It is licensed under the Gnu General Public License. http://www.linklint.org/

Linklint hasn’t changed since 2001, but its still a great little tool for kicking off a detailed link check for any web site. It’s a Perl app so you’ll need a suitable environment to get things going.

Here’s what I do on my Mac:

Install using the Brew package manager.

$ brew install linklint
==> Downloading http://linklint.org/download/linklint-2.3.5.tar.gz
######################################################################## 100.0%
🍺  /usr/local/Cellar/linklint/2.3.5: 5 files, 164K, built in 2 seconds

Linklint for basic help.

$ linklint
This is linklint Version 2.3.5 (August 13, 2001)
Copyright (c) 1997-2001 James B. Bowlin

Usage: linklint @file @@file -flag [option] linkset linkset ...

  -root dir         Set server root to  "dir" (default ".").
  -host name[:port] Use "name" as domain name of site.
  -http             Check site remotely via http (requires -host).
  -net              Check status of remote http links found in site.
  -help             Show help. (Use "-help_all" for complete usage).                          
  -version          Show version info.

Multi File Output:
  -doc dir          Write many output files in "dir" directory.

Single File Output:
  -error  print errors          -out file      direct output to "file"
  -warn   print warnings        -xref          cross reference
  -list   print files found     -forward       sort by referring file

linkset:
  home page only: /  (default)                   root dir only: /#
  entire site: /@                           and all subdirs: /#/#
  specific links: /link1 /link2 ...        "sub" dir and below: /sub/@ 

Setting up a link checking session can be done direct from the command line. More extensive options can be configured by referencing a config file.

Create a home for linklint reports.

$ mkdir linklint
$ cd linklint/

Run a report.

$  linklint -http -host www.daemon.com.au /@ -doc daemon.com.au

Checking links via http://www.daemon.com.au
that match: /@
1 seed: /

Seed:    /
    checking robots.txt for www.daemon.com.au
Checking /
Checking /case-studies
Checking /case-study/photo-and-imaging-news
Checking /solutions
Checking /solutions/digital-strategy

...8<...SNIP...8<...

Processing ...

writing files to daemon.com.au
wrote 19 txt files
wrote 17 html files
wrote index file index.html

found   1 default index
found 113 other files
found 543 http links
found  11 https links
found   8 unknown links
found   1 named anchor
warn    9 warnings
ERROR   8 missing image files
ERROR   1 missing audio file
ERROR  20 missing other files
ERROR  19 missing named anchors

Linklint found 114 files and checked 102 html files.
There were 29 missing files. 34 files had broken links.
48 errors, 9 warnings.

This example generates an HTML and text report in a folder called ./daemon.com.au.

./daemon.com.au
├── anchor.html
├── anchor.txt
├── anchorX.html
├── anchorX.txt
├── error.html
├── error.txt
├── errorA.html
├── errorA.txt
├── errorAX.html
├── errorAX.txt
├── errorF.html
├── errorF.txt
├── errorX.html
├── errorX.txt
├── file.html
├── file.txt
├── fileF.html
├── fileF.txt
├── fileX.html
├── fileX.txt
├── httpfail.html
├── httpfail.txt
├── httpok.html
├── httpok.txt
├── index.html
├── index.txt
├── log.txt
├── remote.html
├── remote.txt
├── remoteX.html
├── remoteX.txt
├── summary.txt
├── warn.html
├── warn.txt
├── warnF.html
├── warnF.txt
├── warnX.html
└── warnX.txt

The HTML reports look pretty basic, but the data is gold :smile:


Enjoy!