# Kommandozeile

Media Organizer bringt Kommandos für Joomlas Konsole mit. Sie sind vor allem dann nützlich, wenn ein Scan im Browser an eine Zeitgrenze läuft, oder wenn Sie Wartung skripten wollen.

Alle Kommandos laufen über Joomlas CLI-Einstiegspunkt:

```
php cli/joomla.php jimgo:scan
```

## Die Sicherheitsregel

<div class="callout warning" id="bkmrk-jedes-kommando%2C-das-">Jedes Kommando, das etwas verändert, ist **standardmäßig ein Trockenlauf**. Es zeigt, was es täte, und tut nichts.

Ausgeführt wird nur mit `--confirm=<exakte Anzahl>` — Sie müssen die Zahl der betroffenen Dateien **selbst nennen** und sie muss stimmen. Es gibt bewusst kein `--yes`, kein `--force` und kein `--no-interaction` für destruktive Kommandos.

</div>Der Grund: Ein Tippfehler oder ein veraltetes Skript soll nicht versehentlich etwas löschen. Wer die Anzahl nennen muss, hat vorher hingesehen.

## Lesende Kommandos

### `jimgo:scan`

Führt einen vollständigen Scan aus. Rein lesend — schreibt nie ins Dateisystem.

```
php cli/joomla.php jimgo:scan
```

Das ist der empfohlene Weg für große Bestände: keine Browser-Zeitgrenze, kein Nachklicken. Ideal auch als Cronjob-Alternative zum Aufgabenplaner.

### `jimgo:report`

Gibt das Inventar auf der Standardausgabe aus.

```
php cli/joomla.php jimgo:report --format=csv --state=orphan_candidate > verwaist.csv
```

<table class="table" id="bkmrk---format%3Djson%7Ccsvaus"> <tbody> <tr><td>`--format=json|csv`</td><td>Ausgabeformat. Standard: `json`.</td></tr> <tr><td>`--state=<zustand>`</td><td>Nur Dateien in diesem Zustand, z. B. `orphan_candidate`.</td></tr> </tbody></table>

### `jimgo:duplicates`

Listet Dateien mit identischer Prüfsumme.

```
php cli/joomla.php jimgo:duplicates --limit=100
```

<table class="table" id="bkmrk---limit%3D%3Cn%3Eh%C3%B6chstens"> <tbody> <tr><td>`--limit=<n>`</td><td>Höchstens so viele Duplikatgruppen. Standard: 50.</td></tr> </tbody></table>

### `jimgo:optimize`

Meldet Dateien, die sich nach den eingestellten Schwellwerten zu optimieren lohnen.

```
php cli/joomla.php jimgo:optimize --limit=100
```

<table class="table" id="bkmrk---limit%3D%3Cn%3Eh%C3%B6chstens-1"> <tbody> <tr><td>`--limit=<n>`</td><td>Höchstens so viele Dateien. Standard: 50.</td></tr> </tbody></table>

## Verändernde Kommandos

### `jimgo:quarantine`

Verschiebt die unreferenzierten Dateien des letzten Scans in Quarantäne.

```
# Trockenlauf — zeigt nur, was passieren würde
php cli/joomla.php jimgo:quarantine

# Ausführen: die genannte Anzahl muss exakt stimmen
php cli/joomla.php jimgo:quarantine --confirm=42
```

### `jimgo:purge`

Löscht Dateien in Quarantäne **endgültig**. Es gelten dieselben zwölf Bedingungen wie im Backend — die Kommandozeile ist kein Hintereingang.

```
php cli/joomla.php jimgo:purge
php cli/joomla.php jimgo:purge --confirm=17
```

### `jimgo:optimize:apply`

Optimiert die markierten Bilder. Originale werden vorher gesichert.

```
php cli/joomla.php jimgo:optimize:apply
php cli/joomla.php jimgo:optimize:apply --confirm=8
```

### `jimgo:profiles:update`

Lädt die mitgelieferten Extension-Profile neu in den Speicher. Nützlich nach einem Update.

```
php cli/joomla.php jimgo:profiles:update
```

## Übersicht

<table class="table" id="bkmrk-kommandowirkungbrauc"> <thead> <tr><th scope="col">Kommando</th><th scope="col">Wirkung</th><th scope="col">Braucht `--confirm`</th></tr> </thead> <tbody> <tr><td>`jimgo:scan`</td><td>lesend</td><td>nein</td></tr> <tr><td>`jimgo:report`</td><td>lesend</td><td>nein</td></tr> <tr><td>`jimgo:duplicates`</td><td>lesend</td><td>nein</td></tr> <tr><td>`jimgo:optimize`</td><td>lesend</td><td>nein</td></tr> <tr><td>`jimgo:profiles:update`</td><td>schreibt nur in den Profilspeicher</td><td>nein</td></tr> <tr><td>`jimgo:quarantine`</td><td>verschiebt Dateien</td><td>**ja**</td></tr> <tr><td>`jimgo:optimize:apply`</td><td>ersetzt Bilder (mit Backup)</td><td>**ja**</td></tr> <tr><td>`jimgo:purge`</td><td>**löscht endgültig**</td><td>**ja**</td></tr> </tbody></table>

## Ein Wort zur Automatisierung

Sie *können* `jimgo:scan` in einen Cronjob legen — das ist sinnvoll und empfohlen.

<div class="callout warning" id="bkmrk-legen-sie-niemals-ji">Legen Sie **niemals** `jimgo:purge --confirm=…` in einen Cronjob. Die Anzahl müsste dort fest verdrahtet sein, und genau dann löscht das Skript beim nächsten Lauf eine andere Dateimenge als die, die Sie einmal geprüft haben. Die `--confirm`-Regel ist genau dafür gebaut, dass ein Mensch hinsieht.

</div>## Weiter geht es

- [Rechte, Export und Datenschutz](https://docs.graup-it.de/books/media-organizer/page/rechte-export-und-datenschutz)

<small>Gilt für Version 1.0.3.</small>