function INSERT_DEB_PACKAGES() { if (system_is_overloaded(basename(__FILE__))) { system_admin_events("This system is too many overloaded, die()", __FUNCTION__, __FILE__, __LINE__, "system-update"); die; } $sock = new sockets(); $EnableSystemUpdates = $sock->GET_INFO("EnableSystemUpdates"); if (!is_numeric($EnableSystemUpdates)) { $EnableSystemUpdates = 0; } if ($EnableSystemUpdates == 0) { return; } if (!is_file("/usr/bin/dpkg")) { die; } $sql = "TRUNCATE TABLE `debian_packages`"; $q = new mysql(); $q->QUERY_SQL($sql, "artica_backup"); $unix = new unix(); $tmpf = $unix->FILE_TEMP(); shell_exec("/usr/bin/dpkg -l >{$tmpf} 2>&1"); $datas = @file_get_contents($tmpf); @unlink($tmpf); $tbl = explode("\n", $datas); $prefix = "INSERT IGNORE INTO debian_packages(package_status,package_name,package_version,package_info,package_description) VALUES "; while (list($num, $val) = each($tbl)) { if ($val == null) { continue; } $c++; if (preg_match("#^([a-z]+)\\s+(.+?)\\s+(.+?)\\s+(.+)#", $val, $re)) { $content = addslashes($re[4]); $pname = $re[2]; $package_description = addslashes(PACKAGE_EXTRA_INFO($pname)); $tr[] = "('{$re[1]}','{$pname}','{$re[3]}','{$content}','{$package_description}')"; if (count($tr) > 500) { $sql = $prefix . @implode(",", $tr); $tr = array(); $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo $q->mysql_error; } } } } if (count($tr) > 0) { $sql = $prefix . @implode(",", $tr); $tr = array(); $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo $q->mysql_error; } } }
function INSERT_DEB_PACKAGES() { if (!is_file("/usr/bin/dpkg")) { die; } $sql = "TRUNCATE TABLE `debian_packages`"; $q = new mysql(); $q->QUERY_SQL($sql, "artica_backup"); $unix = new unix(); $tmpf = $unix->FILE_TEMP(); shell_exec("/usr/bin/dpkg -l >{$tmpf} 2>&1"); $datas = @file_get_contents($tmpf); @unlink($tmpf); $tbl = explode("\n", $datas); while (list($num, $val) = each($tbl)) { if ($val == null) { continue; } if (preg_match("#^([a-z]+)\\s+(.+?)\\s+(.+?)\\s+(.+)#", $val, $re)) { $content = addslashes($re[4]); $pname = $re[2]; $package_description = addslashes(PACKAGE_EXTRA_INFO($pname)); $sql = "INSERT INTO debian_packages(package_status,package_name,package_version,package_info,package_description) \n \t\tVALUES('{$re[1]}','{$pname}','{$re[3]}','{$content}','{$package_description}');"; $q->QUERY_SQL($sql, "artica_backup"); } } }