bash脚本中的wget只下载了部分文件



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

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

第一个bash脚本中有一大堆函数,它们都能完美地工作,变量在整个过程中一直传递,最后有一个命令在服务器3上运行另一个脚本:

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

当脚本被触发时,这也起作用:

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

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

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

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

在这种情况下,我使用wget的方式不对吗?由于它是由远程bash脚本触发的,我是否需要提供一些额外的安全性或命令来实现这一点?

非常感谢!

根据注释,您确定wget命令的输出包含wget生成的文本,而不是您指定的URL中的文件内容。

根据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的行为与此有何不同。

相关内容

  • 没有找到相关文章

最新更新