bashscript

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
linusj87
Inlägg: 4
Blev medlem: 29 mar 2010, 09:07
OS: Ubuntu

bashscript

Inlägg av linusj87 »

Jag vill skriva ett bash-script, dock klarar jag inte av det med mina kunskaper.
Det scriptet ska göra är att söka gå igenom ett (stort) antal webbsidor och kolla vilka som går att kolla på.
tex https://connect.sunet.se/p78054136
det är en acobe connect-film, det är alltså sådanna filmer jag är ute efter.
Är det möjligt att skriva ett skrip som går igenom alla https://connect.sunet.se/p00000000 - 99999999 sidor och skriver ut de fungerande sidorna på ett txt-dokument?

Det är alltså nästan 100000000 sidor att gå igenom. Mycket alltså. Är det ens möjligt?
Användarvisningsbild
Dr Phil
Inlägg: 172
Blev medlem: 26 jun 2009, 04:17
OS: Ubuntu
Utgåva: 18.04 Bionic Beaver LTS

Re: bashscript

Inlägg av Dr Phil »

Det är väldigt många sidor att kolla igenom.
Låt oss anta att du faktiskt hinner kolla upp så mycket som tre sidor per sekund och att du har på en dator som testar sidor dygnet runt.

100000000/(3*60*60*24*365) = 1.05

Då skulle du vara färdig på lite drygt ett år.
Men ja, rent teoretiskt skulle du kunna bygga ett script som testar varenda sida.
Bild
linusj87
Inlägg: 4
Blev medlem: 29 mar 2010, 09:07
OS: Ubuntu

Re: bashscript

Inlägg av linusj87 »

Det var det jag misstänkte.

Går det inte att via ett script kolla flera sidor samtidigt eller på något annat sätt öka farten?
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: bashscript

Inlägg av mcNisse »

Det är möjligt... och mycket troligt att du behöver göra för att ens komma upp i 3 sidor/s. Men du kan inte lasta på hur mycket som helst. Då blir det en DoS attack av ditt skript ;)
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: bashscript

Inlägg av dmz »

Är det något sådant här du menar? Du får ändra regexet själv eftersom du inte berättade vad det ska vara för extension.

Kod: Markera allt

use strict;
use WWW::Mechanize;

my $m = WWW::Mechanize->new;
$m->agent_alias('Windows Mozilla');
if(!@ARGV) {
  print 'Give me uris', "\n";
}

my @urls = @ARGV;

sub fetch {
  my @urls = (@_);
  foreach my $url(@urls) {
    $m->get($url) or warn 'DEAD!';
  }
  foreach my $grabbed($m->links) {
    if($grabbed->url_abs =~ m/.*/ix) {
      print $grabbed->url_abs, "\n"
    }
  }
}
&fetch(@urls);
Då kan du använda det i stil med;

Kod: Markera allt

perl foo.pl http://foo.bar/page{1..30}
(osäker på om {1..30} fungerar i bash... någon?)
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: bashscript

Inlägg av dmz »

Denna lär vara ännu simplare att använda för just ditt syfte http://search.cpan.org/~abeltje/WWW-Che ... eckSite.pm
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Rune.K
Inlägg: 6437
Blev medlem: 09 jul 2008, 17:19
OS: Kubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: bashscript

Inlägg av Rune.K »

Försöker du köra 100000000 anrop till sunet.se rakt av, så lär deras brandvägg reagera och ditt IP blir bannat.
Skriv svar

Återgå till "Terminalforum"