Автор Тема: Как восстановить доступ к dbm файлу?  (Прочитано 3943 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн docker

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 36
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.dedowskstudio.ru
Добрый день!
Ситуация следующая. Сайт переносится с одного хостинга на другой.
В одном из разделов используется dbm база данных, и perl скрипт к ней обращается.


dbmopen
(%db,$root_path."cgi/db/news",0640) || print "$!";
 foreach (
sort $b <=> $a keys %db){
.....
.....


в папке cgi/db находится файлы news, news.db, news.dir, news.pag и другие.

Все это было перенесено со старого хостинга и в том же виде выложено на новый.
Но при запуске этого скрипта, обращающегося к базе новостей, выводится:
Inappropriate file type or format

Попытки изменения прав доступа на папку cgi, db - ситуацию не изменили.

Вопросы:
Что нужно сделать чтобы тот же скрипт подцепил dbm-файлы в случае, если все копируется с другого хостинга.
Другой выход - создать пустую одноименную базу данных (сохранение данных не актуально) этого же формата, главное чтобы этот же скрипт с ней работал. Нашел только функцию dbmopen, где уже при созданиии нужно указывать пользователя и его пароль, что мне совсем непонятно для чего, непонятно так же как создавать там структуру таблицы и все остальное. В мануалах тех, которые я нашел, ничего про это не было сказано.

Еще буду рад за любые достойные мануалы по работе с dbm.

Спасибо!

Оффлайн cr4ck3r

  • Фанат Perl
  • Постоялец
  • ***
  • Сообщений: 146
  • +0/-0
  • 2
    • Просмотр профиля
    • http://perlmonks.org.ru
Как восстановить доступ к dbm файлу?
« Ответ #1 : 23 Мая 2005, 12:21:26 »
А до этого хостинг у вас не виндовый был случайно?
По моему dbm файлы получают расширения pag и dir только на виндах. на никсах создается один файл с расширением db. Незнаю насколько в этом случае сохраняется кроссплатформенность.
Ворота в perl - perlmonks.org.ru

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как восстановить доступ к dbm файлу?
« Ответ #2 : 23 Мая 2005, 12:29:37 »
cr4ck3r расширение не имеет значения.

docker какой DB менеджер использовался в скрипте?
Если старый хостинг еще существует, нужно написать конвертор в csv и провести обратную операцию на новом сервере.
Все это происходит из-за отличия версий DB менеджеров на этих системах.
The documentations is your friend

Оффлайн docker

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 36
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.dedowskstudio.ru
Как восстановить доступ к dbm файлу?
« Ответ #3 : 23 Мая 2005, 12:41:52 »
> docker какой DB менеджер использовался в скрипте?
На старом хостинге? Информации об этом нет.
Это можно узнать только через ssh или напрямую спросив у провайдера? Аналога phpinfo в perl-е нет?

> Если старый хостинг еще существует, нужно написать конвертор в csv и провести обратную операцию на новом сервере.

А какой операцией осуществляется переконвертация csv в dbm на новом хостинге? Можно об этом поподробней пожалуйста. Спасибо!

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как восстановить доступ к dbm файлу?
« Ответ #4 : 23 Мая 2005, 12:53:47 »
Цитировать
docker:
> docker какой DB менеджер использовался в скрипте? На старом хостинге? Информации об этом нет.

У тебя разные скрипты на этих серверах??
Я имел ввиду в самой верхушке скрипта есть подключение менеджера DB командой use. Посмотри.
Цитировать
docker:
А какой операцией осуществляется переконвертация csv в dbm на новом хостинге? Можно об этом поподробней пожалуйста.

Можно. Пишем скрипт.
1) Открываем csv файл
2) Считываем данные и  разбиваем на хеш ключ=> значение по сепаратору
3) Открываем dbm базу
4) Записываем хеш
Все.
The documentations is your friend

Оффлайн docker

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 36
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.dedowskstudio.ru
Как восстановить доступ к dbm файлу?
« Ответ #5 : 23 Мая 2005, 13:00:16 »
> У тебя разные скрипты на этих серверах??
> Я имел ввиду в самой верхушке скрипта есть подключение менеджера DB командой use. Посмотри.

Там ничего такого нет,только:

use CGI qw(param);
use 
LWP::UserAgent;


По-умалчанию значит какой-то используется? А какой?

Оффлайн docker

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 36
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.dedowskstudio.ru
Как восстановить доступ к dbm файлу?
« Ответ #6 : 23 Мая 2005, 13:03:37 »
Да и еще, на новом хостинге мне создать новую одноименную базу через dbmopen?

А какие туда имя польователя и пароль записывать? Любые? Просто  насколько я понял, этот логин и пароль нигде не используется.

??

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как восстановить доступ к dbm файлу?
« Ответ #7 : 23 Мая 2005, 13:13:06 »
По умолчанию используется один из драйверов: dbm, ndbm, sdbm, gdbm, или Berkeley DB. Точнее тебе никто не скажет.
The documentations is your friend

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28