Strace跟踪解决expect乱码问题
--Strace跟踪解决expect乱码问题
----------------------------------2014/07/27
情景:需要在本机抓去另外一台远程数据库中的数据。
执行语句:./ersh.exp "export LANG=en_US.UTF-8;mysql -uroot -S /tmp/mysql_3306.sock -ss cdb2 -e \"set names utf8; select '外部-SNG-上海松江',pair_id,concat(tvs_vip,':',tvs_vport),instance_name,app_name from tb_mysql_pair where sync_status=1 and tvs_vport<>0 and status=3;\"" 10.237.152.19
输出结果:
spawn ssh -p36000 10.237.152.19 -lroot -q
root's password:
Last login: Sun Jul :: from 10.181.225.39
Welcome to tlinux 1.2 64bit
Version 1.2
[root@TENCENT64 ~]# export LANG=en_US.UTF-;mysql -uroot -S /tmp/mysql_3306.sock -ss cdb2 -e "set names utf8; select '??-SNG-????',pair_id,concat(tvs_vip,':',tvs_vport),instance_name,app_name from tb_mysql_pair where sync_status=1 and tvs_vport<>0 and status=3;"
??-SNG-???? 10.236.158.100: 宅计划
[root@TENCENT64 ~]# sleep
exit
[root@TENCENT64 ~]# exit
logout
可见这句话在传过去的时候就是乱码了,不是返回时的乱码。
使用strace跟踪脚本的执行,发现如下编码相关语句:
open("/usr/lib/locale/en_US/LC_CTYPE", O_RDONLY) = 3
查看本机locale:
# locale
LANG=en_US.UTF-
LC_CTYPE=en_US
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
猜测是LC_CTYPE的设定问题引起此语句传输到其他机器时发生乱码,将LC_CTYPE设置成en_US.UTF-8,问题解决。
./ersh.exp "export LANG=en_US.UTF-8;mysql -uroot -S /tmp/mysql_3306.sock -ss cdb2 -e \"set names utf8; select '外部-SNG-上海松江',pair_id,concat(tvs_vip,':',tvs_vport),instance_name,app_name from tb_mysql_pair where sync_status=1 and tvs_vport<>0 and status=3;\"" 10.237.152.19
spawn ssh -p36000 10.237.152.19 -lroot -q
root's password:
Last login: Sun Jul :: from 10.181.225.39
Welcome to tlinux 1.2 64bit
Version 1.2
at(tvs_vip,':',tvs_vport),instance_name,app_name from tb_mysql_pair where sync_status= and tvs_vport<> and status=;" 外部-SNG-上海松江',pair_id,conc
外部-SNG-上海松江 10.236.158.100: 宅计划
[root@TENCENT64 ~]# sleep
exit
[root@TENCENT64 ~]# exit
logout
Strace跟踪解决expect乱码问题的更多相关文章
- [strace]跟踪进程的系统调用
转自:https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html 简介 strace常用来跟踪进程执行时的系统调用和所接收的信号 ...
- 增加UBUNTU字符集 解决中文乱码问题
对GBK,GB2312,GB18030字符集的支持是UBUNTU中文乱码的罪魁祸首,其实我们可以在保持UTF-8为默认编码的条件下添加对这几个编码的支持,以解决中文乱码问题. 我想这个问题肯定有其他人 ...
- Sublime Text 2—解决中文乱码
Sublime Text 2是一个非常棒的代码及文本编辑器,绿色小巧.速度飞快,跨平台支持Win/Mac/Linux,支持32与64位,支持各种流行编程语言的语法高亮.代码补全等,有着许多其他编辑器没 ...
- zabbix解决中文乱码问题(没有测试成功)
zabbix解决中文乱码问题 1.在windows系统中找一个自己喜欢的字体,这里我们用:msyh.ttf 2.将字体上传至/var/www/html/zabbix/fonts目录下 [root@za ...
- Spring项目解决Post乱码
Java EE解决Post乱码:在web.xml中加入: <filter> <filter-name>encodingFilter</filter-name> &l ...
- 二招解决php乱码问题
PHP的乱码问题已经说了N+1遍了,但还是经常看到新手不知道该如何解决php乱码问题,在此本人再重新给总结一下,希望对新手有点帮助 php网页出现乱码一般是在建立数据库时用的编码和php网页的编码不同 ...
- 利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码
利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码 2014-07-31 12:53 1047人阅读 评论(0) 收藏 ...
- 【原创】通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0...
这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错 ...
- 解决 IntelliJ 乱码问题
原文:解决 IntelliJ 乱码问题 汉字符在IntelliJ的控制台输出乱码.编译器在编译的时候,把汉字符编译成非UTF-8而引起乱码.我是在做Jsoup解析的时候出现的错误,其实归根结底确实编译 ...
随机推荐
- vue.js+UEditor集成 [前后端分离项目]
首先,谈下这篇文章中的前后端所涉及到的技术框架内容. 虽然是后端的管理项目,但整体项目,是采用前后端分离的方式完成,这样做的目的也是产品化的需求: 前端,vue+vuex+vue router+web ...
- 二、redis集群搭建
redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...
- 【hibernate 初探】之 关系映射,ORM
从整理上讲,一个ORM框架(以hibernate为例)所涉及内容无非就是,如何映射,如何检索,还有事务处理.所以从这三方面入手,基本上可以保证将hibernate可以用到自己的项目之中.所以我先说一下 ...
- Android事件分发理解
Android事件分发机制是个难点和重点,结合下各家,写点自己的理解.. 首先抛出一个小问题,写一个button的点击事件 button.setOnClickListener(new OnClickL ...
- 不同浏览器创建 ajax XMLHTTPRequest对象的方法及兼容性问题总结
XMLHttpRequest 对象是AJAX功能的核心,要开发AJAX程序必须从了解XMLHttpRequest 对象开始. 了解XMLHttpRequest 对象就先从创建XMLHttpReques ...
- java基础,流程控制语句
流程控制语句 条件语句: if语句: *if(条件 boolean类型) ...
- 制作Docker镜像
编写DockerFile 这个DockerFile是一个制作镜像的配方,用于描述这些文件,环境,和命令.在Linux.macOS的窗口终端中,或者windows的命令提示符下,执行下面的步骤,切记如果 ...
- xdu_1009: Josephus环的复仇(线段树)
题目链接 题意不难理解,解法具体看代码及注释吧.. #include<bits/stdc++.h> using namespace std; typedef long long LL; ; ...
- hdu_5810:Balls and Boxes(期望)
这题似乎就是纯概率论.. E(V)=D(X_i)=npq (p=1/m,p+q=1) #include<bits/stdc++.h> using namespace std; typede ...
- Ubuntu上安装PHP环境-mysql+apache+php-Linux操作系统
安装MYSQL 1. sudo apt-get install mysql-server 或者 apt-get isntall mysql-client 2. 安装过程中会提示设置密码,注意设 ...