通过sftp获取大文件的进度

我想通过sftp get大文件。 我执行以下命令:

 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 

因为它遵循一些更多的命令,所以我决定编写一个bash脚本,并将sftp命令放在batch file中。

Bash文件如下所示:

 #!/bin/bash #get backup file sftp -P 678 -o "BatchMode no" -b batchfile.sftp marek@server #following commands #... 

在bacthfile.sftp中只有三个步骤:

 cd backup get database.gz /Volumes/www/backup/ quit 

问题是我运行bash文件时看不到进度。 背后有没有合理的解释?

为什么不用一个SCP命令呢?

 scp -P 678 marek@server:/backup/database.gz /Volumes/www/backup/ 

我也相信,使用这种方法将给你所需的输出evern从脚本运行时。

rsync over sftp将为您做到这一点,不需要脚本:

 rsync -av --progress -e 'ssh -p 678' marek@server:backup/database.gz /Volumes/www/backup/