【发布时间】:2009-11-11 21:48:33
【问题描述】:
我的任务是将网站镜像到新服务器上。旧网站有一些 Perl 脚本,据我在内部看到的(我对 Perl 一无所知,尽管我对编码有很好的理解,特别是 PHP/js/等)并不依赖于旧的服务器。也就是说,当我尝试运行此脚本时,该脚本会通过数据库文件查找适当的文章文件,但它不会检索任何内容。
基本上,这是一个基本的旧 CMS,正如我解释的那样,它在 PAG 文件中搜索文件名并显示它。我有点迷失在这里。镜像在新站点上不起作用是有原因的吗?我检查了权限,检查了 Perl 是否安装在相同的 /usr/etc 目录中。我认为它使用 dbm,因为according to another article,如果我看到这样的命令:
dbmopen( %ARTS, $art_dbm, 0644 );
$entry = $ARTS{$article_id};
dbmclose( %ARTS );
一定是dbm吧?
在相关说明中,是否有任何方法可以将该 PAG 文件的信息与原始文件合并,而无需极其复杂的 Perl 脚本;即,在文件本身中使用该信息重新创建 100 个文本文件,而不是单独存储?
编辑:感谢下面的第一个答案。你能解释一下 HASH 可能是什么,以及掩码吗?我已经仔细检查了 .pag 文件(数据库名称)确实位于之前在 .pl 文件中定义的位置,并且它是以二进制形式传输的。但不知怎的,我无法正确打开它!
编辑 3:好的,抱歉,最后编辑在这里:我使用了下面的模具代码 (Shwern),发现它没有找到那个 DB 文件,尽管它在那里(两个文件文章。 pag 和articles.dir,但该变量仅引用正确目录中的“articles”(不带扩展名)并具有正确的权限......所以,这里的问题是现在到底发生了什么?这些是perl的不同版本吗?还是我只是在做一些基本而愚蠢的事情?郑重声明(是的,这很糟糕)我还没有 shell 访问权限,虽然我正在研究它......我被要求这样做是因为我的“新网络”技能,我当然不合适perl 和 dbm 之类的人,虽然我可以阅读文件并理解它们。作为最后的建议,有没有人知道我如何(脚本等)我可以要求原始服务器人员(不是编码人员)对此进行 ASCII 转储,还是会不合时宜?我需要将它转换成 CSV 并返回到文件中,这样我就可以在另一个数据库中重用它……真是一场噩梦!
【问题讨论】:
标签: database perl content-management-system mirroring dbm