You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本安装AzCopy后执行报Segmentation fault错误求助

AzCopy安装后执行报Segmentation Fault,仅手动复制后正常的问题排查

问题根源

你的安装脚本中tar解压步骤的后台执行逻辑错误,导致cp命令在AzCopy二进制文件尚未完全解压完成时就执行,复制了不完整的文件到/usr/local/bin,最终触发Segmentation Fault错误。

看脚本中的这行关键代码:

tar --strip-components=1 --exclude=*.txt -xzvf downloadazcopy-v10-linux & > /dev/null && echo "Unpacking OK" || (echo "Unpacking failed - aborting"; exit 1)

这里的&会让tar进程在后台运行,脚本不会等待解压完成就直接执行后续的复制操作。此时/tmp/azcopy还处于写入状态,复制的是不完整的二进制文件,自然无法正常运行。而脚本执行结束后,后台的tar已经完成解压,所以此时手动复制或直接运行/tmp/azcopy都能正常工作。

修复方案

  1. 修正tar解压命令
    移除tar命令后的&,让解压操作在前台执行,确保文件完全生成后再进行后续步骤;同时修正错误的重定向写法(& > /dev/null改为&> /dev/null,合并标准输出和错误输出到空设备):
tar --strip-components=1 --exclude=*.txt -xzvf downloadazcopy-v10-linux &> /dev/null && echo "Unpacking OK" || (echo "Unpacking failed - aborting"; exit 1)
  1. 增加文件完整性校验(生产环境推荐)
    在复制完成后添加哈希校验步骤,确保目标文件和源文件完全一致:
echo "Verifying copied file integrity..."
tmp_sha=$(sha256sum /tmp/azcopy | awk '{print $1}')
dest_sha=$(sha256sum /usr/local/bin/azcopy | awk '{print $1}')

if [ "$tmp_sha" != "$dest_sha" ]; then
    echo "ERROR - Copied file is corrupted"
    exit 1
fi
echo "File integrity verified"

验证修复

修改脚本后重新执行安装,此时/usr/local/bin/azcopy应为完整的二进制文件,执行azcopy命令即可正常输出帮助信息,不会再出现Segmentation Fault。

内容的提问来源于stack exchange,提问作者Wojtek_B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 05:07:41