Dit is de opdracht checkbotp die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
Checkbot - WWW-linkverificatie
KORTE INHOUD
controlebot [--koekjes] [--debuggen] [--het dossier bestandsnaam] [--help]
[--mail naar e-mailadressen] [--geen proxy lijst met domeinen]
[--uitgebreid]
[--url start-URL]
[--bij elkaar passen overeenkomen met tekenreeks] [--uitsluiten tekenreeks uitsluiten]
[--volmacht proxy-URL] [--alleen-intern]
[--negeren negeer tekenreeks]
[--filter substitutie reguliere expressie]
[--stijl stijlbestand URL]
[--Opmerking Opmerking] [--slaap seconden] [--time-out time-out]
[--interval seconden] [--niet waarschuwen HTTP-antwoordcodes]
[--inschakelen-virtueel]
[--taal taalcode]
[--onderdrukken onderdrukking bestand]
[start-URL's]
PRODUCTBESCHRIJVING
Checkbot verifieert de links in een specifiek gedeelte van het World Wide Web. Het maakt HTML
pagina's met diagnose.
Checkbot gebruikt LWP om URL's op pagina's te vinden en te controleren. Het ondersteunt dezelfde schema's als:
LWP doet dat en vindt dezelfde links die HTML::LinkExtor zal vinden.
Checkbot beschouwt links als 'intern' of 'extern'. Interne links zijn links
binnen de webruimte die moet worden gecontroleerd. Als een interne link naar een web verwijst
document dit document wordt opgehaald en de koppelingen worden geëxtraheerd en verwerkt. extern
links worden alleen gecontroleerd om te werken. Checkbot controleert links zoals het ze vindt, dus intern
en externe links worden tegelijkertijd gecontroleerd, ook al worden ze verschillend behandeld.
Opties voor Checkbot zijn:
--koekjes
Accepteer cookies van de server en bied ze op later verzoek opnieuw aan. Dit kan zijn
handig voor servers die cookies gebruiken om sessies af te handelen. Checkbot standaard niet
accepteer eventuele cookies.
--debuggen
Schakel de foutopsporingsmodus in. Niet echt meer ondersteund, maar het zal wel wat bestanden behouden
rond die anders zou worden verwijderd.
--het dossier
Gebruik het bestand filet naam als basis voor de samenvattende bestandsnamen. De overzichtspagina zal
krijgen de filet naam gegeven, en de serverpagina's zijn gebaseerd op de filet naam zonder de
.html extensie. Als u deze optie bijvoorbeeld instelt op "index.html" zal een
overzichtspagina met de naam index.html en serverpagina's met de naam index-server1.html en
indexserver2.html.
De standaardwaarde voor deze optie is "checkbot.html".
--help
Toont kort helpbericht op de standaarduitvoer.
--mailto [, ]
Mail naar de email adres wanneer Checkbot klaar is met controleren. Je kunt meer geven dan
één adres gescheiden door komma's. De notificatie-e-mail bevat een kleine samenvatting van:
de resultaten. Vanaf Checkbot 1.76 wordt e-mail alleen verzonden als er problemen zijn gevonden tijdens:
de Checkbot-run.
--noproxy
Proxyverzoeken niet naar de opgegeven domeinen sturen. De lijst met domeinen moet een komma-
gescheiden lijst. Vermijd bijvoorbeeld het gebruik van de proxy voor de localhost en
someserver.xyz, kunt u "--noproxy localhost,someserver.xyz" gebruiken.
--uitgebreid
Toon uitgebreide uitvoer tijdens het hardlopen. Bevat alle gecontroleerde links, resultaten van de
cheques enz.
--url
Stel de start-URL in. Checkbot begint te controleren op deze URL en controleert vervolgens recursief
alle links op deze pagina. De start-URL heeft voorrang op aanvullende URL's
opgegeven op de opdrachtregel.
Als er geen schema is opgegeven voor de URL, wordt uitgegaan van het bestandsprotocol.
--bij elkaar passen
Deze optie selecteert welke pagina's Checkbot als lokaal beschouwt. Als de match snaar is
bevat in de URL, dan beschouwt Checkbot de pagina als lokaal, haalt deze op, en
zal alle links die erop staan controleren. Anders wordt de pagina als extern beschouwd
en het wordt alleen gecontroleerd met een HEAD-verzoek.
Indien niet expliciet match snaar is gegeven, worden de start-URL's (zie optie "--url") gebruikt
in plaats daarvan als een overeenkomstreeks. In dit geval wordt de naam van de laatste pagina, indien aanwezig, bijgesneden.
Bijvoorbeeld een start-URL zoals "http://some.site/index.html" zal resulteren in een standaard
match snaar van "http://some.site/".
De match snaar kan een perl reguliere expressie zijn. Om bijvoorbeeld de hoofd
serverpagina en alle HTML-pagina's er direct onder, maar niet de HTML-pagina's in de
submappen van de server, de match snaar zou
"www.someserver.xyz/($|[^/]+.html)".
--uitsluiten
URL's die overeenkomen met de uitsluiten snaar worden als extern beschouwd, ook al zijn ze
match de match snaar (Zie optie "--match"). URL's die overeenkomen met de tekenreeks --exclude zijn
wordt nog steeds gecontroleerd en zal worden gerapporteerd als er problemen worden gevonden, maar dat zal niet het geval zijn
gecontroleerd op verdere links naar de site.
De uitsluiten snaar kan een perl reguliere expressie zijn. Om bijvoorbeeld alle URL's in overweging te nemen
met een externe querystring, gebruik "[=\?]". Dit kan handig zijn wanneer een URL met een zoekopdracht
string ontgrendelt het pad naar een enorme database die zal worden gecontroleerd.
--filter
Deze optie definieert een filter snaar, wat een perl reguliere expressie is. Dit filter
wordt uitgevoerd op elke gevonden URL, waardoor de URL wordt herschreven voordat deze in de wachtrij komt om te worden
gecontroleerd. Het kan worden gebruikt om elementen van een URL te verwijderen. Deze optie kan handig zijn wanneer:
symbolische koppelingen verwijzen naar dezelfde map, of wanneer een inhoudbeheersysteem toevoegt
sessie-ID's naar URL's.
"/old/new/" zou bijvoorbeeld voorkomens van 'old' vervangen door 'new' in elke URL.
--negeren
URL's die overeenkomen met de negeren snaar worden helemaal niet gecontroleerd, ze worden volledig genegeerd door
Checkbot. Dit kan handig zijn om bekende probleemlinks te negeren, of om leidende links te negeren
in databanken. De negeren snaar komt overeen na de filter snaar is aangebracht.
De negeren snaar kan een perl reguliere expressie zijn.
"www.server.com\/(één|twee)" zou bijvoorbeeld overeenkomen met alle URL's die beginnen met ofwel
www.server.com/one of www.server.com/two.
--volmacht
Dit kenmerk specificeert de URL van een proxyserver. Alleen de HTTP- en FTP-verzoeken
naar die proxyserver worden verzonden.
--alleen-intern
Sla het controleren van externe links aan het einde van de Checkbot-run over. Alleen overeenkomend
koppelingen worden gecontroleerd. Houd er rekening mee dat sommige omleidingen er nog steeds voor kunnen zorgen dat externe links
gecontroleerd.
--Opmerking
De nota wordt letterlijk in het mailbericht opgenomen (zie optie "--mailto"). Dit kan zijn
handig om bijvoorbeeld de URL van de samenvattende HTML-pagina op te nemen voor gemakkelijke verwijzing.
Alleen zinvol in combinatie met de optie "--mailto".
--slaap
Aantal seconden om tussen verzoeken te slapen. Standaard is 0 seconden, dus niet doen
slaap helemaal niet tussen verzoeken. Het instellen van deze optie kan handig zijn om de belasting aan te houden
de webserver down tijdens het uitvoeren van Checkbot. Deze optie kan ook worden ingesteld op a
fractioneel getal, dwz een waarde van 0.1 slaapt een tiende van een seconde tussen
verzoeken.
--time-out
Standaard time-out voor de verzoeken, opgegeven in seconden. De standaardwaarde is 2 minuten.
--interval
Het maximale interval tussen updates van de webpagina's met resultaten in seconden. Standaard is 3
uur (10800 seconden). Checkbot start het interval op één minuut, en geleidelijk
verleng het naar het maximale interval.
--stijl
Wanneer deze optie wordt gebruikt, sluit Checkbot deze URL in als een link naar een stijlbestand op elke
pagina die het schrijft. Dit maakt het gemakkelijk om de lay-out aan te passen van pagina's die zijn gegenereerd door
Controlebot.
--dontwarn
Voeg geen waarschuwingen toe aan de resultaatpagina's voor die HTTP-antwoordcodes die overeenkomen
de reguliere expressie. --dontwarn "(301|404)" zou bijvoorbeeld geen 301 bevatten en
404 antwoordcodes.
Checkbot gebruikt de responscodes die door de server zijn gegenereerd, zelfs als deze responscode
is niet gedefinieerd in RFC 2616 (HTTP/1.1). Naast de normale HTTP-antwoordcode,
Checkbot definieert een aantal responscodes voor situaties die technisch niet geschikt zijn
probleem, maar dat in veel gevallen toch voor problemen zorgt. Deze codes zijn:
901 Hostnaam verwacht maar niet gevonden
In dit geval ondersteunt de URL een hostnaam, maar is er geen gevonden
in de url. Dit duidt meestal op een fout in de URL. Een
uitzondering is dat deze controle niet wordt toegepast op nieuws: URL's.
902 Niet-gekwalificeerde hostnaam gevonden
In dit geval bevat de hostnaam niet het domeingedeelte.
Dit betekent meestal dat de pagina's goed werken wanneer ze worden bekeken binnen
het oorspronkelijke domein, maar niet van buitenaf bekeken.
903 Dubbele schuine streep in URL-pad
De URL heeft een dubbele schuine streep. Dit is legaal, maar sommige web
servers kunnen het niet goed aan en kunnen ervoor zorgen dat Checkbot
Weglopen. Zie ook de reacties hieronder.
904 Onbekend schema in URL
De URL begint met een schema dat Checkbot niet kent
wat betreft. Dit wordt vaak veroorzaakt door het verkeerd typen van het schema van de URL,
maar de regeling kan ook een juridische zijn. Laat in dat geval a.u.b.
me weten zodat het kan worden toegevoegd aan Checkbot.
--inschakelen-virtueel
Met deze optie kunt u omgaan met virtuele servers. Checkbot gaat er dan vanuit dat alle
hostnamen voor interne servers zijn uniek, ook al zijn hun IP-adressen de
dezelfde. Normaal gesproken gebruikt Checkbot het IP-adres om servers te onderscheiden. Dit heeft de
voordeel dat als een server twee namen heeft (bijv. www en bamboozle), de pagina's alleen
een keer gecontroleerd. Wanneer u meerdere virtuele servers wilt controleren geeft dit problemen,
waar deze functie omheen werkt door de hostnaam te gebruiken om de server te onderscheiden.
--taal
Het argument voor deze optie is een taalcode van twee letters. Checkbot gebruikt taal
onderhandelen om bestanden in die taal op te vragen. De standaard is om Engels aan te vragen
taal (taalcode 'en').
--onderdrukken
Het argument voor deze optie is een bestand dat combinaties van foutcodes en
URL's waarvoor waarschuwingen moeten worden onderdrukt. Dit kan worden gebruikt om rapportage van bekende en
niet-herstelbare URL-fouten of waarschuwingen.
Het formaat van het onderdrukkingsbestand is een eenvoudig door spaties gescheiden formaat, ten eerste
met de foutcode gevolgd door de URL. Elke combinatie van foutcode en URL is:
vermeld op een nieuwe regel. Opmerkingen kunnen aan het bestand worden toegevoegd door de regel te beginnen met a
"#" karakter.
# 301 is permanent verhuist
301 http://www.w3.org/P3P
# 403 verboden
403 http://www.herring.com/
Voor meer flexibiliteit kan een reguliere expressie worden gebruikt in plaats van een normale URL. De
reguliere expressie moet worden omsloten met schuine strepen. Om bijvoorbeeld alles te onderdrukken
403 fouten op wikipedia:
403 /http:\/\/wikipedia.org/.*/
Verouderde opties die in een toekomstige release zullen verdwijnen:
--allow-simple-hosts (verouderd)
Deze optie schakelt waarschuwingen uit over URL's die niet-gekwalificeerde hostnamen bevatten. Dit
is handig voor intranetsites die vaak alleen een simpele hostnaam gebruiken of zelfs
"localhost" in hun links.
Het gebruik van deze optie wordt afgeraden. Gebruik het --dontwarn-mechanisme voor fout 902
gebruiken.
TIPS EN TIPS
Problemen met het controleren van FTP-links
Sommige gebruikers kunnen consistente problemen ondervinden bij het controleren van FTP-links. In deze gevallen
het kan handig zijn om Net::FTP te instrueren om de passieve FTP-modus te gebruiken om bestanden te controleren. Dit kan
worden gedaan door de omgevingsvariabele FTP_PASSIVE in te stellen op 1. Gebruik bijvoorbeeld de
bash-shell: "FTP_PASSIVE=1 checkbot ...". Zie de Net::FTP-documentatie voor meer
details.
Op hol geslagen checkbot
In sommige gevallen duurt het letterlijk een eeuwigheid voordat Checkbot klaar is. Er zijn twee veelvoorkomende oorzaken:
voor dit probleem.
Ten eerste kan er een databasetoepassing zijn als onderdeel van de website die een
nieuwe pagina op basis van links op een andere pagina. Aangezien Checkbot door alles probeert te reizen
links maakt dit een oneindig aantal pagina's. Dit soort wegloopeffect is:
meestal voorspelbaar. Dit kan worden vermeden door de optie --exclude te gebruiken.
Ten tweede kan een serverconfiguratieprobleem een lus veroorzaken bij het genereren van URL's voor pagina's
die bestaan echt niet. Dit resulteert in URL's van het formulier
http://some.server/images/images/images/logo.png, met steeds meer 'beelden' erbij.
Checkbot kan dit niet controleren omdat de server had moeten aangeven dat de
opgevraagde pagina's bestaan niet. Er is geen gemakkelijke manier om dit op te lossen, behalve het repareren van de
beledigende webserver of de verbroken links.
Problemen met https://-links
Het foutbericht
Kan objectmethode "nieuw" niet vinden via pakket "LWP::Protocol::https::Socket"
betekent meestal dat de huidige installatie van LWP geen ondersteuning biedt voor het controleren van SSL
links (dwz links die beginnen met https://). Dit probleem kan worden opgelost door te installeren
de Crypt::SSLeay-module.
Voorbeelden
Het meest eenvoudige gebruik van Checkbot is om een reeks pagina's op een server te controleren. Om mijn . te controleren
checkbot-pagina's die ik zou gebruiken:
controlebot http://degraaff.org/checkbot/
Checkbot-runs kunnen enige tijd duren, dus Checkbot kan een meldingsmail sturen wanneer de run is
gedaan:
checkbot --mailto hans@degraaff.org http://degraaff.org/checkbot/
Het is mogelijk om een set lokale bestanden te controleren zonder een webserver te gebruiken. Dit werkt alleen
voor statische bestanden, maar kan in sommige gevallen nuttig zijn.
checkbot-bestand:///var/www/documents/
PREREQUISITES
Dit script maakt gebruik van de "LWP"-modules.
VEREISTEN
Dit script kan e-mail verzenden wanneer "Mail::Send" aanwezig is.
Checkbotp online gebruiken met onworks.net-services