Вернуться   BBS SyS-AdmiN > Технический > Программный > Perl
Регистрация Правила форумаДоска почета Пожертвования Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Perl Perl-кодинг, советы и т.п.

Рекламный блок!
Если Вы хотите поддержать развития данного ресурса, но не имеете возможности помочь финансово, то перейдите по ссылкам указаным ниже. Чем чаще будете переходить тем больше Вы поможете развитию проэкта. Что бы прочитать это объявление полностью, нажмите на кнопку ниже

Ответ
 
LinkBack Опции темы Опции просмотра
Старый 24.06.2008, 04:07   #1 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию панелька для хостинга

появилась идея написать панельку для хостинга...

рассказывать всё долго.
Аналоги стоят не мало, cpanel, plesk ит.юд. от 400$ в год. а для jail 1500$

Мож кто пробавол написать уже, кто что думает по этому поводу?

но написать реально, не так чтобы ели работало, а прием платежей и т.д....

кто сможет посмотреть и ошибка помочь исправить?
CISCO вне форума   Ответить с цитированием
Старый 24.06.2008, 09:04   #2 (permalink)
Злой Админ
 
Аватар для cooler
 
Регистрация: 16.11.1984
Сообщений: 115
Вы сказали Спасибо: 3
Поблагодарили 13 раз(а) в 13 сообщениях
cooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспорима
Отправить сообщение для cooler с помощью ICQ
По умолчанию

Цитата:
Сообщение от CISCO Посмотреть сообщение
прием платежей

Ты не путай хостинг-панель и биллинг-панель..

Довелось как-то ковырятся в одном хостинг-серваке... Там весь хостинг состоял из 4-5 скриптов
__________________

Полная подпись
cooler вне форума   Ответить с цитированием
Старый 24.06.2008, 12:21   #3 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию

ну так а в чем проблема?

в логи ProFTP, apache, postfix кидают количесво байт, все это в таблицу и дальше осталось только подсчитать

ну вот чтобы не с пустыми руками, пуллер добавляет в систему, который я писал не доделан еще...

а как идея вообще? мож сделаем?

Код:
#!/usr/local/bin/perl

#use strict;
#use CGI qw(:standard);
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
#use CGI 'param','header';
use DBD::mysql;
use Math::Round qw(nearest);
use Image::Magick;

#use strict;
use warnings;
use CGI::Cookie;
use Storable;
use vars '$dbh', '%user_vars';
use CGI qw(param);
use POSIX;
use Digest::MD5 qw(md5_hex);
use Encode qw(encode_utf8);
use CGI qw/:standard/;


sub filelock {
flock(DB,2);
}
sub fileunlock {
flock(DB,8);
}

sub get_time {
 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
 $mon++;
 $year+=1900;
 if ($mday<10) { $mday="0$mday"; }
 if ($mon<10) { $mon="0$mon"; }
 if ($min<10) { $min="0$min"; }
 $date="$mday $mon $year";
 $time="$hour:$min:$sec";
 $cur_all_day=$mday+$mon*30+$year*365;
}
&get_time;

$radate="$year-$mon-$mday $hour:$min:$sec";

#($sec,$min,$hour,$mday) = localtime(time);
#$radate=time;

sub logsave {
my $self = shift;
@logfile="
\n
time:  $radate \n
vhost: $name \n
qhost: $qhost   \n
erroe: $self\n
 \n
";

open (DB2, "/var/log/httpd/hostingcron.log") || die print "Cannot open file $basefile: $!";
@base = <DB2>;
close(DB2);

open (DB, ">/var/log/httpd/hostingcron.log") || die print "Cannot open file $basefile: $!";
&filelock;
truncate(DB,0);
print DB @base;
print DB @logfile;
&fileunlock;
close(DB);
}



















#datetimecur - posledmyaya izmenenaya

