Ich mache die SFTP mit einem Bash-Skript, das Skript läuft und es startet den SFTP-Prozess und vervollständigt es auch, aber es kopiert nicht die vollständigen Daten. (Wie meine Datengröße ist ca. 600 MB es copyies nur 800 KB und wird beendet. die gleiche funktioniert prima, wenn sie manuell tun.sftp funktioniert nicht mit expect
Below mein Skript Inhalt ist
#!/bin/bash
HOST=x.x.x.x
PORT=22
USER=abc
PASSWORD=password
SOURCE_FILE=/nobackup/file.gz
TARGET_DIR=/home
/usr/bin/expect<<!
spawn /usr/bin/sftp -o Port=$PORT [email protected]$HOST
expect "password:"
send "$PASSWORD\r"
expect "sftp>"
send "get $SOURCE_FILE $TARGET_DIR\r"
expect "sftp>"
send "bye\r"
!
Bitte helfen.
Dies ist eine 'expect' Frage, keine' bash' Frage. Expect ist eine TCL-basierte Sprache, die nicht in der POSIX sh-Familie enthalten ist. –
Außerdem ist das Überschreiben von 'USER' eine schlechte Form - auf vielen (aber nicht allen) Systemen werden Sie feststellen, dass es bereits einen Wert hat, den aktuellen Benutzernamen. Teil des Ansatzes, Kleinbuchstaben für Ihre eigenen Variablen zu verwenden (wie im entsprechenden POSIX-Standard unter http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html empfohlen - siehe vierten Absatz, Einhalten Beachten Sie, dass Shell- und Umgebungsvariablen einen Namespace teilen) Systemvariablen nicht versehentlich überschreiben. –