Подскажите, можно ли сделать так, чтобы информация о юзерах, которая хранится в файлике
/etc/ppp/chap-secrets
хранилась в БД (MySQL)
>Подскажите, можно ли сделать так, чтобы информация о юзерах, которая хранится в
>файлике
>/etc/ppp/chap-secrets
>хранилась в БД (MySQL)конечно можно, но я бы сказал, что наоборот из MYSQL в файл.
Создай в MYSQL таблицу, приерно такую:
REATE TABLE ip (
id bigint(20) NOT NULL auto_increment,
ip varchar(15) NOT NULL default '',
login varchar(64) NOT NULL default '',
pass varchar(64) NOT NULL default '',
UNIQUE KEY id (id)
) TYPE=MyISAM;а потом скриптом на Perl выдергивай эту инфу в файл.
У меня например этот файл переписывается раз в 15 минут.
Скрипт примерно такой:
#!/usr/bin/perluse Mysql;
$host="localhost";
$database="имя_базы_данных";
$user="root";
$pass="пароль_для_входа_если_есть";
$dbh = Mysql->Connect($host,$database,$user,$pass) or print $Mysql::db_errstr;
$dbh->SelectDB($database) or print $Mysql::db_errstr;
$q=sprintf("SELECT login, pass, ip from имя_таблицы_которую_создал_выше");
$sth = $dbh->Query($q) or print $Mysql::db_errstr;
system("/bin/cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak");
open (SEC, ">/etc/ppp/chap-secrets.new");
while (@arr=$sth->fetchrow) {
print SEC "@arr[0] @arr[1] @arr[2] *\n";
}
system("/bin/mv /etc/ppp/chap-secrets.new /etc/ppp/chap-secrets");
close (SEC);вот и все.
>конечно можно, но я бы сказал, что наоборот из MYSQL в файл.блин, какое красивое решение, как я сразу не догадался.
и хотя я пишу на РНР, а не на Перле - в скрипте ясна каждая строчка.
спасибо за подсказку
Да.
Забыл добавить. Не забудьте поставить из портов:
/usr/ports/databases/p5-Mysql
Иначе скрипт будет ругаться :)
выложил некоторые свои скрипты на www.virus-net.ru
может кому пригодятся