SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 02.11.2004, 11:00:03
stefan2k1 stefan2k1 ist offline
Anfänger
 
Registriert seit: Nov 2004
Beiträge: 1
PHP Script per Cronjob

Hi Leute,

was genau brauche ich, um ein PHP-Script per Cronjob ausführen zu lassen ?

Ich habe:

einen Rootserver
Confixx 3.0
Shell-Zugriff als Root

Ich habs schon ein paar mal über crontab von der shell aus probiert aber scheinbar klappt das mit PHP Dateien nicht. Ich möchte einfach nur einmal nachts ein Backup-Script für meine SQL-Datenbank laufen lassen.

Wäre nett wenn jemand helfen könnte.

Danke
Stefan
Mit Zitat antworten
  #2  
Alt 02.11.2004, 11:16:35
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Keine Ahnung, ob das so üblich ist, aber eine Idee wäre wget zu nutzen:
--> http://www.gnu.org/software/wget/wget.html

Den Aufbau der crontab übernimmt Dir sicherlich Confixx.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 02.11.2004, 13:16:08
Matthias Matthias ist offline
Moderator
 
Registriert seit: Jan 2002
Ort: CologneCity
Alter: 46
Beiträge: 484
In der crontab folgenden Eintrag vornehmen (in meinem Beispiel wird diese Datei minütlich ausgeführt):

Code:
* * * * *       root  /root/<datei>.sh >/dev/null 2>&1

Unter root die /root/<datei>.sh anlegen mit folgendem Inhalt:

Code:
#!/bin/sh

wget <pfad zur php Datei>/index.php
rm index.php*
Mit Zitat antworten
  #4  
Alt 02.11.2004, 13:24:29
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Freut mich, dass meine Theorie bestätigt wurde...

Aber warum das: rm index.php*??
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #5  
Alt 02.11.2004, 13:45:19
Matthias Matthias ist offline
Moderator
 
Registriert seit: Jan 2002
Ort: CologneCity
Alter: 46
Beiträge: 484
ruf mal per wget eine .php oder .html Datei auf.
wget erstellt eine Ausgabe Datei mit dem selben Namen bzw. benennt vorhandene um. So müllst du dir ganz schnell die Platte zu.
Mit Zitat antworten
  #6  
Alt 02.11.2004, 13:48:48
Matthias Matthias ist offline
Moderator
 
Registriert seit: Jan 2002
Ort: CologneCity
Alter: 46
Beiträge: 484
ups!!

kleiner Fehler:
Code:
#!/bin/sh

wget localhost/<pfad zur php Datei>/index.php
rm index.php*
Mit Zitat antworten
  #7  
Alt 02.11.2004, 13:52:26
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Zitat:
Original geschrieben von Matthias
ruf mal per wget eine .php oder .html Datei auf.
wget erstellt eine Ausgabe Datei mit dem selben Namen bzw. benennt vorhandene um. So müllst du dir ganz schnell die Platte zu.
Ahso. Kenne wget nur vom Hörensagen. Aber jetzt weiß ich's ja. :)
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #8  
Alt 03.11.2004, 06:10:30
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Re: PHP Script per Cronjob

Zitat:
Original geschrieben von stefan2k1
was genau brauche ich, um ein PHP-Script per Cronjob ausführen zu lassen?
Neben dem Root Zugriff wäre noch einen PHP Version ab 4.3.x angeraten.

Für ein spezielles DB Backup verwende ich folgendes CLI Shellscript
PHP-Code:
#!/usr/bin/php -q 
<?php
define 
('_DBTYPE''mysql');
define ('_DBHOST''localhost');
define ('_DBUSER''root');
define ('_DBPASS''geheim');
define ('_DBNAME''forum1');


define ('CHOWN',   'web0:web0');
define ('BACKUP''/srv/www/htdocs/web0/backup/forum1/');

@
mkdir (BACKUP);

#define ('_DEST', '%s %s > ' . BACKUP . date('Y-m-d'). '.%s.%s.sql');
#define ('_DEST1', '%s %s > ' . BACKUP . '%s.sql');
define ('_DEST1''%s %s > ' BACKUP date('d') . '.data.%s.sql');
define ('_DEST2''%s %s > ' BACKUP 'create.%s.sql');
define ('_CMD1'sprintf('/usr/bin/mysqldump -Q -u%s -p%s -c -t --add-locks --quick --lock-tables '_DBUSER_DBPASS));
define ('_CMD2'sprintf('/usr/bin/mysqldump -Q -u%s -p%s -d --add-locks --quick --lock-tables '_DBUSER_DBPASS));
#define ('_CMD', sprintf('/usr/bin/mysqldump -Q -u%s -p%s --all --opt ', _DBUSER, _DBPASS));

define ('NL'"n");
define ('_DSN'_DBTYPE.'://'._DBUSER.':'._DBPASS.'@'._DBHOST.'/'._DBNAME);

set_include_path ('.:/usr/lib/php');
    
require_once(
'DB.php');

function 
dbError($msg)
{
    die(
sprintf ('%s%s',$msg->getDebugInfo(),"n"));
}

PEAR::setErrorHandling(PEAR_ERROR_CALLBACK'dbError');
$db DB::connect(_DSN);
if (
DB::isError($db)) die ($db->getMessage());
$db->setFetchMode(DB_FETCHMODE_ASSOC);

$data $db->getAll('SHOW TABLES');
$n count($data);

for (
$i=0$i<$n$i++)
{
    
$tab $data[$i]['Tables_in_' _DBNAME];
    if (empty(
$tab)) continue;
    
shell_exec(_CMD1 sprintf(_DEST1_DBNAME$tab$tab));
    
shell_exec(_CMD2 sprintf(_DEST2_DBNAME$tab$tab));
}
shell_exec(sprintf('/bin/chown -R %s %s*'CHOWNBACKUP));
?>
In /etc/crontab steht.
Code:
-0 2 * * *	root /srv/www/htdocs/web0/backup.php > /dev/null 2>&1
Das Script ist ausführbar, gehört dem Root und ist nur vom Root les- und beschreibbar. Es erstellt täglich von der DB forum1 je Tabelle einmal das CREATE TABLE und mit dem Tag des Monats im Namen ergänzt ein File mit den INSERT INTO Zeilen. Letzteres ist zusätzliche Sicherheit, damit man notfalls noch ein älteres Backup zur Verfügung hat.

Die Trennung in Tabellendefinition und Daten hat bei einer eventuell nötigen Neuinstallation oder Update der Software Vorteile.
Mit Zitat antworten
  #9  
Alt 22.11.2004, 10:44:16
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
FYI: Da ich keinen Bock auf rm export_data_automatically.php.* habe, dachte ich mir, nutzt man doch einfach den Parameter --spider Und siehe da, es gibt keine Dateiausgabe mehr! Der Rest landet in /dev/null, da ich --quiet nichht vertrauen will...
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:44:17 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt