Сообщение B0nuse » 2010-04-26 11:49:40
lissyara писал(а):из того что я видел - mysqldump, gzip, htmldoc, и ещё кой-чё по мелочи.
Хорошо. Глянем вместе:
#---
Строка 56
Код: Выделить всё
mysqldump --host=%s --port=%u --user=%s --password=%s --quote-names -r %s %s 2>&1
Выполняется дамп БД.
#---
Код: Выделить всё
hosts/billing/comp/www/Administrator/LogScan.comp
Строка 29
Код: Выделить всё
$Command = SPrintF('tail -n %u %s/%s',$Lines,$Logs,$Log);
Строка 32
Код: Выделить всё
$Command .= SPrintF(' | grep %s',EscapeShellArg($Search));
Строка 34
Смотрим лог...
Можно сделать средствами пхп, но лучше это делать самому при необхоимости с консоли...
#---
Строка 38
Код: Выделить всё
$Command = SPrintF('find %s -name "%s*.gz" -type f -mtime +2 -exec rm -f {} \;',$Folder,$DbName);
Ищем и удаляем файлы .gz которым больше 2х суток.
По хорошему, данную команду нужно вообще вынести в отдельный sh скрипт и повесить на крон, при необходимости.
Строка 50
Код: Выделить всё
$Command = 'cd %s;mysqldump --host=%s --port=%u --user=%s --password=%s --quote-names -r %s %s 2>&1;gzip %s';
бэкап БД...
Эти функции должен делать сам админ сервера, если он хороший админ...И делать это средставми самостоятельных sh скриптов или средствами панели.
Строка 353
Код: Выделить всё
$Command = 'mysql --host=%s --port=%u --user=%s --password=%s %s 2>&1 < %s';
инсерт базы в БД.. например - файла строки 347
Код: Выделить всё
$Path = SprintF('%s/db/%s/permissions.sql',SYSTEM_PATH,$HostID);
строки 366
Код: Выделить всё
$Path = SprintF('%s/db/%s/views.sql',SYSTEM_PATH,$HostID);
строки 385
Код: Выделить всё
$Path = SprintF('%s/db/%s/triggers.sql',SYSTEM_PATH,$HostID);
строки 404
Код: Выделить всё
$Path = SprintF('%s/db/%s/functions.sql',SYSTEM_PATH,$HostID);
#---
строка 62
Код: Выделить всё
$Command = SPrintF('convert %s -thumbnail %ux%u^ -gravity North -extent %ux%u %s',$File,$Width,$Height,$Width,$Height,$File);
работа с картинками
#---
строка 3
Код: Выделить всё
Exec(SPrintF('rm -rf %s/scripts/JBsServer',SYSTEM_PATH));
удаляем файл...
#---
строка 275
Код: Выделить всё
$MySQL = SPrintF('mysql -u %s --password=%s --host=%s --port=%u %s < %s 2>&1',$__SETTINGS['db-user'],$__SETTINGS['db-password'],$__SETTINGS['db-server'],$__SETTINGS['db-port'],$__SETTINGS['db-name'],$Path);
инсерт файлов в БД при установке.
строка 401
запрос версии мускуля
строка 422
запрос версии htmldoc
#---
инсерт баз в БД...
#---
Надеюсь я все нашел?
И это не считая sh скриптов, типа flush.sh
Замечу - я нисколько не критикую работу автора! Каждый др@#$т как он хочет...
Казалось бы, ничего страшного и все хорошо, но, повторюсь - функцию exec() часто запрещают на серверах в пхп по соображениям безопасности.
Поэтому, обращаясь к автору скрипта, прошу:
исключите (или минимизируйте) в будущих релизах использование функции exec() в биллинге. Чтобы без этой функции можно было нормально установить биллинг, настроить его и использовать (пусть даже без каких-то функций).
Все вышесказанное является ИМХО.
Спасибо.
[quote="lissyara"]из того что я видел - mysqldump, gzip, htmldoc, и ещё кой-чё по мелочи.[/quote]
Хорошо. Глянем вместе:
#---
[code]hosts/billing/comp/Tasks/BackUp.comp[/code]
Строка 56
[code]mysqldump --host=%s --port=%u --user=%s --password=%s --quote-names -r %s %s 2>&1[/code]
Выполняется дамп БД.
#---
[code]hosts/billing/comp/www/Administrator/LogScan.comp[/code]
Строка 29
[code]$Command = SPrintF('tail -n %u %s/%s',$Lines,$Logs,$Log);[/code]
Строка 32
[code]$Command .= SPrintF(' | grep %s',EscapeShellArg($Search));[/code]
Строка 34
[code]$Command .= ' 2>&1';[/code]
Смотрим лог...
Можно сделать средствами пхп, но лучше это делать самому при необхоимости с консоли...
#---
[code]hosts/root/comp/www/Patches.comp[/code]
Строка 38
[code]$Command = SPrintF('find %s -name "%s*.gz" -type f -mtime +2 -exec rm -f {} \;',$Folder,$DbName);[/code]
Ищем и удаляем файлы .gz которым больше 2х суток.
По хорошему, данную команду нужно вообще вынести в отдельный sh скрипт и повесить на крон, при необходимости.
Строка 50
[code]$Command = 'cd %s;mysqldump --host=%s --port=%u --user=%s --password=%s --quote-names -r %s %s 2>&1;gzip %s';[/code]
бэкап БД...
Эти функции должен делать сам админ сервера, если он хороший админ...И делать это средставми самостоятельных sh скриптов или средствами панели.
Строка 353
[code]$Command = 'mysql --host=%s --port=%u --user=%s --password=%s %s 2>&1 < %s';[/code]
инсерт базы в БД.. например - файла строки 347
[code]$Path = SprintF('%s/db/%s/permissions.sql',SYSTEM_PATH,$HostID);[/code]
строки 366
[code]$Path = SprintF('%s/db/%s/views.sql',SYSTEM_PATH,$HostID);[/code]
строки 385
[code]$Path = SprintF('%s/db/%s/triggers.sql',SYSTEM_PATH,$HostID);[/code]
строки 404
[code]$Path = SprintF('%s/db/%s/functions.sql',SYSTEM_PATH,$HostID);[/code]
#---
[code]hosts/root/system/libs/Image.lib[/code]
строка 62
[code]$Command = SPrintF('convert %s -thumbnail %ux%u^ -gravity North -extent %ux%u %s',$File,$Width,$Height,$Width,$Height,$File);[/code]
работа с картинками
#---
[code]patches/billing/files/1000020.php[/code]
[code]patches/billing/files/1000021.php[/code]
[code]patches/billing/files/1000021.php[/code]
строка 3
[code]Exec(SPrintF('rm -rf %s/scripts/JBsServer',SYSTEM_PATH));[/code]
удаляем файл...
#---
[code]scripts/billing/install-gui.php[/code]
строка 275
[code]$MySQL = SPrintF('mysql -u %s --password=%s --host=%s --port=%u %s < %s 2>&1',$__SETTINGS['db-user'],$__SETTINGS['db-password'],$__SETTINGS['db-server'],$__SETTINGS['db-port'],$__SETTINGS['db-name'],$Path);[/code]
инсерт файлов в БД при установке.
строка 401
[code]$Result = Exec('mysql --version 2>&1');[/code]
запрос версии мускуля
строка 422
[code]$Result = Exec('htmldoc --version 2>&1');[/code]
запрос версии htmldoc
#---
[code]scripts/root/db-install.php[/code]
инсерт баз в БД...
#---
Надеюсь я все нашел?
И это не считая sh скриптов, типа flush.sh
Замечу - я нисколько не критикую работу автора! Каждый др@#$т как он хочет...
Казалось бы, ничего страшного и все хорошо, но, повторюсь - функцию exec() часто запрещают на серверах в пхп по соображениям безопасности.
Поэтому, обращаясь к автору скрипта, прошу:
исключите (или минимизируйте) в будущих релизах использование функции exec() в биллинге. Чтобы без этой функции можно было нормально установить биллинг, настроить его и использовать (пусть даже без каких-то функций).
Все вышесказанное является ИМХО.
Спасибо.