# CronJob für SQL-Server



## rainair (6. August 2008)

Hallo miteinander!

Ich habe folgendes Problem:
Ich möchte auf einem Unix-Server auf dem ein MySQL-Server läuft jede Nacht eine Abfrage laufen lassen.Hierzu brauche ich ja einen Cronjob.
Wie der Cronjob an sich funktioniert (über Crontab) bzw. wie er dort eingetragen werden muss is mir klar. Aber....
wie muss die Datei aussehen in der die Verbindung zum SQL-Server steht und der entsprechende SELECT dazu? Also wie die Abfrage aussieht weiß ich! Mir gehts wie gesagt nur um die entsprechende Batchdatei (oder was auch immer) wie diese aufgebaut sein muss.

Ich hoffe ich konnte mein Problem klar und deutlich darstellen!

Danke schon mal 

Rainair

PS: Hab natürlich überall gesucht, auch den Googlehupf hab ich befragt aber alles was hier angeboten wird sind Informationen zu Cronjobs auf Webservern. Aber das ist KEIN Webserver


----------



## Navy (6. August 2008)

sql.sh:

```
#!/bin/sh
mysql -u $USER --password=$PASSWORD < script.sql
```

Variablen anpassen, Speichern, ausführbar machen (chmod) und in der crontab eintragen. Nicht vergessen das SQl-Script zu erstellen.


----------



## rainair (6. August 2008)

Navy hat gesagt.:


> sql.sh:
> 
> ```
> #!/bin/sh
> ...





Muss das SQL-Skript dann unten drunter? 
Ach ja, als Ergebnis bekomme ich eine zweispaltige Tabelle. Diese soll in eine Textdatei und durch Semikolon getrennt reingeschrieben werden, wie stelle ich nun das wieder an?

Danke nochmal


----------



## merzi86 (6. August 2008)

Das SQL-Script steht in der script.sql.

```
script.sql
```

Wenn du die Ausgabe in eine Dateischreiben willst musst du diese einfach weiterleiten.


----------



## rainair (14. August 2008)

Danke erst mal für Eure Hilfe!
Mittlerweilen bin ich soweit:


*Crontab-Eintrag:*
* 05 * * * root <execute file>


*
Datei ausführbar machen:*
chmod 700 /root/bin/execute file



*Inhalt execute file:*

#!/bin/sh
mysql -e 'SELECT Kostenstelle, ";", Kst_Bezeichnung 
INTO OUTFILE '/root/blubb/blubb1/KST.txt' 
FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"' 
FROM KST_KTR_PROJEKTE' -h host -u user -p pwd


GETESTET: SELECT kst, ktr, ';' into OUTFILE 'C:/test.txt' FIELDS TERMINATED BY ';'  FROM versuch;
ERGEBNIS: kst01;ktr01;\;
kst02;ktr02;\;

Hab rausgefunden dass mit dem OUTFILE-Befehl eine bereits erstellte Datei nicht überschrieben werden kann. Jetzt lösch ich halt dann noch die alte Datei bevor ich die neue erstelle....


----------

