croni :D

habe meine idee von gestern mal nachprogrammiert:

vorher legen wir die tabelle mit beispieldaten an:

CREATE TABLE `croni` (
`id` tinyint(10) NOT NULL default '0',
`befehl` varchar(160) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `croni` (`id`, `befehl`) VALUES (1, 'gedit');
diese beispieldaten bitte drin lassen.

dann brauchen wir:

eingabe.php:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head><title>croni – eingabe</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
</head>
<body>
<?php
@mysql_connect(“localhost”, “user”, “password”) or die(“Verbindung momentan nicht m&ouml;glich.”);
@mysql_select_db(“datenbank”)or die(“Datenbankzugriff gescheitert!”);

if(isset($_REQUEST["befehl"])&&!empty($_REQUEST["befehl"])) {

$befehl = $_REQUEST["befehl"];

    $sql = “UPDATE `croni` SET `befehl` = ‘$befehl’ WHERE `id` =’1′”;
       
        if(mysql_query($sql)){echo “<p><strong>eingabe erfolgreich.</strong></p>”;}

}

?>
<form method=”get” action=”<?php echo $_SERVER['PHP_SELF']?>”>
<label>befehl: <input type=”text” name=”befehl” /></label><input type=”submit” />
</form>
</body>
</html>

ausgabe.php:

<?php
@mysql_connect(“localhost”, “user”, “password”) or die(“Verbindung momentan nicht m&ouml;glich.”);
@mysql_select_db(“datenbank”)or die(“Datenbankzugriff gescheitert!”);
    $sql = “SELECT befehl FROM croni WHERE id =’1′”;
        $res = mysql_query($sql);
        while ($row = mysql_fetch_array($res)){
        echo $row["befehl"];
        }
            $sql2 = “UPDATE `croni` SET `befehl` = ” WHERE `id` =’1′”;
            mysql_query($sql2);
?>

/usr/bin/croni_check:
w3m -dump http://fapeg.com/geheimerordner/ausgabe.php > /home/fabian/croni_ausgabe

/usr/bin/croni_out:
myData=""
myFile="/home/fabian/croni_ausgabe"
myData=`cat $myFile`
$myData

croni_do:

croni_check
croni_out

zum schluss die crontab-datei:

#Shell variable for cron
SHELL=/bin/bash
# PATH variable for cron
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11
#M S T M W Befehl
#-----------------------------------------------------------------
*/10 * * * * DISPLAY=:0. croni_do
# DISPLAY=:0. damit auch gui-programme starten

wenn man dann die eingabe.php aufruft kann man den programmnamen eingeben und das programm müsste eigentlich starten. bei jedem aufruf der ausgabe.php wird der aktuelle wert ausgegeben und dann gelöscht. das programm startet also nicht alle 10 minuten, sondern nur einmal. wenn das script einen leeren wert aus der db holt passiert gar nichts.

Powered by ScribeFire.



Diesen Artikel kommentieren

Ein paar HTML-Tags wie a, b, i usw. sind erlaubt.