サイトを新しいサーバーにミラーリングする任務を負っています。古いサイトにはいくつかの Perl スクリプトがありますが、内部的に見る限り (Perl については何も知りませんが、コーディング全般、特に PHP/js/etc についてはかなりよく理解しています)、古いものに依存していません。サーバ。とはいえ、データベース ファイルを調べて適切な記事ファイルを見つけるこのスクリプトを実行しようとしても、何も取得されません。
基本的に、これは初歩的な古い CMS であり、私が説明したように、PAG ファイルでファイル名を検索して表示しました。私はここで少し迷っています。新しいサイトでミラーリングが機能しない理由はありますか? パーミッションを確認しました。Perl が同じ/usr/etcディレクトリにインストールされていることを確認しました。別の記事によると、次のようなコマンドが表示された場合、dbmを使用していると思います。
dbmopen( %ARTS, $art_dbm, 0644 );
$entry = $ARTS{$article_id};
dbmclose( %ARTS );
それはdbmでなければなりませんよね?
関連するメモとして、信じられないほど洗練された Perl スクリプトを使用せずに、その PAG ファイルの情報を元のファイルとマージする方法はありますか? つまり、個別に保存するのではなく、ファイル自体にその情報を含む 100 個のテキスト ファイルを再作成しますか?
編集:以下の最初の回答に感謝します。その HASH とマスクについて説明できますか? .pag ファイル (データベース名) が実際に .pl ファイルで以前に定義された場所にあり、バイナリで転送されたことを再確認しました。それでも、どういうわけか、正しく開くことができません!
EDIT 3: OK、申し訳ありませんが、ここで最終編集:以下のダイ コード (Shwern) を使用したところ、DB ファイルが適切なディレクトリに存在するにもかかわらず (articles.pag と article.dir の 2 つのファイルですが、変数は拡張子のない「記事」のみを参照する)、その DB ファイルが見つからないことがわかりました。適切な権限があれば... では、ここでの質問は、一体何が起こっているのかということです。これらは異なるバージョンの perl ですか? それとも、基本的で愚かなことをしているだけですか?記録のために(はい、ひどいです)私はまだシェルアクセスを持っていませんが、私はそれに取り組んでいます...私は「新しいWeb」スキルのためにこれを行うように頼まれました.私は確かに適切ではありません.ファイルを読んで理解することはできますが、perl や dbm のような人です。最終的な提案として、元のサーバーの人々 (コーダーではない) にこれの ASCII ダンプを作成するように依頼する方法 (スクリプトなど) を知っている人はいますか? これを CSV に取り込んでファイルに戻して、別のデータベースで再利用できるようにする必要があります...なんて悪夢でしょう!