Windows Server und das CGI - Wie baue ich mir schnell Hilfsprogramme

ABC

abgemeldet
21 April 2006
3.851
444
Immer wieder per PN werde ich wegen CGI Schnitstellen befragt. Nun CGI schnittstellen können ein Programm ausführen, sofern ein Interpreter für vorliegt. Heute möchte ich euch zeigen wir ihr Beispielweise euren PC über das Netz ausschalten könnt.

Aber erst einmal zum Topic.
Wie bringe ich es fertig, über das Internet HTTP eine Datei per Virusscanner zu unteruchen? Wie bringe ich es fertig, (komplett zu sichern)?

Ja genau fangen wir doch mal an Daten zu sichern. Keiner von euch hat täglich Lust seine Mysql Datenbank zu sichern. Neben bei soll ja auch noch ein 1zu1 Root Backup gesichert werden. Das ganze natürlich per Knopfdruck. Oder per Buttonklick.

Wie bringen wir es nun fertig aus Frankreich auf unserem VPN (Beipiel wird under Windowsserver oder Winsowsystem gezeigt) das in deutschland läuft schnell und einfach ein Backupt zu fertigen?

Ganz einfach. Wir sprechen unsere CGI Schnittstelle an. Dazu brauchen wir nicht mehr und nicht weniger wie einen Editor wie den Editor unter Windows XP.

Schritt für Schritt Anleitung.

Wir sichern unseren Root mit 2 Zeilen Code!

1. Editor öffnen.
2. Folgenden Code eingeben:

@echo off
xcopy d:\xampp\htdocs d:\xampp\backup\%date:~-4%_%date:~-7,2%_%date:~-10,2%\ /E /Y /I

Das ganze wird dann unter der Datei backup.BAT abgespeichert! Achtung nicht unter backup.bat.txt achtet beim Speichern auf die Option "alle Dateien"

3. Im Code Selbst gebt ihr den absoluten Pfad zum zu sichernden Verzeichnis an! Das beispiel zeigt, das Verzeichne d:\xampp\htdocs wird gesichert ind das Verezichnis d:\xampp\backup\JAHR_MONAT_TAG Beipiel 2006_05_19 somit lassen sich alle Backups ausführen.

So nun die Bat ausführen in dem man sie doppelklickt. Alles in Ordnung? Dann ab ins CGI!



2. Datenbank sichern:
Es gibt hier 2 Möglichkeiten ein Backup zu machen. Das eine ist, per PHP my admin, was aber mehr arbeit macht. Das andere einfach wir kopieren die gesmmte Datenbank. Dann brauchen wir nur die neue Datenbank löschen, und die alte wieder hereinkopieren.

1. Editor auf

2. Folgender Code:

@echo off
xcopy d:\xampp\mysql\data d:\xampp\mysql_backup\%date:~-4%_%date:~-7,2%_%date:~-10,2%\ /E /Y /I

Das ganze wieder unter einer anderen Bat speichern, und testen. Wieder ein tägliches MYSQL Backup!





3. Programme Starten und ausführen:
Um euch das so einfach wie möglich zu gestalten. Können wir Programme ansprechen die auf dem Server installiert sind. Damit öffen sich auf einmal alle möglichen Möglichkeiten, die uns Programme erledigen können.

Damit der Anfang nicht zu schwer wird, bauen wir uns eine Bat die unsere Programme MYSQL Backup und Root Backup ausführt.

Bennt die 2 BAT deiten in root_backup.BAT und mysql_backup.BAT um. So nun wollen wir eine voll_backup.BAT anelgen die beide dieser BAT dateien ausführt. Dazu machen wir nichts anderes wie diese BAT zu starten. Programm Start -eben!

Der Code:
@echo off
start d:\xampp\mysql_backup.bat
start d:\xampp\root_backup.bat

geht natürlich von aus eure Bat Dateien liegen im Verzeichnis d:\xampp\ ggf. anpassen.



4. Eine Datei Zippen

Zeige ich dann heute Nachmittag gerade keine Zeit für!
 
Zuletzt bearbeitet:
Dass man mit CGI einfach so ne Batchdatei starten kann, wusste ich auch noch ned 8O Cool.

:arrow: Programmierung / FAQ und Archiv

ABC schrieb:
4. Eine Datei Zippen

Zeige ich dann heute Nachmittag gerade keine Zeit für!
Ok, dann mach ich das eben ;)

Ich setze hierbei voraus, dann man WinRAR installiert hat.

Der Code lautet einfach:
@echo off
rar.exe a backup.rar pwlist.dat wichtig.html
Man kann beliebige Dateien hinter den Archivnamen schreiben.

Um rar.exe wie oben direkt anzusprechen, muss der Pfad dafür mit
SET path=....;C:\Programme\Winrar
bereits gesetzt sein. Ansonsten muss man statt rar.exe den absoluten Pfad angeben.

Protokollieren der Zip-Aktion:
rar.exe a archiv.zip datei.txt >protokoll.txt

Maximale Komprimierung erreicht man mit:
rar.exe a archiv.rar -m5 dateien.txt
 
Hm, ich versteh noch nicht so ganz was du mit CGI-Schnittstelle meinst. Soll man dafür also einen xampp / apache mit mod_cgi installieren und übers web im cgi-bin einfach die Batchdatei aufrufen?

Wenn ja, wäre das natürlich genial :D
 
H3v3n schrieb:
Soll man dafür also einen xampp / apache mit mod_cgi installieren und übers web im cgi-bin einfach die Batchdatei aufrufen?
Ich habs bei mir probiert (normaler Apache, nix xampp, nix an der Konfiguration bzgl. cgi geändert) und es geht :D
 
Es geht einfach so, das im CGI alles ausgeführt wird, was Windows interpretieren kann. Auch die Scriptsprache C kann interpretiert werden. Nur muss man hierzu auf den Interpreter verweisen, der sich im Windows verbirgt.

Bei Batch dateien hingegen handelt es sich um einen DOS Code der über die Kommandozeile interpretiert wird, so ist also kein direkter Interpreter notwendig.

Übrigens. Batch Dateien gehen auch unter Unix. Hierzu gibt es jedoch einige Syntaxtechnische Unterschiede. Auch die Befhele sind anders ausgelegt.


Wer beispielweise einen Basic Interpreter bzw. C++ Interpreter installiert, der kann auch C++ verarbeiten. Es ist also alles möglich. Für manche Sprachen wird eben nur ein Interpreter benötig. Das ist alles.
Grüsse Lukasz!
 
ABC schrieb:
Scriptsprache C kann interpretiert werden. Nur muss man hierzu auf den Interpreter verweisen, der sich im Windows verbirgt.

Wer beispielweise einen Basic Interpreter bzw. C++ Interpreter installiert, der kann auch C++ verarbeiten. Es ist also alles möglich. Für manche Sprachen wird eben nur ein Interpreter benötig. Das ist alles.


Um mal schnell die Highlights zusammen zu fassen -.-
 
buggle schrieb:
Um mal schnell die Highlights zusammen zu fassen -.-


Jo stimmt :) gibts net. Klar ;) ist dann ehe ne exe und damit binär.

Nur sei dir da mal net so sicher

https://www.softintegration.com/company/press/20030708.html

das gibts doch! Es gibt speziell für die CGI C/C++ Interpretoren! Und der obere Link ist nur ein Besipiel. Im XP ist auch ein C Interpretor drin. brauchst mir net glauben, ist aber so.

1. Absatz letzter Satz:

It can run in Ch across different platforms without compilation
 
Zuletzt bearbeitet:
buggle schrieb:
Um mal schnell die Highlights zusammen zu fassen -.-
Och, wenn Leute Javascript mit Java verwechseln kann man es anderen auch nicht übel nehmen C-Shell Scripte mit C zu verwechseln :ugly:

Wobei man C ja wirklich interpretieren KANN nur ob es dadurch zur Script Sprache wird, ich weis ja nicht so recht. Darüber kann man sich nun vermutlich streiten.
 
veers schrieb:
Och, wenn Leute Javascript mit Java verwechseln kann man es anderen auch nicht übel nehmen C-Shell Scripte mit C zu verwechseln :ugly:

Wobei man C ja wirklich interpretieren KANN nur ob es dadurch zur Script Sprache wird, ich weis ja nicht so recht. Darüber kann man sich nun vermutlich streiten.


Doch das wird es in gewisser Hinisicht. Hab mir so einen Interpreter schon mal geladen und 30 Tage gestestet. Es gibt zwar einige Unterschiede, jedoch keine besonderen. Was wegfällt trifft sich eigentlich nur dort, wo CGI so oder so keinen Bedarf hat. Mal davon abgesehen, lässt sich tehoretisch jeder Code Interpretieren. Es frägt sich nur, wie lange es dauern wird. Wenn du aber über eine CGI foren installieren willst, ist ein Programm eigentlich auch schon unpraktisch. Sourcecode reicht da ausch schon aus. Das eigentliche Merkmal aber bleibt, dass noch nicht für jede Sprache ein Interpreter gecodet wurde. Jedenfalls die C Interpretoren gibt es schon lange. Und das nicht nur für das CGI. Kann mich da auch an diverse 3D Gamesutdios erinnern, in dennen eine C Ableitung interpretiert wurde um beipielweise einfach Verhaltensphysik zu testen oder das Game Stundelang neu zu linken und compilieren.
 
Zuletzt bearbeitet: