我有一个旧的 Mac 服务器,我们的营销部门将它用作几个 Mac 客户端的文件服务器。我想摆脱它有几个原因:
- 我们的主备份系统不支持 Mac 服务器
- 我们的 AV 解决方案不支持 Mac
- 没有 IT 方面的 Mac 管理员技能。
- 由于年龄和容量问题,服务器需要升级。
我想做的是提供来自 Windows 或 HP-UX 服务器的共享。但是,现有文件使用在其他操作系统上无效的字符。我们可以编写脚本来重命名它们,但我们担心文件在内部链接到其他文件,重命名文件会破坏链接(想想链接到 JPG 的 HTML 文件,重命名 JPG,链接是坏了)
那么我们如何重命名文件,同时保留链接呢?有没有更好的办法?
Mac-Server 是 OS X Server 10.0,我不确定客户端,但它们较新(大约一两年前)。
你说文件名中有斜杠,而那些……在 Unix 下很难支持。但是 Mac OS X是Unix。但是 HFS 用冒号而不是斜线分隔目录。那么这一切如何一起发挥作用呢?
在我的 SnowLeopard 安装中,我可以在 Finder 中创建一个文件名中带有斜杠的文件。但是,当我从命令行查看该文件时,该斜杠已转换为冒号。如果我在命令行上创建一个文件名包含冒号的文件,它会在 Finder 中转换为斜杠。我无法从命令行创建带有斜线的文件名,并且 Finder 拒绝在文件名中添加冒号。
如果我在包含冒号的 Unix Samba 服务器上创建文件名,当查看安装在我的 SnowLeopard 机器上的该文件时,我会发疯。文件“1:2.txt”被转换成“14V9MB~M.TXT”。如果我从 Mac 在该共享上创建一个文件,冒号将转换为三个不可打印的字节:0xEF、0x80、0xA2。这似乎是 U+F022 的 UTF-8 编码,它位于 Unicode“私人使用区域”中,这意味着它没有被普遍定义。
如果我使用真正的 Windows 机器作为服务器进行相同的测试,我想我会得到类似的结果。Windows 不允许我在文件名中使用冒号或斜杠。如果我从 Mac 端创建带有冒号的文件名,资源管理器会向我显示该文件,而冒号位置根本没有任何可见字符。(即“1:2.txt”在资源管理器中显示为“12.txt”。)在命令行中,a
dir
显示“1?2.txt”。我怀疑它知道如何解释 UTF-8 编码,但不知道该私有字符点显示什么。我认为这一切都归结为:只要你能弄清楚如何将文件名中的斜杠翻译成 0xEF80A2,你就可以进行转换。这显然是可以测试的。
就在昨天,我遇到了类似的问题,我需要将文件从我们的 Mac 服务器复制到 Windows 工作站,我想在那里尝试处理它们。经过大量关于修复文件名(例如摆脱正斜杠)的填充后,我确实发现内部链接在此过程中中断。这变得如此混乱,以至于我放弃了这个想法。
对于它的价值,如果您使用它的只是一个文件服务器并且它不是面向公众的(安全性是另一回事),那么学习足够的 Mac 服务器基础知识并不难。就此而言,您的 Mac 用户中是否至少有足够的管理技能来提供帮助?在我看来,您想要摆脱服务器是出于表面上看起来合理的原因,但准备好拥有 Mac 客户端,您无法支持服务器。我在那里错过了什么吗?
您提到防病毒软件是服务器上的问题,但没有提及客户端。以我的思维方式,它需要在两者上,或者不要在任何一个上打扰它。如果你在客户端有东西,你不能在服务器上使用同样的东西吗?我个人不在 Mac 上使用它,只在 Windows 上使用(这在未来当然可能会改变)。
如果这是一台相对较新的 Mac 机器,您可以通过 NFS 将共享挂载到 Unix/Linux 机器上,然后将文件复制到其中,而不会有太多麻烦。通过通过 NFS 安装,我能够将在本地使用奇怪字符的办公室迁移到网络设置。您还可以在任何现代 Linux 系统上进行 HFS 分区。
如果这是一个 OS 9 服务器,您可能会遇到一些麻烦——OS 9 本身不支持 NFS,经过一番谷歌搜索后,我什至找不到支持读取 OS 9 分区的项目。