Por que você não usa apenas um único comando do SCP?
scp -P 678 marek@server:/backup/database.gz /Volumes/www/backup/
Eu também acredito que usar este método lhe dará a saída desejada evern quando executado a partir de um script.
Eu gostaria de get
arquivo grande sobre o sftp. Eu executo os seguintes comandos:
kopparberg:dev marek$ sftp -P 678 marek@server
marek@server's password:
Connected to server.
sftp> cd backup
sftp> get database.gz /Volumes/www/backup/
Fetching /backup/database.gz to /Volumes/www/backup/database.gz
9% 44MB 1.4MB/s 05:06 ETA
Como seguem mais alguns comandos, decidi escrever um script bash e coloquei comandos sftp em batchfile.
O arquivo Bash é assim:
#!/bin/bash
#get backup file
sftp -P 678 -o "BatchMode no" -b batchfile.sftp marek@server
#following commands
#...
Em bacthfile.sftp são apenas três etapas:
cd backup
get database.gz /Volumes/www/backup/
quit
O problema é que não vejo progresso quando executo o arquivo bash. Existe alguma explicação racional por trás?
O rsync over sftp fará isso por você, sem necessidade de scripts:
rsync -av --progress -e 'ssh -p 678' marek@server:backup/database.gz /Volumes/www/backup/