ssh登陆服务器locale告警(-bash: warning: setlocale:)的处理方法-程序员宅基地

技术标签: git  运维  开发工具  

 

使用ssh远程登陆 IDC机房服务器,发现老是出现如下告警信息

-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory

原因分析:

根据上面登录警告提示可知,系统已经设置了默认地区_语言.字符集为en_US.UTF-8,但是在系统中没有定义对应的locale文件,
所以只需要手动生成这个locale文件即可!

解决办法:

[root@centos6-vm01 ~]# vim /etc/environment         #添加下面两行内容
 LANG="en_US.UTF-8"
 LC_ALL=
[root@centos6-vm01 ~]# source /etc/environment

[root@centos6-vm01 ~]# vim /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
[root@centos6-vm01 ~]# cat /etc/sysconfig/i18n

然后执行下面命令,生成 en_US.UTF-8这个字符集的locale文件
[root@centos6-vm01 ~]# localedef -v -c -i en_US -f UTF-8 en_US.UTF-8

如上操作后,再次ssh登陆后就不会出现这条告警信息了。

如果出现:-bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)

解决办法
[root@localhost ~]# vim /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"  
LC_ALL="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"

第一行解决了中文乱码问题
第二行解决了"LC_ALL: cannot change locale (zh_CN.UTF-8)"的问题。

[root@localhost ~]# source /etc/sysconfig/i18n

接着安装:
[root@localhost ~]# yum install glibc-common kde-l10n-Chinese

安装之后,重启服务器,上述问题消失。

注意:不同类型的服务器配置方法会有差异,需要根据实际机器情况,多尝试一些方法,才能解决问题。

=======================================================================

也有可能是系统中的glibc和locale的库版本不兼容。
解决办法删除locale库再重建一下,前提是你的文件系统中要有相应的数据文件。

[root@localhost ~]# rm -f /usr/lib/locale/locale-archive
[root@localhost ~]# localedef -i en_US -f ISO-8859-1 -A /usr/share/locale/locale.alias en_US
[root@localhost ~]# localedef -i zh_CN -f GB2312 -A /usr/share/locale/locale.alias zh_CN
[root@localhost ~]# yum -y reinstall glibc-common

======================================================================

再看一个在centos7系统上使用/bin/sh或su命令出现的告警:warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8) ,解决办法如下(注意:这种方法针对的是centos7,centos6系统不一样):

[root@uatblockchain04 ~]# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

在物理机上,只要执行:
[root@localhost ~]# yum -y install kde-l10n-Chinese telnet 
[root@localhost ~]# yum -y reinstall glibc-common

还需要修改:
[root@localhost ~]# vim /etc/locale.conf  
LC_ALL="zh_CN.UTF-8"
[root@localhost ~]# source /etc/locale.conf

----------------------------------------------------------------------
注意如果是在在Dockerfile里面执行的时候,就不太一样了:
必须执行三个步骤才不会出错   
yum -y install kde-l10n-Chinese telnet && \
yum -y reinstall glibc-common &&\
yum clean all  && \
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8  && \

或加上 
cat /dev/null > /etc/locale.conf && echo "LC_ALL=\"zh_CN.UTF-8\"" > /etc/locale.conf

这样才可以保证中文不会有问题。

其中碰到一个情况:在基础镜像的再安装软件的时候再次碰到这个异常提示

最后的处理方案是:dockerfile构建过程执行警告的地方后,再执行一次  
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8  
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33857230/article/details/85962363

智能推荐

AOJ2903. USACO 3.1.2 Score Inflation (完全背包)_aoj超大背包-程序员宅基地

文章浏览阅读717次。USACO 3.1.2 Score Inflation (完全背包)一、题目大意题目传送门:USACO 3.1.2 Score Inflation 二、解题思路这是个典型的完全背包,就是不限定物品数量,求最大价值。刚开始用贪心写的,居然过了11/12的数据,可怕,最后一组过不了,换成了dp才过了全部数据。我以为根据比重排序就行了,但想想感觉好像有点问题,幸好最后一组数据让我WA掉了,要不..._aoj超大背包

layui table表单提示数据接口请求异常:parsererror_数据接口请求异常:parsererror-程序员宅基地

文章浏览阅读6.9k次。返回数据格式不符合要求输出格式为{"code":0,"msg":"","count":1000,"data":[{"id":1,"username":"zs",},{"id":2,"username":"gf", }]}..._数据接口请求异常:parsererror

替换python字典中的key值_字典替换值-程序员宅基地

