bash 脚本中的 wget 仅下载部分文件?

wget in bash script is only downloading a partial file?

我有一个触发远程 bash 脚本的 php 脚本,该脚本又触发 let 另一个远程 bash 脚本(所有机器都使用 ssh 密钥对相互通信,并且工作正常)...

PHP(服务器 1)--> BASH(服务器 2)--> BASH(服务器 3)

第一个 bash 脚本中有一大堆函数,它们都运行良好,变量在整个过程中正确传递,然后最后有一个命令 运行 服务器 3 上的另一个脚本:

ssh root@xxx.xxx.xxx.xxx "/var/www/getpodcast.sh ";

这也有效,因为脚本被触发了:

getpodcast.sh($1 包含文件名,例如:mymusic.mp3)

#!/bin/bash
wget -o /var/www/vhosts/site1/httpdocs/audio/ http://xxx.xx.xx.xx.xxx/complete/

这应该是在这个阶段下载文件,但由于某种原因它只下载了部分文件。完整的文件大小应该在 115mb 左右,但每次 运行 它只会下载前 10 或 20k 吗?这个数字每次 运行 都会变化,它不是恒定的。

我试过在这个脚本中使用 wget -b 来强制它在后台下载,但如果我那样做,什么也下载不了。

我在这种情况下使用 wget 的方式不对吗?由于它是从远程 bash 脚本触发的,因此我需要提供一些额外的安全措施或命令才能使其正常工作吗?

非常感谢!

根据评论,您确定 wget 命令的输出包含 wget 生成的文本 ,而不是 [=26] 中文件的内容=] 你指定的。

根据 wget 手册页:

   -o logfile
   --output-file=logfile
       Log all messages to logfile.  The messages are normally reported to
       standard error.

这不是您要查找的内容,所以是的,这是一个 wget 使用错误。

相反,您可能想要使用 curl,它按照您期望的方式使用 -o 选项,或者切换到 wget 的 -O(大写 O)选项。请注意,默认情况下,wget 会将其保存的文件命名为与 URL 中相同的文件;阅读手册页以了解 -O 的行为与此有何不同。