Saya ingin mendapatkan akses ke informasi kemajuan dari lftp. Saat ini, saya menggunakan ikal seperti:
curl http://example.com/file -o file -L 2> download.log
Ini menulis informasi perkembangan curl ke file download.log, yang dapat saya ikuti untuk mendapatkan kemajuan waktu nyata.
Tetapi pendekatan yang sama tidak bekerja dengan lftp, baik dengan stdout atau stderr. Saya berakhir dengan file download.log yang kosong, sampai transfer selesai.
lftp -e 'get http://example.com/file;quit' 2> download.log
lftp -e 'get http://example.com/file;quit' 1> download.log
Ketika saya tidak mengarahkan output, saya melihat kemajuan di layar. Ketika saya melakukan redirect output, saya berhenti melihat kemajuan di layar, tetapi tidak ada yang muncul di download.log. Setelah transfer file selesai, saya melihat hasil akhirnya, seperti ini - tetapi tidak ada yang sebelumnya:
97618627 bytes transferred in 104 seconds (913.1K/s)
Apakah lftp melakukan sesuatu yang tidak biasa dengan outputnya - mencetak ke layar tanpa mencetak ke stdout / stderr? Apakah ada cara lain untuk menangkap keluaran layar selain mengarahkan ulang stdout / stderr?
Lihat pengaturan default "log: file / xfer" dengan memasukkan
set
perintah di lftp.Output yang mungkin:
Anda dapat mengubahnya dengan cara yang berbeda tentunya.
sumber
Periksa variabel domain xfer :
akan memasukkan informasi transfer log ke ~ / .lftp / transfer_log
Namun, Anda tidak dapat mengubah tujuan file log
sumber
coba ini untuk menangkap info kemajuan: lftp sftp: // $ SFTPUSER: $ SFTPPASS @ $ SFTPHOST -e "cd $ DIRECTORY; mget $ SFTPFILE; bye"> $ SFTPLOG 2> & 1
sumber