#!/usr/bin/env perl use strict; use warnings; use Digest::MD5 qw(md5_hex); use Memcached::libmemcached qw( memcached_create memcached_server_add memcached_add memcached_free ); use Time::HiRes qw(sleep); my $memc = memcached_create(); memcached_server_add($memc, 'localhost', 11211); my $url = shift or die "No url specified.\n"; while (1) { if ($url =~ m{^\w+://([^/:]+)}) { my $host = $1; my $key = md5_hex($host); warn "Polling $host ($key)...\n"; my $rc = memcached_add($memc, $key, 1, 5); my $time = localtime; if ($rc) { warn "[$time] Requesting..."; system("curl '$url' >/dev/null 2>&1"); sleep 1; } else { warn $memc->errstr, "\n"; sleep 1; } } } memcached_free($memc);