zoukankan      html  css  js  c++  java
  • SSH 登陆服务器locale告警(-bash: warning: setlocale:)的处理方法

    使用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  
  • 相关阅读:
    TURN协议(RFC5766详解)
    css布局相关:涉及到常见页面样式难点
    关于echart的x轴固定为0-24小时显示一天内的数据
    用于实现tab页签切换页面的angular路由复用策略
    Promise相关学习
    js原型链、继承、this指向等老生常谈却依然不熟的知识点——记录解析
    js中有遍历作用相关的方法详解总结
    rgb格式颜色与#000000格式颜色的转换
    input搜索框的搜索功能
    Fastapi学习总结(上)
  • 原文地址:https://www.cnblogs.com/kevingrace/p/8191929.html
Copyright © 2011-2022 走看看