ansible api执行远程脚本结果中文乱码报错

简介: ansible api执行远程脚本结果中文乱码报错

ansible api执行远程脚本:sh nfts/test/test.sh

报错:ERROR Internal Server Error

查看日志:docker logs -f --tail=100 ansible-api

File "/opt/py3/lib/python3.8/site-packages/rest_framework/renderers.py",line 110,in render return ret.encode()
UnicodeEncodeError:'utf-8' codec can't encode characters in position 323-334: surrogates not allowed
Task ansible_ui.tasks.run_adhoc_raw[] received
Start task: Ansible Ad-hoc

原因:执行脚本的远程服务器是gb2312编码,而ansible需要utf-8编码,所以在脚本执行完返回结果时ansible接收的结果是乱码,乱码转Unicode时报错。

解决:

在执行的脚本后 加 | iconv -f GBK -t UTF-8 (转脚本编码)

  • 命令行执行:
docker exec -it ansible-api bash
cd /opt/py3/bin
./ansible all -i 36.xx.xx.211, -u login_name(远程服务器) -k -m shell -a "cat /nfts/test/test.sh | iconv -f GBK -t UTF-8;date; sh nfts/test/test.sh | iconv -f GBK -t UTF-8" 
# -k 提示输入密码(目标机)
  • 任务和脚本执行
cat /nfts/test/test.sh | iconv -f GBK -t UTF-8
date
sh nfts/test/test.sh | iconv -f GBK -t UTF-8


相关文章
|
16天前
|
小程序 API 开发者
【产品上新】接口不报错=API成功接入?不妨“验”一下
【产品上新】接口不报错=API成功接入?不妨“验”一下
31 0
|
16天前
|
JSON JavaScript API
如何使用Newman 命令行的方式去运行API脚本?
如何使用Newman 命令行的方式去运行API脚本?
如何使用Newman 命令行的方式去运行API脚本?
|
16天前
|
敏捷开发 API
【sgCreateAPI】自定义小工具:敏捷开发→自动化生成API接口脚本(接口代码生成工具)
【sgCreateAPI】自定义小工具:敏捷开发→自动化生成API接口脚本(接口代码生成工具)
|
16天前
|
安全 网络安全 API
python调用openai api报错self._sslobj.do_handshake()OSError: [Errno 0] Error
python调用openai api报错self._sslobj.do_handshake()OSError: [Errno 0] Error
99 1
python调用openai api报错self._sslobj.do_handshake()OSError: [Errno 0] Error
|
16天前
|
监控 Java API
Spring cloud Hystrix 、Dashboard、API(zuul)相关报错
Spring cloud Hystrix 、Dashboard、API(zuul)相关报错
28 2
|
16天前
|
SQL JSON DataWorks
DataWorks操作报错合集之DataWorks报错显示API不存在,但这个API应该是有的,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
8天前
|
Java 关系型数据库 数据库连接
实时计算 Flink版操作报错之遇到错误org.apache.flink.table.api.ValidationException: Could not find any factory for identifier 'jdbc',该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
12天前
|
Oracle 关系型数据库 数据库
实时计算 Flink版操作报错合集之执行Flink job,报错“Could not execute SQL statement. Reason:org.apache.flink.table.api.ValidationException: One or more required options are missing”,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
80 0
|
12天前
|
Java API 数据安全/隐私保护
实时计算 Flink版操作报错合集之变更数据流转换为Insert-Only记录时,报错"datastream api record contains: Delete"如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
27 0
|
12天前
|
存储 关系型数据库 对象存储
实时计算 Flink版操作报错合集之变更数据流转换为Insert-Only记录时,报错"datastream api record contains: Delete"如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
39 1
http://www.vxiaotou.com