У меня есть SFTP-код для передачи файла с удаленного сервера на мой локальный сервер с использованием команды «предпологать». Ниже приведен фрагмент моего сценария оболочки.
/usr/bin/expect<<EOF
spawn /usr/bin/sftp -o Port=$PORT $USER@$HOST
expect "$USER password:"
send "$PASSWORD\r"
expect "sftp>"
set timeout -1
send "get $FILE $LOCAL\r"
expect "sftp>"
send "bye\r"
sleep 1
EOF
Мои требования:
Есть ли способ проверить завершение перевода?
Я открыт для любых предложений - проверка на основе размера файла (это будет отличным решением, но я предполагаю, что ограничение команд sftp не позволит сравнивать размеры исходного и переданного файла).
Или есть способ проверить на основе кодов возврата? если get равен 100%, он возвращает 0, в противном случае любой ненулевой код. Если это способ, как проверить это? Я имею в виду, как захватить частичную передачу? Или проблема сети? Или любой другой ожидаемый
сценарии?
Я открыт для любого решения, кроме , ожидайте также . Как работает в пакетном режиме sftp или других опциях sftp, если есть?
Я использую AIX Unix, и я обязан использовать только SFTP.
Заранее спасибо!