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
的行为与此有何不同。
我有一个触发远程 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
的行为与此有何不同。