Wie lade ich eine Datei von der Befehlszeile 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 tun (die ich bereits weiß). Vielleicht gibt es eine Möglichkeit, Dateien über ssh hochzuladen, damit ich alles in einer Verbindung tun kann?

Wie kann ich das tun?

#!/bin/sh

cd ./files-to-upload
#upload the files
Author: Andrew, 2009-12-12

7 answers

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

scp <file to upload> <username>@<hostname>:<destination path>
 67
Author: tangens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-12-12 20:53:32

Sie suchen wahrscheinlich nach SCP oder ähnlichem.

#!/bin/bash

cd ./files-to-upload
scp * user@host:/path/to/upload/files/to

Natürlich muss dies nach Ihren Wünschen optimiert werden.Ersetzen Sie user@host durch Ihre tatsächlichen Informationen. Sie werden aufgefordert, ein Passwort hochzuladen.

 6
Author: John T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-12-12 21:07:33

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

for filename in *; do
  cat $filename | ssh user@host "cd /path/to/upload/files/to; cat - > $filename"
done

Aber regulärer scp (wie tangens Vorschlag) ist der beste.

 5
Author: Jimmy Hedman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-20 10:17:35

Scp ist die bessere Antwort, da es über SSH verschlüsselt wäre.

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-file-transfer-Programm für scripts

SYNOPSIS ncftpput [Optionen] remote-Host remote-Verzeichnis local-files...

 1
Author: DuPie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-12-13 07:15:17

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

$scp -i ~/Desktop/amazon.pem ~/Desktop/file.zip  [email protected]:~/data/
 1
Author: Elavarasan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-02-21 08:22:05

Curl ist ein gutes Programm, das mehrere Protokolle verarbeitet.

 0
Author: Joe Internet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-12-16 12:43:45

Wenn Sie die scp (secure copy) Befehl Es stellt eine Verbindung zum Client her und wenn Sie noch keinen Fingerabdruck für das Hostgerät gespeichert haben, werden Sie nach dem Hostkennwort gefragt, andernfalls sollte eine automatische Verbindung zum Host hergestellt werden, glaube ich.

 0
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-09-04 23:28:46