我有一个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强制它在后台下载,但如果我这样做则不会下载。
我在这种情况下使用错误的方法吗?由于它是从远程bash脚本触发的,我需要提供一些额外的安全性或命令来使其工作吗?
非常感谢!
答案 0 :(得分:0)
根据评论,您确定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
的行为与此有何不同。