苦战samba乱码『看我出招系列』

简介:
作者:田逸([email]sery@163.com[/email])  
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。

    一台运行
Redhat 7.3 的服务器由于机器使用时间过久而出现硬盘故障,具体的表现是系统运行一段时间后就挂起了;经诊断是磁盘出现坏道所致。于是通知用户尽可能的备份数据,然后申请一个新的硬盘,打算把数据复制到新的系统。在做这个事情之前,我试着在单用户下运行 fsck 检查文件系统,但没有成功,看来只得用新的系统来挂接有故障的硬盘,然后再复制目录和文件。作者:田逸 [出处:51cto博客

在硬盘上我用 RedHat AS 4 替代以前的 RedHat linux 7 ,安装完成后以源码方式安装了 Samba 软件,操作步骤如下:
请输入内容
1、下载文件  [root@localhost ~]# wget [url]http://us5.samba.org/samba/ftp/samba-3.0.23d.tar.gz[/url]  
2、在当前目录解压文件 [root@localhost ~]# tar zxvf samba- 3.0.23 d.tar.gz; cd samba-3.0.23d/source
3、配置、编译及安装    [root@localhost ~]# ./configure –prefix=/usr/local/samba  // 指定安装目录为 /usr/local/samba
   [root@localhost ~]#make;make install
4、拷贝samba的配置文件  [root@localhost ~]# cd ..; cd examples; cp smb.conf.default /usr/local/samba/lib/smb.conf.
5、修改配置文件/usr/local/samba/lib/smb.conf。根据自己的需求修改,一般而言,默认的情况都能满足要求。如果做过修改,修改完成后,运行testperm /usr/local/samba/lib/smb.conf检查一下配置文件是否正确。如果正确无误将出现类似后面的输出:Loaded services file OK.
6、添加samba用户。因为samba用户需是系统用户,因此在添加samba用户时需要检查添加的用户是否属于系统用户。再执行命令 /usr/local/samba/bin/smbpasswd  -a <username> 输入2次同样的密码就能成功添加samba用户。顺便说明一下,很多初学者会忽略添加samba用户这个过程,从而导致他不能从windows客户端正常登陆。
7、启用samba服务。/usr/local/samba/sbin/nmbd  /usr/local/samba/sbin/smbd
作者:田逸 [出处:51cto博客
    正确运行后,我把损坏的硬盘挂接到目录 /mnt/hdd5 下,然后按照以前的目录布局把相关的目录及文件复制到相关的位置,并给其相应的权限。做完后告诉用户(就是同事)让他们去恢复和使用 samba 。一会儿用户反应 samba 的目录和文件出现中文乱码的情况,换机器试也如此,其状态如下图所示:
 
作者:田逸
尝试着修改配置文件,手动加上代码页的语言为 zh_CN, 重新启动 samba 服务,在 windows 的客户端还是乱码,再换成其他编码,还是不行,后来又把 samba 删除换成更新的版本和换成低的版本,也是不行,客户催得很急,心里很是紧张。
作者:田逸
不经意中,发现用 ssh 的客户端软件 securecrt 能正常显示中文,连 samba 的用户目录里的中文名文件和目录都能正常显示,我想:能不能用 ssh 这样的客户端工具来实现一个转换呢?试一试吧!于是我拿出 SSH Secure File Transfer Client 这个工具连接 linux  服务器,察看 linux 服务器这端的文件和目录,发现除了 samba 用户目录的中文乱码外,其他目录的中文名称则能正常显示,接着在 linux samba 用户目录建一个中文名的目录,再从网上邻居访问 samba 发现中文名称显示正常。再试着在 linux 下用 cp 拷贝挂接分区的文件到 samba 用户目录,从 windows 的网上邻居访问 windows 还是乱码,但把那些乱码的中文名目录或文件通过 SSH Secure File Transfer Client 拷贝到 windows 目录却没有乱码,再把这些目录 / 文件拷回通过 SSH Secure File Transfer Client 拷贝 samba 用户目录则正常。于是得到这样的解决办法:在 windows 上通过  SSH Secure File Transfer Client linux 上挂接目录的文件拷贝到 windows 的目录,然后再把这些目录 / 文件拷贝回 linux samba 用户目录即可。
作者:田逸 [url]http://sery.blog.51cto.com[/url]
照上面的办法测试了几个小文件,发现此法可行。但有这样一个问题 需要拷贝的目录大小是数十 GB ,要来回倒腾可能需要很长的时间,而且我的 windows 硬盘的空间还没有这么多的空间来存储这些中转数据,看来还得使用一点技巧。
我的操作是这样的:先用 windows 网上邻居访问 samba 服务器,把 samba 目录映射成 windows 的网络驱动器(如下图所示):
 
 
然后使用 SSH Secure File Transfer Client linux 挂接目录的数据拷贝到 windows 的网络驱动器下(这实际上是在 linux 服务器上进行数据拷贝)。过程如下图所示:
 
 
花了很长一段时间,终于把这数据复制完毕,用 windows 的网上邻居访问 samba ,中文目录和中文文件名显示正常;用 VSS 客户端访问 samba ,一切正常。
 
造成乱码的原因是由于不同版本的 linux 的字符编码不同造成的(因为原来的系统进不去了,其编码不能再找到),通过 windows 中转一下就一致了。
 
 
注:运行命令  export LANG=zh_CN  language 临时设置成 zh_CN.




















本文转自sery51CTO博客,原文链接: http://blog.51cto.com/sery/14741,如需转载请自行联系原作者


相关文章
|
10月前
|
数据挖掘 Python
DrissionPage实战之采集猫眼电影top100榜
在信息化时代,数据的重要性日益凸显,特别是在充满活力的电影行业。猫眼电影作为中国领先的电影票务平台,提供了丰富的电影信息和用户评价,成为研究电影市场趋势的重要数据源。通过Python的DrissionPage库抓取猫眼电影Top 100榜单,不仅能够帮助影迷了解热门影片,还为制片方、市场分析师和投资者提供了宝贵的市场洞察。此项目通过自动化脚本定期更新数据,分析市场变化,助力精准决策。
239 0
ly~
|
11月前
|
存储 Oracle 关系型数据库
数据库的优点和缺点分别是什么?
### 数据库的优点与缺点 数据库具有高数据共享性,允许多用户和多应用同时访问,提升信息流通效率。其数据一致性通过约束机制和事务管理保障,确保数据完整无误。数据库具备强数据独立性,改变存储结构或逻辑结构对应用影响小。此外,用户权限管理和数据加密提升了数据安全性。 然而,数据库也存在成本高的问题,包括软件购买与维护费用及高性能硬件需求。大规模数据处理可能导致性能瓶颈,尤其是在高并发场景下。数据迁移复杂,尤其是不同数据库系统间或版本升级时,需处理数据结构和语法差异。
ly~
1217 2
|
11月前
|
人工智能 JavaScript 数据可视化
Cursor、v0 和 Bolt.new:当今 AI 编程工具的全面解析与对比
本文深入解析了 Cursor AI、v0 和 Bolt.new 三大 AI 编程工具的特点与应用场景。Cursor 适合日常编码与团队协作,v0 专注于 UI 原型设计,Bolt.new 擅长全栈原型开发。各工具在功能上互为补充,开发者可根据需求灵活选择,以提升工作效率。
4826 1
|
数据采集 Web App开发 测试技术
使用Selenium调试Edge浏览器的常见问题与解决方案
在互联网数据采集领域,Selenium常用于自动化网页爬取。针对使用Edge浏览器时遇到的启动远程调试失败、访问受限及代理IP设置等问题,本文提供了解决方案。通过特定命令启动Edge的远程调试模式,并利用Python脚本配合Selenium库,可实现代理IP、User-Agent的设定及Cookie管理等高级功能,有效提升爬虫稳定性和隐蔽性。遵循步骤配置后,即可顺畅执行自动化测试任务。
2424 1
使用Selenium调试Edge浏览器的常见问题与解决方案
|
SQL 关系型数据库 MySQL
在Linux中,如何备份和恢复MySQL数据库?
在Linux中,如何备份和恢复MySQL数据库?
|
设计模式 Java 开发者
谈谈springboot的工厂模式
【4月更文挑战第13天】Spring Boot中的工厂模式是一种用于解耦组件创建过程的设计模式,它允许系统在运行时根据需要动态地创建不同类型的对象。这种模式在Spring框架中得到了广泛的应用,特别是在依赖注入(DI)和控制反转(IoC)的上下文中,它有助于管理复杂的依赖关系并提高代码的可维护性和可扩展性
443 7
|
XML 设计模式 JSON
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-1
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
关系型数据库 MySQL 数据安全/隐私保护
【安装指南】MySQL和Navicat下载、安装及使用详细教程
【安装指南】MySQL和Navicat下载、安装及使用详细教程
1021 0
|
弹性计算 运维 负载均衡
【运维】使用HAproxy配置后端数据库集群 高可用及负载均衡
后端mariadb数据库galera_cluster集群参考之前文档,https://developer.aliyun.com/article/849929
2115 5
【运维】使用HAproxy配置后端数据库集群 高可用及负载均衡