$dbh = DBI->connect("DBI:mysql:database=hosting_db;host=localhost","","", { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;

#my $ti= "1";


my $sth = $dbh->prepare("
        SELECT MAX(datetimecur), MAX(datetime)  FROM users   limit 1
      ");
$sth->execute();
my ($maxdatetimecur, $maxdatetime) = $sth->fetchrow_array();
$sth->finish();

#if ($maxdatetimecur=$maxdatetime) {exit;}

print $maxdatetimecur;
print $maxdatetime;






($sec,$min,$hour,$mday) = localtime(time);
$ttt=time;
print "$ttt";







#and


my $sth = $dbh->prepare("
        SELECT id FROM users where datetime = $maxdatetime  limit 1
      ");
$sth->execute();
my ($date_id) = $sth->fetchrow_array();
$sth->finish();



#select name, pass from users where 1 <  id and id <= 2;

my $sth = $dbh->prepare("
        select name, pass, q from users where $maxdatetimecur <  datetime and datetime <= $maxdatetime
      ");
$sth->execute();
#my ($login, $pass, $qhost) = $sth->fetchrow_array();

while ( ($login, $pass, $qhost) = $sth->fetchrow_array() )    {
$sth->finish();
$dbh->disconnect();











#proverka logina

my $Result = system("pw usershow $qhost");

if ($Result < 1) {
my $fff="erroe: 601 proverka logina\n";
&logsave($fff);
}













#dobavlenie polzovatelya
my $Result0 = system("pw  useradd  $qhost -c UserDomain = $login.q6.org.ua -L webuser -s /sbin/nologin -d /home/$qhost");
if ($Result0 < 1) {

my $fff="erroe: 602 pdobavlenie polzovatelya\n";
&logsave($fff);

}





my $Result1 = system("pw groupmod $qhost -m www");

if ($Result1 < 1) {
my $fff="erroe: 603 pdobavlenie grupu www\n";
&logsave($fff);
}






my $infouser9 = system("pw usershow $qhost");

if ($infouser9 < 1) {
my $fff="erroe: 610 ne polu4ilosya posmotret polzovatelya uid gid \n";
&logsave($fff);
}

my ($user, $grup, $uid, $gid,)=split(/\:/, $infouser);



#dobavlyaem polzovatelya v ftp
my $dbh = DBI->connect("DBI:mysql:database=ftp;host=localhost",) || die $DBI::errstr;
# готовим запрос
my $Resul2 = $dbh->prepare("INSERT INTO `users_table`  (  username,  password,   groupname,  uid,  gid,  homedir,  shell, last_login,  login_count,  last_err_login,  err_login_count)  VALUES ('$qhost','$passs','$qhost','$uid','$gid','/home/$qhost','/sbin/nologin',0,0,0,0)");
$Result2->execute();
$sth->finish();
$dbh->disconnect();

if ($Result2 < 1) {
my $fff="erroe: 604 dobavlenie polzovatelya v ftp\n";
&logsave($fff);
}







if (-e /home/$qhost) 
 {
my $fff="erroe: 505 katalog suwestvuet\n";
&logsave($fff);
}


my $Result3 = system("mkdir /home/$qhost");
if ($Result3 < 1) {
my $fff="erroe: 605 ne sozdaetsay katalog\n";
&logsave($fff);
}




my $Result4 = system("cp -R /usr/local/www/home /home/$qhost");
if ($Result4 < 1) {
my $fff="erroe: 606 ne kopiruetsya katalogi\n";
&logsave($fff);
}




my $Result5 = system("chown -R $qhost:$qhost /home/$qhost");
if ($Result5 < 1) {
my $fff="erroe: 607 ne vistablyautsta prava\n";
&logsave($fff);
}







my $dbh = DBI->connect("DBI:mysql:database=mysql;host=localhost",) || die $DBI::errstr;
# готовим запрос

my $res = $dbh->prepare("CREATE DATABASE IF NOT EXISTS $qhost_db");
my $res2 = $dbh->prepare("GRANT ALL PRIVILEGES on $qhost.* to $qhost@localhost IDENTIFIED BY '$passs' ");

$res->execute();
$res2->execute();

# У вас эта ситуация может и не возникнуть.
$res->finish();
$res2->finish();


$dbh->disconnect();












@base=" 

<VirtualHost *:80>
        ScriptAlias /cgi-bin \"/home/$qhost/www/cgi-bin\"
        ServerAdmin     @ukr.net
#       AliasMatch      ^/~([^/]+)(/.*)*        /usr/home/$1/data$2
        DocumentRoot    /home/$qhost/www/data
        ServerName      $login.x0.org.ua
        ServerAlias     www.$login.x0.org.ua
        SuexecUserGroup $qhost   $qhost
        Alias           /php-fcgi/      /home/$qhost/www/cgi-bin/
        CustomLog       /home/$qhost/log/httpd-access.log       combined
        ErrorLog        /home/$qhost/log/httpd-error.log
    
  CBandClassLimit world 150M
  CBandExceededSpeed 32 5 55
  CBandSpeed 4096 20 60
  CBandRemoteSpeed 512 6 6
  CBandScoreboard /var/www/scoreboard
  CBandPeriod 4W
</VirtualHost>";


if (-e /usr/local/etc/apache22/hosting/$login.conf) 
 {
my $fff="erroe: 506 file vhost suwestvuet\n";
&logsave($fff);
}



open (DB11, ">/usr/local/etc/apache22/hosting/$login.conf") || die print "Cannot open file $basefile: $!";
&filelock;
truncate(DB11,0);
# Записываем полученные данные в начало
# ($idd, $log, $passswd, $city, $emaill, $komm,$ip)=split(/\;/, $str);
#print DB "$id;$login\;$passwd\;$city\;$email\;$title\;$time\;$date\;$ip\;\n";
print DB11 @base;
&fileunlock;
close(DB11);







$fs="/usr/home";
$user_datasize="50";


#edquota -e $fs:$user_datasize:$user_datasize}:$user_inode}:${user_inode} ${user_name}


my $Result6 = system("edquota -e $fs:$user_datasize:$user_datasize $qhost");


if ($Result5 < 1) {
my $fff="erroe: 608 Ne postavilis kvoti\n";
&logsave($fff);
}
}

#posledniy dobavlennii

$dbh = DBI->connect("DBI:mysql:database=hosting_db;host=localhost",, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;
my $result = $dbh->prepare("UPDATE users SET datetimecur = ? WHERE id = ?") || die "aw";
$result->execute($maxdatetime, $date_id);
$result->finish();
$dbh->disconnect();

exit;
Цитата:
Сообщение от cooler Посмотреть сообщение
Там весь хостинг состоял из 4-5 скриптов

а чего оно стоит так дорого с веб интерфейсом? на преле можно сделать и покруче cpanel и все автоматизировать и чтобы само работало...
CISCO вне форума   Ответить с цитированием
Старый 25.06.2008, 09:04   #4 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию

cooler, как думаешь писать пока только для себя?

просто протестировать хорошо надо

я хотел писать не только для себя... будет она кому-то нужна не понтяно...?

надо чтобы кто-то помог протетировать и ошибки по исправлять...
(дизайн - не умею... будут просто стыренные кнопочки и рамочки )
CISCO вне форума   Ответить с цитированием
Старый 25.06.2008, 20:00   #5 (permalink)
Злой Админ
 
Аватар для cooler
 
Регистрация: 16.11.1984
Сообщений: 115
Вы сказали Спасибо: 3
Поблагодарили 13 раз(а) в 13 сообщениях
cooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспорима
Отправить сообщение для cooler с помощью ICQ
По умолчанию

Дизайн - фигня..

Пиши под себя.. Если что, где погонять найдем.
В любом случае если проэкт не коммерческий то переписывать/дописывать прийдется неоднократно.
__________________

Полная подпись
cooler вне форума   Ответить с цитированием
Старый 26.06.2008, 07:50   #6 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию

Цитата:
Сообщение от cooler Посмотреть сообщение
Дизайн - фигня..

Пиши под себя.. Если что, где погонять найдем.
В любом случае если проэкт не коммерческий то переписывать/дописывать прийдется неоднократно.

ok!

не плохо бы если правительство соединенных штатов помогло
CISCO вне форума   Ответить с цитированием
Старый 21.07.2008, 06:42   #7 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию

Цитата:
Сообщение от cooler Посмотреть сообщение
Дизайн - фигня..

возможно и фигня, но он же сам себя не сделает?

хотя можно стырить... посмотреть что получиться
CISCO вне форума   Ответить с цитированием
Старый 21.07.2008, 11:07   #8 (permalink)
VIP :)
 
Аватар для BUM
 
Регистрация: 18.07.2008
Адрес: Ks.UA
Сообщений: 11
Вы сказали Спасибо: 1
Поблагодарили 1 раз в 1 сообщении
BUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущееBUM обеспечил(а) себе прекрасное будущее
Отправить сообщение для BUM с помощью ICQ Отправить сообщение для BUM с помощью Skype™
По умолчанию

Цитата:
Сообщение от CISCO Посмотреть сообщение
протестировать хорошо надо

могу организовать место тестов
Цитата:
Сообщение от CISCO Посмотреть сообщение
будет она кому-то нужна не понтяно...?

все зависит от того что в ней будет

Цитата:
Сообщение от CISCO Посмотреть сообщение
дизайн - не умею... будут просто стыренные кнопочки и рамочки

Если надо с этим могу помочь ...
__________________
чтобы единожды настроенный линукс упал надо обладать минусовым IQ и быть похожим на осьминога (восемь лап и все из жопы).
BUM вне форума   Ответить с цитированием
Старый 23.07.2008, 17:10   #9 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию

Цитата:
все зависит от того что в ней будет

а что вы хотите чтобы в ней было? если в ней что-то не будет, то можите напишите - можно добавить!

вообще-то когда делать, то нужно знать зачем это делаеться...
CISCO вне форума   Ответить с цитированием
Старый 18.08.2008, 23:38   #10 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию

появился вопрос, не знаю как правильно:

1) proftp и pureftp + MySQL, видел везде есть неограниченное количество аккаунтов для ftp, в общем не знаю как лучше сделать чтобы было больше одного аккаунта!!

нужно добавлять пользователя в систему чтобы сделать еще один аккаунт!?

Код:
INSERT INTO `users_table` VALUES(2, 'wowa','sf3r4g88', 'ftp',
'1000', '1000', '/usr/users/wowa', '/sbin/nologin',0,0,0,0)
и нужно поставить права доступа на файлы и каталоги для аккаунта ftp, но apache работает от user:user, и получаеться что apache работать не будет от другого пользователя с тем каталогом?!

как на других панелей делаеться? как тут сделать чтобы было несколько аккаунтов ftp?

2) чтобы управлять dns наверное конфиги в файлах использовать не надо, нашел bind + MySQL, еще PowerDNS... прикручю наверное bind + MySQL

Последний раз редактировалось CISCO, 23.08.2008 в 06:20.
CISCO вне форума   Ответить с цитированием
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Вкл.



Часовой пояс GMT +2, время: 16:26.


Копирайты Реклама