CLI AI

Remote-Aufgaben in Klartext: ssh, scp und rsync ohne Flag-Tanz

2026-03-27

Wer drei oder mehr Server betreut, hat schon mal rsync getippt, kurz gestockt und sich gefragt: War es -a oder -r? Brauche ich --delete? Wo gehört der Slash am Ende hin? Allein der Slash am Ende hat mehr Ausfälle verursacht, als man zugeben mag.

1. Sync mit typischen Ausschlüssen

clai
$ clai rsync diesen Ordner nach staging:/srv/app/ ohne node_modules und .git→ rsync -avz --delete --exclude='node_modules' --exclude='.git' \    ./ staging:/srv/app/

Der Slash hinter ./ zählt. CliAI macht's richtig. Beachte: --delete ist drin, weil „Sync" impliziert, dass das Ziel die Quelle spiegeln soll — das ist aber ein Flag, dessen Bestätigung sich vor Enter lohnt.

2. SSH mit lokalem Port-Forward

clai
$ clai ssh nach prod-db und leite lokalen Port 5432 zum dortigen postgres→ ssh -L 5432:localhost:5432 prod-db

Die Forward-Syntax (-L lokal:remote_host:remote_port) ist eines der Dinge, die sich nicht setzen, bis man sie ein Jahr lang wöchentlich nutzt.

3. SCP eines Verzeichnisses

clai
$ clai scp gesamtes reports-Verzeichnis von staging:/srv/reports nach ./reports→ scp -r staging:/srv/reports ./reports

-r ist Pflicht für Verzeichnisse; ohne es macht scp still nichts Nützliches. CliAI weiß es; du musst nicht.

4. Rechte und Zeitstempel erhalten

clai
$ clai kopiere /etc/nginx von prod hierher, mit Rechten und Zeitstempeln→ rsync -avz --rsync-path='sudo rsync' prod:/etc/nginx/ ./nginx-backup/

--rsync-path='sudo rsync' ist das Muster, wenn der Quellpfad Root zum Lesen braucht, du aber als normaler User per ssh kommst. Schwer zu erinnern, leicht zu erfragen.

Hinweis zur Authentifizierung

CliAI generiert den Befehl; SSH-Schlüssel und Hosts richtest du selbst ein. Wenn ssh staging in deinem Terminal nicht funktioniert, tut es der generierte Befehl auch nicht. Einmalig in ~/.ssh/config und ssh-agent investieren — die Einzeiler zahlen das ewig zurück.

Siehe auch