我想通过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/