webentwicklung-frage-antwort-db.com.de

Wie lade ich eine Datei von der Kommandozeile mit FTP oder SSH hoch?

Ich habe dies noch nie zuvor getan und erstelle ein Bash-Shell-Skript, um dies für mich zu tun. Ich werde mich auch über ssh verbinden, um einige Dinge zu erledigen (von denen ich bereits weiß, wie man das macht). Vielleicht gibt es also eine Möglichkeit, Dateien über ssh hochzuladen, damit ich alles in einer Verbindung erledigen kann?

Wie kann ich das machen?

#!/bin/sh

cd ./files-to-upload
#upload the files
29
Andrew

Sie können scp verwenden, um auf einen Remote-Computer zu kopieren.

scp <file to upload> <username>@<hostname>:<destination path>
55
tangens

Sie suchen wahrscheinlich nach SCP oder ähnlichem.

#!/bin/bash

cd ./files-to-upload
scp * [email protected]:/path/to/upload/files/to

natürlich muss dies nach Ihren Wünschen angepasst werden. Ersetzen Sie user @ Host mit Ihren echten Informationen. Sie werden aufgefordert, ein Passwort zum Hochladen einzugeben.

6
John T

Wenn Sie wirklich ssh (anstelle von scp) verwenden müssen, können Sie Folgendes tun:

for filename in *; do
  cat $filename | ssh [email protected] "cd /path/to/upload/files/to; cat - > $filename"
done

aber reguläres scp (wie tangens suggestion) ist das beste.

4
Jimmy Hedman

scp ist die bessere Antwort, da es über SSH verschlüsselt wird.

Wenn Sie dies jedoch über Standard-FTP tun möchten, schauen Sie sich ncftpput an. Es wurde speziell zum Hochladen einer Datei entwickelt:

NAME ncftpput - Internet-Dateiübertragungsprogramm für Skripte

ÜBERSICHT ncftpput [Optionen] Remote-Host Remote-Verzeichnis lokale Dateien ...

1
DuPie

curl ist ein gutes Programm, das mehrere Protokolle verarbeitet.

0
Joe Internet

Für die ec2-Instanz müssen Sie auch die .pem-Datei übergeben,

$scp -i ~/Desktop/Amazon.pem ~/Desktop/file.Zip  [email protected]:~/data/
0
Elavarasan

Wenn Sie den Befehl scp (sichere Kopie) verwenden, wird eine Verbindung zum Client hergestellt, und wenn Sie noch keinen Fingerabdruck für das Host-Gerät gespeichert haben, wird dies der Fall sein Fragen Sie nach dem Host-Passwort, ansonsten sollte es sich automatisch mit dem Host verbinden, glaube ich.

0
David