Zum Inhalt
Kuonen.Remote

Skripte

Datei-Befehle interaktiv oder als Skript: open, get, put, synchronize und Optionen.

Ohne Unterbefehl arbeitet kremote mit Dateien: interaktiv mit der Eingabeaufforderung kremote> oder als Skript. Die Befehle folgen WinSCP und psftp; wer dort Skripte hat, kann sie meist weiterverwenden.

kremote [adresse] [/script=datei | -b datei] [/command "befehl" …] [/jsonlog=datei] [-batch] [-accepthostkey]
  • Adresse: sftp://benutzer@host:port/pfad, ebenso scp://, ftp://, ftpes:// (FTP mit explizitem TLS), ftps:// (implizit), dav:// bzw. http://, davs:// bzw. https://, s3://. Wie bei WinSCP darf der Benutzerteil ;fingerprint=SHA256:… und ;x-name=… tragen. Ohne Adresse verbindet erst ein open.
  • /script=datei oder -b datei führt ein Skript aus, /command die folgenden Befehle bis zum nächsten Argument, das mit / beginnt.
  • /jsonlog=datei schreibt je Befehl eine JSON-Zeile mit Zeit, Befehl, Argumenten, Ergebnis und Meldung; Kennwörter erscheinen als ***.
  • -batch fragt nie nach, -accepthostkey nimmt einen unbekannten Hostschlüssel an.
kremote sftp://anna@server.example/ /command "cd /srv/web" "ls" "exit"
kremote -batch /script=sicherung.txt /jsonlog=sicherung.json

Schreibweise

  • Eine Zeile, ein Befehl. Zeilen mit # sind Kommentare.
  • Argumente mit Leerzeichen in Anführungszeichen: put "Bericht Mai.pdf". Zwei Anführungszeichen hintereinander ergeben eines.
  • Masken: *, ? und […].

Sitzungen

BefehlWirkung
open adresseverbinden; ohne :// und ohne @ gilt sftp://. Jedes weitere open öffnet eine zusätzliche Sitzung
close [n]die aktive bzw. die n-te Sitzung schliessen
session [n]Sitzungen auflisten (die aktive mit *) bzw. Sitzung n aktiv machen
exit, bye, quitalles schliessen und beenden

Schalter für open:

  • -password=…, -privatekey=datei, -port=…, -timeout=…
  • -hostkey=SHA256:… – genau diesen Hostschlüssel erwarten
  • -certificate=… – genau dieses TLS-Zertifikat erwarten (FTPS, WebDAV)
  • -passive=on bzw. off – FTP-Modus
  • -jump=sitzung – über einen Sprunghost, auch für FTP, WebDAV und S3
  • -compress – Kompression

Ordner

BefehlWirkung
pwd, lpwdentfernten bzw. lokalen Ordner zeigen
cd [ordner]entfernt wechseln; ohne Angabe in den Heimatordner
lcd [ordner]lokal wechseln; ohne Angabe ins Benutzerprofil
ls, dir [pfad]entfernt auflisten
lls [pfad]lokal auflisten

Übertragen

BefehlWirkung
get, mget entfernt… [lokal]herunterladen
reget …herunterladen und fortsetzen
put, mput lokal… [entfernt]hochladen
reput …hochladen und fortsetzen

Schalter für get und put:

  • -delete – die Quelle nach dem Übertragen löschen
  • -resume bzw. -append – fortsetzen bzw. anhängen
  • -neweronly – nur, wenn die Quelle neuer ist; -onlyexisting – nur vorhandene Ziele ersetzen; -latest – nur die neueste passende Datei
  • -filemask=… – Dateimaske, etwa *.pdf;*.docx
  • -transfer=binary, ascii oder automatic
  • -speed=KiB/s – Tempo begrenzen
  • -nopreservetime – die Änderungszeit nicht übernehmen (sonst wird sie übernommen)
  • -preservepermissions, -permissions=644, -nopermissions – Rechte
  • -resumesupport=on, off oder eine Grösse in KB – ab wann über eine Teildatei fortgesetzt wird

Dateien auf dem Server

BefehlWirkung
mkdir ordner…, rmdir ordner…Ordner anlegen bzw. löschen
rm, del, delete pfad…löschen, auch Ordner samt Inhalt und mit Masken
mv, rename, ren alt… neuumbenennen oder verschieben
cp quelle zielauf dem Server kopieren
chmod oktal datei…Rechte setzen
ln [-hard] ziel verknüpfungVerknüpfung anlegen (nur SFTP)
stat pfadEigenschaften zeigen
checksum [sha256] dateiPrüfsumme; auch sha1, md5, sha512
df [pfad]freier Platz (nur SFTP)
call befehl, ! befehlBefehl auf dem Server im aktuellen Ordner; ein Rückgabewert ungleich 0 ist ein Fehler
echo textText ausgeben
help, ?Hilfe

Synchronisieren

synchronize local|remote|both [lokal] [entfernt] [schalter]
keepuptodate [lokal] [entfernt] [-delete]

synchronize local holt den Server auf den eigenen Rechner, remote bringt den eigenen Rechner auf den Server, both gleicht in beide Richtungen ab (Kurzform sync). Schalter:

  • -delete – was auf der Quelle fehlt, auch im Ziel löschen
  • -mirror – spiegeln; wirkt wie -delete
  • -criteria=time (Vorgabe), size, either (Zeit oder Grösse) oder checksum (Grösse und Inhalt) – woran Unterschiede erkannt werden
  • -filemask=… – nur passende Dateien
  • -preview – nur zeigen, was geschähe
  • -preservepermissions – Rechte übernehmen

keepuptodate beobachtet einen lokalen Ordner und lädt jede Änderung sofort hoch, bis Strg+C.

Optionen

option name wert stellt das Verhalten ein:

OptionWerteVorgabe
echoon, off – jeden Befehl vor dem Ausführen zeigenoff
failonnomatchon, off – eine Maske ohne Treffer ist ein Fehleron
transferbinary, ascii, automaticbinary
reconnecttimeoff oder Sekunden – nach Abbrüchen neu verbindendrei Versuche
batchabort bzw. on, continue, off – was bei Fehlern geschiehtin Skripten abort

Rückgabewerte

In einem Skript bricht der erste Fehler ab, und kremote endet mit 1 (option batch abort). Mit option batch continue bzw. kremote psftp -be läuft das Skript weiter und endet mit 0. Interaktiv ist das Ergebnis immer 0. Die übrigen Werte stehen unter Befehlszeile kremote.

Beispiel: nächtliche Sicherung

# sicherung.txt – mit: kremote -batch /script=sicherung.txt
open sftp://sicherung@nas.example/ -privatekey=~/.ssh/sicherung -hostkey=SHA256:Qm9…
lcd /var/backups
synchronize remote . /daten/backups -criteria=checksum
put -neweronly bericht-*.pdf /daten/berichte/
exit

Ein fertiges Skript für eine gespeicherte Sitzung liefert die App im Menü Sitzung › Sitzungsadresse und Code.