文章浏览阅读2w次,点赞5次,收藏10次。比如有一个 a = {‘a’: 1}希望变为 a = {‘b’ :1}即:在保留value不变的情况下,替换key值目前能想到的实现方案是 a[‘b’] = a.pop(‘a’)_字典替换值

程序员的路上,你掌握了什么概念或技术使你感觉自我提升惊人?_程序员感觉没啥提升-程序员宅基地

文章浏览阅读394次。你学会了做功能,用各种库,各种框架,项目形形绝色,需求千姿百态,变化莫测。但你都过来了,凭借着优秀的搜索素养,复制黏贴,錸主义的能力(我不是在讽刺,这是一种编程必须的能力),成功地解决了一个又一个陌生的需求。你觉得自己走过了很长的路。这时候大概三年过去了,确实不短。但也渐渐意识到似乎缺了什么东西,有一种不满足感,以前你只追求高效率地完成工作,现在你想追求得更多一点。_程序员感觉没啥提升

hihoCoder 1014 Trie树【python版】_hihocoder 1014 python-程序员宅基地

文章浏览阅读703次。python版的简单字典树:n = int(raw_input())lis = []for i in range(n): str = raw_input() lis.append(str)trie = {}for i in range(n): p=trie for ch in lis[i]: if not p.has_key(ch): _hihocoder 1014 python

linux驱动-file_operations之mmap_file_operations mmap-程序员宅基地

文章浏览阅读3.8k次。简述: linux内存空间分为用户空间和内核空间,应用程序是不能直接访问内核空间的数据。 mmap就是建立内核空间映射到用户空间虚拟地址上,之后,应用程序直接访问映射后虚拟地址,实际是在访问内核空间。应用程序mmap的系统调用: mmap声明的头文件:#include 如是ubuntu系统,可以在/usr/include/sys目录下查看 应用程序mmap声明:voi_file_operations mmap

随便推点

浏览器获取摄像头设备列表,并选择设备_安卓浏览器 navigator.mediadevices 摄像头列表-程序员宅基地

文章浏览阅读6.3k次。前段时候接到一个需求,新增功能:根据当前电脑绑定了几个摄像头,获取相应摄像头列表, 并选择摄像头拍摄。翻阅网上的各种资料,没有找到方法,最后借鉴了H5页面转换前后摄像头的方法,记录如下。1. 先通过 navigator.getUserMedia 调用起本地的摄像头2. 调用成功之后获取到本地电脑所有的摄像头设备列表 navigator.mediaDevices..._安卓浏览器 navigator.mediadevices 摄像头列表

负载均衡集群介绍 LVS介绍 LVS调度算法 LVS NAT模式搭建-程序员宅基地

文章浏览阅读59次。LVS BAT模式搭建更改主机名:hostnamectl set-hostname centos7-threebash准备工作• 三台机器• 分发器,也叫调度器(简写为dir)• 内网:172.16.161.130,外网:172.16.138.128(vmware仅主机模式)• rs1• 内...

springboot 2.1.6通用controller中@RequestBody无法获取到参数-程序员宅基地

文章浏览阅读1k次。一直想写一个通用Controller,最近试了试,使用的是面向接口编程。BaseController如下:package com.scgc.es.controller;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation...

rs.open sql,conn,1,1 与rs.open sql,conn,1,3 的区别-程序员宅基地

文章浏览阅读4.2k次。经常开发asp但对于细致的说法,真实不太清楚,这里简单的介绍下。一般情况下 读取数据都是用rs.open sql,conn,1,1 修改数据:rs.open sql,conn,1,3 删除数据:直接要conn.execute(“delete * from new where id=1”)这样的。Rs.Open语法如下:rs.Open Source,ActiveConnection,C..._rs.open sql,conn,1,3

edb-debugger在Ubuntu环境下的安装_ubuntu安装edb-dubuger-程序员宅基地

文章浏览阅读7.8k次,点赞3次,收藏13次。edb-debugger的安装资料博客上都只有比较旧的版本,一开始参考安装的时候一直出错,在edb-debugger的github主页上也只找到依赖库的条件。 Dependency Version Required Qt >= 4.6 Boost (Headers Only) >= 1.35 Capstone >= 3.0 [Graphviz] (http://ww_ubuntu安装edb-dubuger

实战wxPython: 002-wxPython提供了哪些模块用于Python应用开发_wxpython模块-程序员宅基地

文章浏览阅读314次。wxPython是用于创建桌面GUI应用程序的跨平台工具包。其主要作者是Robin Dunn。它是基于成熟的跨平台C ++库wxWidgets的Python包装。使用wxPython,开发人员可以在Windows,Mac和各种Unix系统上创建应用程序。_wxpython模块

推荐文章

热门文章

相关标签