Automatische Laden einer Website
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
Automatische Laden einer Website
Hallo,
ich suche ein Script, das alle paar Stunden eine Seite bzw. mehrere aufruft.
Wie kann man das bewerkstelligen?
ich suche ein Script, das alle paar Stunden eine Seite bzw. mehrere aufruft.
Wie kann man das bewerkstelligen?
Zuletzt geändert von herrhannes am 03.06.2006 21:18:02, insgesamt 2-mal geändert.
- Snoopy
- Beiträge: 4297
- Registriert: 17.11.2003 18:26:56
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rh.- Pflz.
Hi
Bastel Dir ein Skript, dass Dir die gewünschte Seite aufruft, und steck es in die Crontab ( siehe [1] ), die es in dem gewünschten Zeitraum aufruft.
Nur mal so als kleiner Schupser oder Gedankenanstoss...einfach mal schnell getippt
[1] Link
Bastel Dir ein Skript, dass Dir die gewünschte Seite aufruft, und steck es in die Crontab ( siehe [1] ), die es in dem gewünschten Zeitraum aufruft.
Nur mal so als kleiner Schupser oder Gedankenanstoss...einfach mal schnell getippt
Code: Alles auswählen
#!/bin/sh
# seite.sh
#
# Kleines Skript zum Aufrufen einer Web-Seite
# Ist die Web-seite denn ueberhaupt da ? Wenn nein...dann verpissen wir uns gleich wieder
# =====
ping -c1 -w2 www.hier_die_gewuenschte_seite.de 2>&1 >/dev/null
if [ "$?" != "0" ]
then
exit 0
fi
/usr/bin/firefox http://www.hier_die_gewuenschte_seite.de
exit 0
Zuletzt geändert von Snoopy am 02.06.2006 16:53:24, insgesamt 1-mal geändert.
noch ein Tipp.Snoopy hat geschrieben:Hi
Bastel Dir ein Skript, dass Dir die gewünschte Seite aufruft, und steck es in die Crontab, die es in dem gewünschten Zeitraum aufruft.
Nur mal so als kleiner Schupser oder Gedankenanstoss...einfach mal schnell getippt[1] LinkCode: Alles auswählen
#!/bin/sh # seite.sh # # Kleines Skript zum Aufrufen einer Web-Seite # Ist die Web-seite denn ueberhaupt da ? Wenn nein...dann verpissen wir uns gleich wieder # ===== ping -c1 -w2 www.hier_die_gewuenschte_seite.de 2>&1 >/dev/null if [ "$?" != "0" ] then exit 0 fi /usr/bin/firefox http://www.hier_die_gewuenschte_seite.de exit 0
Nimm wget anstatt gleich mit der Firefox-"Kanone" auf die "Spatzen"-Website zu schiessen. Wär für die Lösung als Cron-Job sicherlich sinnvoller.
- Snoopy
- Beiträge: 4297
- Registriert: 17.11.2003 18:26:56
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rh.- Pflz.
Er will sie doch anschauen oder net ?gucki hat geschrieben:noch ein Tipp.
Nimm wget anstatt gleich mit der Firefox-"Kanone" auf die "Spatzen"-Website zu schiessen. Wär für die Lösung als Cron-Job sicherlich sinnvoller.
Naja mal sehen was er genaueres vor hat...um das Teil einfach nur anzufunken sicherlich...dann reicht ein
Code: Alles auswählen
wget
Aber wie gesagt
Snoopy hat geschrieben:Nur mal so als kleiner Schupser oder Gedankenanstoss
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
Ja... das Problem ist, ich habe keinen x-Server, Firefox fällt also schon einmal aus.
Mit wget habe ich das schon probiert, aber wie kann man eine Seite laden, die ein bestimmtes Cookie erwartet? Also, ich habe vor mich dort einzuloggen, wobei eiin Cookie gespeichert wird, das aber auch beim Aufruf vom Cronjob ausgelesen werden können muss.
Mit wget habe ich das schon probiert, aber wie kann man eine Seite laden, die ein bestimmtes Cookie erwartet? Also, ich habe vor mich dort einzuloggen, wobei eiin Cookie gespeichert wird, das aber auch beim Aufruf vom Cronjob ausgelesen werden können muss.
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
-
- Beiträge: 2186
- Registriert: 18.09.2005 15:52:02
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Du hängst der Zeile in deiner crontab einherrhannes hat geschrieben:Wie kann ich Cron davon abhalten, bei jeder Ausführung des Scriptes mir eine Mail zu schreiben? Darin steht bloß die Ausgabe von wget...
Code: Alles auswählen
2>&1 >/dev/null
jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
lynx ist für so was (ohne Benutzerinteraktion) auch nicht wirklich das richtige.herrhannes hat geschrieben:Ja... das Problem ist, ich habe keinen x-Server, Firefox fällt also schon einmal aus.
Mit wget habe ich das schon probiert, aber wie kann man eine Seite laden, die ein bestimmtes Cookie erwartet? Also, ich habe vor mich dort einzuloggen, wobei eiin Cookie gespeichert wird, das aber auch beim Aufruf vom Cronjob ausgelesen werden können muss.
Für deine Anwendung musst du dann schon auf PERL zurückgreifen.
Code: Alles auswählen
#!/usr/bin/perl -w
use strict;
use LWP;
use HTTP::Cookies;
my $url = "http://www.website.de";
my $ua = LWP::UserAgent->new();
my $website;
$ua->agent("Mozilla/5.0");
$ua->cookie_jar( {} );
my $form = $ua->get($url . "/login.php") or die "Kann index.php nicht laden";
$form->is_success() or die $form->message();
my $login = $ua->post($url . "/index.php",
[
"username" => "user",
"passwort" => "geheimespasswort",
]
) or die "POST fehlgeschlagen";
if ( $login->content() ne "" ) {
die "Login fehlgeschlagen";
}
$website = $ua->get( $url . "/anzeige.php" ) or print "GET fehlgeschlagen \n";
ACHTUNG: code ist ungetestet und aus einer lauffähigen Version zusammenkopiert. Die Loginfelder "username" und "passwort" sind natürlich den Gegebenheiten anzupassen.
Gruß Gucki
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
Wo hänge ich das an?jhr-online hat geschrieben:Du hängst der Zeile in deiner crontab einherrhannes hat geschrieben:Wie kann ich Cron davon abhalten, bei jeder Ausführung des Scriptes mir eine Mail zu schreiben? Darin steht bloß die Ausgabe von wget...an.Code: Alles auswählen
2>&1 >/dev/null
jhr
Wenn ich es einfach mit einem Leerzecihen dazwischen an das Ende der Zeile hänge, kommt wieder eine Mail, nun mit 2>&1 >/dev/null an den Namen des scriptes gehängt.
wie kann ich es auch schaffen, dass die Seite quasi den Eindruck bekommt, ich schaue sie mir mindestens eine Minute lang an?
Allso wenn es sich um ein Login mit einem Popup handelt (siehe z.B. Heiselogin) so kann du wget name und passwort mitgeben.
Wenn es sich um ein Formular basiertes login sammt cookie handelt, so mußt du erst unterschieden ob das Cookie eine einmalig vergebene "Sessionid" oder die Name/Passwort Komination enthält.
Handelt es sich um eine Name/Passwort kombination so kannst du das Cookie speichern und wget mitgeben
Wenn aber eine "Sessionid" vergeben wird so wird es etwas komplizierter.
Als erstetes mußt du herausfinden was bei einem Login an den Server gesendet wird. Das amchst du auch mit wget aber fügst zwei optionen hinzu. Dann kannst das Cookyfile wie im einfacheren Fall laden.
Ich hoffe das war verständlich...
Ach ja, du kannst einen Cookie auch von hand in den wget-Header einbauen indem du die Option verwendest.
Code: Alles auswählen
--http-user=user --http-password=password
Handelt es sich um eine Name/Passwort kombination so kannst du das Cookie speichern und wget mitgeben
Code: Alles auswählen
--load-cookies file
Als erstetes mußt du herausfinden was bei einem Login an den Server gesendet wird. Das amchst du auch mit wget aber fügst zwei optionen hinzu.
Code: Alles auswählen
--save-cookies file --keep-session-cookies
Ich hoffe das war verständlich...
Ach ja, du kannst einen Cookie auch von hand in den wget-Header einbauen indem du die Option verwendest.
Code: Alles auswählen
--header=header-line
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
Allso müßte ich einen speziellen Cookie in wget unterbringen würde ich es am ehesten wohl so machen:
Wie nun die Cookies beim IE, FF, OP, oder sonst wen abgespeichert werden weiß ich nicht.
Code: Alles auswählen
--header='Cookie: SessionId="236id08783"; $Path=/; $Version="1";'
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
- Leonidas
- Beiträge: 2032
- Registriert: 28.04.2003 13:48:49
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Man kann keine Verweildauer simulieren, weil es sowas wie eine Verweildauer rein technisch gesehen nicht gibt: HTTP ist ein Verbindungsloses Protokoll. Das heißt, dass du eine Verbindung zum Server aufbaus, er dir die Seite schickt udn die Verbindung schließt. Die Seite kannst du dann anschauen so lange du willst, der Server kann nicht herausfinden wie lange du sie dir ansiehst.herrhannes hat geschrieben:Und wie kann man eine Verweildauer simulieren?
Okay, jetzt gibts noch die Möglichkeit das der Betreiber mit Ajax-Kram dem Server alle paar Sekunden sagt, dass die Seite noch offen ist, aber wer macht denn sowas?
Wir wollten einen Marsch spielen, aber wir hatten nur Xylophone.
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
Das mit dem Interupt 15 ("externes quit" wenn man es so nennen will) ist völlig normal. das meldet Lynx.
Das mit dem Putty versteh ich nicht... Wie meinst du das, daß er die Bash nicht anzeigt? du bist immer in der bash (sofern du keine andere shell eingestellt hast) wenn du dich einloggst.
Meinst du den Eingabepromt? Hast du mal geschaut was passiert wenn du einfach RETURN drückst? Es kann sein, daß der Promt überschrieben wurde, aber eine Eingabe sollte dennoch möglich sein.
Das mit dem Putty versteh ich nicht... Wie meinst du das, daß er die Bash nicht anzeigt? du bist immer in der bash (sofern du keine andere shell eingestellt hast) wenn du dich einloggst.
Meinst du den Eingabepromt? Hast du mal geschaut was passiert wenn du einfach RETURN drückst? Es kann sein, daß der Promt überschrieben wurde, aber eine Eingabe sollte dennoch möglich sein.
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten:
Ähm sorry,ToPeG hat geschrieben:Das mit dem Interupt 15 ("externes quit" wenn man es so nennen will) ist völlig normal. das meldet Lynx.
Das mit dem Putty versteh ich nicht... Wie meinst du das, daß er die Bash nicht anzeigt? du bist immer in der bash (sofern du keine andere shell eingestellt hast) wenn du dich einloggst.
Meinst du den Eingabepromt? Hast du mal geschaut was passiert wenn du einfach RETURN drückst? Es kann sein, daß der Promt überschrieben wurde, aber eine Eingabe sollte dennoch möglich sein.
ich bin absoluter Linux-Anfänger, natürlich meinte ich Prompt, aber das Wort ist mir gerade nicht eingefallen... Er zeigt dann das mit dem Interrupt 15 an, den Prompt aber erst wieder wenn ich danach Strg+c drücke. Aber dann kann ich nichts mehr eintippen. Vielleicht ist das aber auch ein Fehler von Putty...
-
- Beiträge: 156
- Registriert: 30.04.2006 10:25:32
-
Kontaktdaten: