# Jobs

Zeitlich gesteuerte Aufgaben

# Email-Verarbeitung

Um regelmäßig auf neue Emails zu prüfen, muss eine geplante Aufgabe eingerichtet werden.   
Unter Windows können dafür die geplanten Tasks genutzt werden.   
Unter Linux erfolgt die Einrichtung mit Hilfe von cron Jobs.

### Einrichtung unter Windows

Unter Windows kann ein geplanter Task zur Regelmäßigen Prüfung der konfigurierten Postfächer genutzt werden.  
Um einen neuen Task einzurichten müssen folgende Schritte durchgeführt werden:

#### 1. Aufgabenplanung öffnen

Es kann eine eigener Unterordner für Squeeze aufgaben erstellt werden, wenn dies gewünscht ist

[![image-1584346136560.png](https://docs.squeeze.one/uploads/images/gallery/2020-03/scaled-1680-/image-1584346136560.png)](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584346136560.png)

Auf der rechten Seite kann über den Menüpunkt "Aufgabe erstellen..." die Aufgabe für den Import der Emails angelegt werden.

#### 2. Aufgabe erstellen

[![image-1584346394020.png](https://docs.squeeze.one/uploads/images/gallery/2020-03/scaled-1680-/image-1584346394020.png)](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584346394020.png)

Der Name und die Beschreibung ist natürlich frei wählbar.   
  
Damit die Aufgabe unabhängig von der Anmeldung eines Benutzers ausgeführt wird und auch unabhängig von eventuellen Passwortänderungen ist, hat sich bewährt, das **System Konto** auszuwählen.   
  
Die Aufgabe "mit höchsten Privilegien" zu starten hat sich ebenfalls bewährt.

#### 3. Trigger/Zeitpunkt festlegen

[![image-1584346802279.png](https://docs.squeeze.one/uploads/images/gallery/2020-03/scaled-1680-/image-1584346802279.png)](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584346802279.png)

Das Intervall in dem die Emails abgerufen werden sollen ist ebenfalls frei definierbar.  
Bewährt hat sich ein Intervall von 5 Minuten im Produktivsystem. Für Testsysteme kann dieser Intervall natürlich auch kleiner gewählt werden, wenn schnell und viel getestet werden soll.

#### 4. Aktion festlegen

[![image-1584347128210.png](https://docs.squeeze.one/uploads/images/gallery/2020-03/scaled-1680-/image-1584347128210.png)](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584347128210.png)

Als Programm muss die php.exe der Squeeze Installation ausgewählt werden.   
Als Argumente müssen zwei Werte angegeben werden:

- - Pfad zur EmailProcessing.php z.B. **C:\\SQUEEZE\\htdocs\\jobs\\EmailProcessing.php**
- - Mandant für den die Emails abgerufen werden sollen z.B. **client.squeeze.net**

Die vollständige Angabe der Argumente lautet also wie folgt:  
**C:\\SQUEEZE\\htdocs\\jobs\\EmailProcessing.php client.squeeze.net**

# Datenbank Backup und Restore

### Backup

Das sichern der SQUEEZE Datenbank(en) ist ein wichtiger Punkt der Administration. Um Sicherzustellen, dass im Fehlerfall nicht alle Daten verloren gehen, muss eine regelmäßiges Backup der Datenbanken durchgeführt werden.

Für MariaDB und MySQL kann folgender Befehl genutzt werden:

```shell
D:\SQUEEZE\mariadb\bin\mysqldump.exe --user=root --password="" --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --routines --events --databases "datenbankname" --result-file="D:\Squeeze\Backup\datenbank.sql"
```

Der Schalter `--databases` ist nicht nur für die Selektion der Datenbank verantwortlich, sondern steuert ebenfalls, ob ein **Create Statement des Schemas** in den dump exportiert werden soll. Soll das Create Statement nicht erstellt werden, muss der Schalter   
`--databases` entfernt werden.

##### Backup aller Datenbanken

Um alle Datenbanken eines Servers zu sichern kann der folgende Befehl genutzt werden

```shell
mysqldump --user=root --password="" --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --routines --events --all-databases --result-file="D:\Squeeze\Backup\alle_datenbank.sql"
```

Entscheidend ist der Schalter `--all-databases`   
Dieser Schalter erfordert keine weiteren Parameter.

Die Aufgabe des Backups sollte zeitlich geplant werden. Dazu kann die Aufgabenplanung des Betriebssystems genutzt werden.  
Die Parameter sind natürlich entsprechend der Installation anzupassen.

### Restore

Um eine Datenbank aus einer Sicherung wiederherzustellen kann dieser Befehl genutzt werden:

<p class="callout warning">Sollte die Datenbank bereits bestehen, werden hiermit alle vorhandenen Daten mit denen des Backups überschrieben.</p>

```shell
D:\SQUEEZE\mariadb\bin\mysql.exe -u root -p "datenbankname" < "D:\Squeeze\Backup\datenbank.sql"
```

<p class="callout info">Da jeder Mandant seine eigene Datenbank hat, ist die Aufgabe je Mandant/Datenbank zu planen.</p>