MySQLDumper-Board Forum Index Follow me on Twitter

Portal  •   Forum  •  Downloads  •  Profile  •  Search   •  Register  •  Log in to check your private messages  •  Log in  •  


 Perl-Umgebung für Cronjob unter lokalem Windows einrichten

Post new topicReply to topic
Author Message
testing
knows MySQLDumper
knows MySQLDumper





Joined: 04 Jun 2009
Posts: 4


blank.gif

PostPosted: 2009-06-08, 00:29    Lösung Reply with quoteBack to top

Zuerst einmal muss mysqldumper installiert werden. Ist dies geschehen, kann anschließend Perl installiert werden. Dazu auf http://www.activestate.com/activeperl/ gehen und Active Perl herunterladen und installieren. Dabei muss die Umgebungsvariable für Perl initialisiert werden!

Anschließend evtl. noch folgende Module nachinstallieren (sofern noch nicht vorhanden):
-DBD::mysql (f. Verbindung zur MySQL-Datenbank)
-MIME-Lite (f. d. E-Mail-Versand)

Dazu in der Eingabeaufforderung (cmd) folgendes eingeben:
ppm

Anschließend öffnet sich der Perl Package Manager. Dieser macht dann eine Synchronisation zur Datenbank. Einfach einmal abwarten bis diese fertig ist. Anschließend kann im Suchfenster z.B. dbd-mysql eingegeben werden. Dann kann mittels Rechtsklick auf das entsprechende Paket (DBD-MySQL/MIME-Lite) dieses installiert werden. Wenn es nur für die Installation markiert wird, dann gibt es einen Button "Run marked actions".

Weiterführende Links:
http://forum.mysqldumper.de/dbi-mysql-treiber-wurde-nicht-gefunden-t2513.html
http://dev.mysql.com/downloads/dbi.html
http://cpansearch.perl.org/src/CAPTTOFU/DBD-mysql-4.011/INSTALL.html

Dann kommt der schwierigste Prozess - die Konfiguration von der httpd.conf - Datei. Diese befindet sich im Ordner:
C:\Program Files\Apache Software Foundation\Apache2.2\conf

CGI-Skripts freigeben:
Nach "<Directory />" suchen (ungefähr in der Zeile 180):
Dort muss +ExecCGI oder ExecCGI hinzugefügt werden. So siehts dann aus
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features. 
#
<Directory />
    Options FollowSymLinks +ExecCGI
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>


Geändertes Webroot-Verzeichnis:
Da ich nicht das Standardverzeichnis benutze, hab ich noch +ExecCGI hier hinzugefügt:
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/deinPfadzurWebsite">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options +ExecCGI
    ...
</Directory>


ScriptAlias anpassen:
Der ScriptAlias ist gibt ein Mapping an, sodass wenn "cgi-bin" als Verzeichnis in der Domain angegeben wird, die Skripte aus einen allgemeinen cgi-bin - Verzeichnis gelesen werden. Diese befinden sich in der Regel nicht dort, sondern ganz woanders. Da ich ein anderes cgi-bin Verzeichnis verwende, habe ich den Apache-Standard-Pfad auf "C:/cgi-bin/" geändert.


    # ScriptAlias: This controls which directories contain server scripts.
    # ScriptAliases are essentially the same as Aliases, except that
    # documents in the target directory are treated as applications and
    # run by the server when requested rather than as documents sent to the
    # client.  The same rules about trailing "/" apply to ScriptAlias
    # directives as to Alias.
    #
    ScriptAlias /cgi-bin/ "C:/cgi-bin/"



Geändertes cgi-bin - Verzeichnis:
Ich habe dabei ein eigenes cgi-bin - Verzeichnis außerhalb bzw. über der Webserver-Root (standardmäßig lautet dieser "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs" - ich habe den Pfad nicht verwendet) erstellt. Das dient zu mehr Sicherheit, da der Zugriff über den Webserver nicht mehr gegeben ist. Das vorgesehene Verzeichnis "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin" wird dann nicht mehr verwendet. Stattdessen verwende ich z.B. das Verzeichnis "C:/cgi-bin". Hier wird wieder +ExecCGI hinzugefügt. Dann sieht es so bei mir aus:


#
# "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "C:/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>


Darauf muss der AddHandler konfiguriert werden.
Standardmäßig hat er die Form #AddHandler cgi-script cgi
und ist somit auskommentiert. Dieser wird aber wieder aktiviert und der Eintrag " pl" hinzugefügt. Er hat dann die Form AddHandler cgi-script cgi pl. So sollt es dann aussehen:

<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig conf/mime.types

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    #
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    AddHandler cgi-script cgi pl

    # For type maps (negotiated resources):
    #AddHandler type-map var


Sind diese Schritte erledigt, ist Apache neu zu starten.

Weiterführende Links:
http://www.ricocheting.com/server/cgi.html
http://httpd.apache.org/docs/1.3/howto/cgi.html

Perl testen:
Nun gehts zu den Perl-Skripts. Die Perl-Skripts von "mysqldumper\msd_cron" habe ich dann mal in das "C:\cgi-bin"-Verzeichnis kopiert. Dann hab ich ein eigenes Test-Script erstellt. Der Name davon lautet "hello.pl". Um weiter fortfahren zu können, muss der Pfad zur Perl.exe bekannt sein. Der Inhalt des Scripts lautet:

#!C:/Perl/bin/perl.exe
print "Content-type:text/html\n\n";
print "hello world";

Der Beispielpfad hier lautet "C:/Perl/bin/perl.exe" aber es kann auch ein anderer sein. Wenn zwischen Linux und Windows gewechselt werden will, dann empfiehlt sich die Struktur "usr\bin\perl".

Noch ein paar Tests:
Eingabeaufforderung: perl -v eingeben (hier sollte keine Fehler kommen sondern Information über Perl)
Mittels Eingabeaufforderung zu der gespeicherten hello.pl navigieren und hello.pl eingeben.

Hat das alles geklappt, kann weiter gemacht werden. Wenn nicht dann ist bei Perl etwas nicht in Ordnung. Anschließend kann der Aufruf über die Website erfolgen: www.deineWebsite.com/cgi-bin/hello.pl

Da solltest du nicht den Inhalt der Perl-Datei sehen, sondern nur "Hello World". Sollten die Test mit der Eingabeaufforderung funktionieren aber der Aufruf über den Browser nicht, dann ist mit der Apache-Konfiguration was nicht in Ordnung.

Weiterführende Links:
http://perl.about.com/od/gettingstartedwithperl/a/testperl.htm

Konfiguration von Mysqldumper:
Unter Konfiguration->Datenbanken von Mysqldumper die gewünschte Datenbanktabelle aussuchen.
Unter Konfiguration->Cronscripts sollte Dateiendung des Scripts ".pl" ausgewählt sein. Im Feld Pfad der Perlskripte: habe ich "/cgi-bin/" eingetragen.

Weiterführende Links:
http://rausgebloggt.de/mysql-datenbanken-automatisch-sichern-mit-mysqldumper-und-all-inkl-als-hoster.htm
http://forum.mysqldumper.de/features-perl-cronscript-einstellungen-von-konfiguration-cron-t502.html

Testen von Mysqldumper:
Anschließend auf Backup->Backup Perl gehen. Da den Button Perl testen ausprobieren. Sollte es klappen dann auf den Button Perl-Module testen gehen. Klappt das auch wieder ohne Fehler den Button Perl-Cronscript ausführen drücken. Achtung: Ein Backup wird erstellt! Dies kann unter Verwaltung und ausgewählte Dateien löschen wieder entfernt werden (auf das Datum achten). vBulletin User sollten sich über den Fehler
Quote:
Error: Table vb3_cpsession seems to be damaged. Couldn't read last update time. Check table definition!

Error: Table vb3_session seems to be damaged. Couldn't read last update time. Check table definition!

keine Gedanken machen. Siehe http://www.vbulletin-germany.com/forum/showthread.php?t=38542

Dann ist es fast geschafft.

Batch-Datei erstellen:
In einem gewünschten Verzeichnis die Datei "Backup.bat" erstellen. Inhalt:
perl C:/cgi-bin/crondump.pl config=mysqldumper.conf.php

Dieser kann unter Backup->Backup-Perl herausgefunden werden. Der Eintrag nennt sich Aufruf in der Shell oder für die Crontab:. Da die Perl-Datei lokal ausgeführt wird, muss dieser zum Dateiverzeichnis passen. Der Eintrag unter Aufruf in der Shell oder für die Crontab: somit angepasst werden. Datei dann speichern.

In den Taskplaner eintragen:
Unter Windows 2003 Server findet man diesen in
Start->All Programs->Accessories->System Tools->Scheduled Task

Mit Add scheduled Task kann dann ein Task hinzugefügt werden.
Next->Browse[C:\Windows\System32]->cmd eingeben->Open
Unter Type a name for this task den Pfad zur Batchdatei angeben (z.B. C:\Backup\backup.bat). Anschließend Zeiteinstellungen und Passwort eingeben und man ist endlich fertig.

Nun können die Backups zu beliebigen Zeitpunkten durchgeführt werden.


Last edited by testing on 2009-06-08, 10:22; edited 2 times in total

OfflineView user's profileSend private message    
Anzeigen











Posted:    Anzeigen Back to top


    
Display posts from previous:      
Post new topicReply to topic


 Jump to:   


Show permissions
Similar topics
Topic Author Forum Replies Posted
No new posts Perl Backup immer Error 404 luckyheiko Fehler / Probleme 6 2012-05-23, 10:06 View latest post
No new posts Perl: Eine Datenbank wird übersprungen Vee Fehler / Probleme 1 2012-03-28, 07:57 View latest post
No new posts Scheduling Daily Backup Under Windows vincentwansink Errors and questions 1 2012-03-24, 17:54 View latest post
No new posts Cronjob macht Probleme infinity Fehler / Probleme 12 2012-03-22, 15:38 View latest post
No new posts Mysqldumper, terner Cronjob und .htac... Quizmasterlex Gelöst/Erledigt 4 2012-03-03, 10:29 View latest post

 
CrackerTracker © 2004 - 2012 CBACK.de

Powered by Orion based on phpBB © 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
All times are GMT + 2 Hours

phpBB SEO