curl 下载文件时乱码

2023-09-27 11:14:15 +08:00
 lander
请教下,系统是 centos7.5 ,我们业务有个自动化脚本从服务端下载 tar.gz 包并重命名后自动安装,如下:
mkdir -p pkgs_tmp && cd pkgs_tmp && curl -o xxx_x64.tar.gz http://xxx:xx/file/dl/xxx(sha256)?dir=installPkg && tar -xzvf xxx_x64.tar.gz && chmod +x ./*_install/install

发现有机器执行 curl -o xxx_x64.tar.gz http://xxx:xx/file/dl/xxx(sha256)?dir=installPkg && tar -xzvf xxx_x64.tar.gz 会乱码,还有一堆 xterm-256color 的输出,最后包并没有成功下载到 pkgs_tmp 下,ssh 客户端用的是 mobaxterm 换成 xshell 也是类似报错,试了 export TERM=xterm-256color 也不行,这个可能是为啥。。提前谢过。

# echo $TERM
xterm-256color
# tput colors
256

相关截图请参考: https://imgur.com/a/rTaJXMG
1309 次点击
所在节点    程序员
9 条回复
NessajCN
2023-09-27 11:30:18 +08:00
在出问题的机子上一步一步手敲命令看输出
skiy
2023-09-27 11:32:07 +08:00
网址带有参数的,如 ?xxx=xxx ,要用引号包裹一下。

看起来没啥问题。
一般情况下,我会加个 -L (防重定向)
curl -L -o xxx.tar.gz "https://x.com/x.zip?sign=xxx"
ohayoo
2023-09-27 11:34:25 +08:00
把 url 用双引号引起来
julyclyde
2023-09-27 13:53:03 +08:00
单引号
lander
2023-09-27 14:19:12 +08:00
@NessajCN 出问题就是 curl -o xxx_x64.tar.gz http://xxx:xx/file/dl/xxx(sha256)?dir=installPkg && tar -xzvf xxx_x64.tar.gz 这一步有问题的
@skiy 加了引号也不行,而且只有部分机器才有问题。。
NessajCN
2023-09-27 14:21:36 +08:00
@lander 所以具体是前面的 curl 报错还是后面的 tar 报错?
skiy
2023-09-27 14:25:30 +08:00
@lander 同样的命令,别的机器可以?如果这样,我会先检测目标服务器是不是设置了白名单、防火墙,然后再从客户服务器 curl 该路径下一个没有密钥的文件。

具体的没有执行的相关代码,不太了解…
chzhx
2023-09-27 14:39:51 +08:00
没问题的机器 LANG 是啥,有问题的机器 export LANG=对应编码
devopsdogdog
2023-09-27 15:23:57 +08:00
locale 看看,确保所有变量都一致吧,我以前有个变量少改了 , 死活乱码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/977507

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX