<?php //==================================================================================== // OCS INVENTORY REPORTS // Copyleft Erwan GOALOU 2010 (erwan(at)ocsinventory-ng(pt)org) // Web: www.ocsinventory-ng.org // // This code is open source and may be copied and modified as long as the source // code is always made freely available. // Please refer to the General Public Licence www.gnu.org/ or Licence.txt //==================================================================================== // Attention: this sсript was only tested with OCS v2.0 require('dbconfig.inc.php'); $_SESSION["SERVER_READ"] = SERVER_READ; $_SESSION["SERVER_WRITE"] = SERVER_WRITE; $_SESSION["COMPTE_BASE"] = COMPTE_BASE; $_SESSION["PSWD_BASE"] = PSWD_BASE; // Number of days since the last hardware update to consider for deletion. $delay = 40; dbconnect(); $res = mysql_query('SELECT ID FROM hardware where LASTDATE <= \'' . date('Y-m-d H:i:s', mktime() - $delay * 24 * 3600) . '\' ORDER BY LASTDATE'); if (mysql_num_rows($res) > 0) while ($row=mysql_fetch_array($res)) deleteDid($row['ID'], false, true); else echo "Nenhum registro foi apagado."."\n"; #function dbconnect($server,$compte_base,$pswd_base,$db = DB_NAME) { function dbconnect() { global $link; $db = DB_NAME; //$link is ok? $link=mysql_connect($_SESSION["SERVER_READ"],$_SESSION["COMPTE_BASE"],$_SESSION["PSWD_BASE"]); if(!is_resource($link)) { echo "Erro ao conectar ao MySql\n"; } //database is ok? if( ! mysql_select_db($db,$link)) { echo "Erro ao executar SELECT\n"; } //force UTF-8 mysql_query("SET NAMES 'utf8'"); //sql_mode => not strict mysql_query("SET sql_mode='NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"); return $link; } function mysql2_query_secure($sql,$link,$arg='',$log=false){ global $l,$lbl_log; if (is_array($arg)){ foreach ($arg as $key=>$value){ $arg_array_escape_string[]=mysql_real_escape_string($value); } $arg_escape_string=$arg_array_escape_string; }elseif ($arg != ''){ $arg_escape_string=mysql_real_escape_string($arg); } if (isset($arg_escape_string)){ if (is_array($arg_escape_string)){ $sql = vsprintf($sql,$arg_escape_string); }else $sql = sprintf($sql,$arg_escape_string); } $query = $sql; if ($log){ addLog( $log, $query,$lbl_log); } $result=mysql_query( $query ) or mysql_error($link); return $result; } /** * Deleting function * @param id Hardware identifier to be deleted * @param checkLock Tells wether or not the locking system must be used (default true) * @param traceDel Tells wether or not the deleted entities must be inserted in deleted_equiv for tracking purpose (default true) */ function deleteDid($id, $checkLock = true, $traceDel = true, $silent=false) { global $l; //If lock is not user OR it is used and available if( ! $checkLock || lock($id) ) { $sql="SELECT deviceid,name,IPADDR,OSNAME FROM hardware WHERE id='%s'"; $resId = mysql2_query_secure($sql,$_SESSION["SERVER_READ"],$id); $valId = mysql_fetch_array($resId); $idHard = $id; $did = $valId["deviceid"]; if( $did ) { //Deleting a network device if( strpos ( $did, "NETWORK_DEVICE-" ) === false ) { $sql="SELECT macaddr FROM networks WHERE hardware_id='%s'"; $resNetm = mysql2_query_secure($sql, $_SESSION["SERVER_READ"],$idHard); while( $valNetm = mysql_fetch_array($resNetm)) { $sql="DELETE FROM netmap WHERE mac='%s'"; mysql2_query_secure($sql, $_SESSION["SERVER_READ"],$valNetm["macaddr"]); } } //deleting a regular computer if( $did != "_SYSTEMGROUP_" and $did != '_DOWNLOADGROUP_') { $tables=Array("accesslog","accountinfo","bios","controllers","drives", "inputs","memories","modems","monitors","networks","ports","printers","registry", "slots","softwares","sounds","storages","videos","devices","download_history","download_servers","groups_cache"); } elseif($did == "_SYSTEMGROUP_"){//Deleting a group $tables=Array("devices"); //del messages on this group $sql_group_msg="DELETE FROM config WHERE name like '%s' and ivalue='%s'"; mysql2_query_secure($sql_group_msg, $_SESSION["SERVER_WRITE"],array('GUI_REPORT_MSG%',$idHard)); $sql_group="DELETE FROM groups WHERE hardware_id='%s'"; mysql2_query_secure($sql_group, $_SESSION["SERVER_WRITE"],$idHard); $sql_group_cache="DELETE FROM groups_cache WHERE group_id='%s'"; $resDelete = mysql2_query_secure($sql_group_cache, $_SESSION["SERVER_WRITE"],$idHard); $affectedComputers = mysql_affected_rows(); } if( !$silent ) echo "apagando registro ".$valId["name"]."\n"; foreach ($tables as $table) { $sql="DELETE FROM %s WHERE hardware_id='%s'"; $arg=array($table,$idHard); mysql2_query_secure($sql, $_SESSION["SERVER_WRITE"],$arg); } $sql="delete from download_enable where SERVER_ID='%s'"; mysql2_query_secure($sql, $_SESSION["SERVER_WRITE"],$idHard); $sql="DELETE FROM hardware WHERE id='%s'"; mysql2_query_secure($sql, $_SESSION["SERVER_WRITE"],$idHard); //Deleted computers tracking if($traceDel && mysql_num_rows(mysql2_query_secure("SELECT IVALUE FROM config WHERE IVALUE>0 AND NAME='TRACE_DELETED'", $_SESSION["SERVER_READ"]))){ $sql="insert into deleted_equiv(DELETED,EQUIVALENT) values('%s',%s)"; $arg=array($did,'NULL'); mysql2_query_secure($sql, $_SESSION["SERVER_WRITE"],$arg); } } //Using lock ? Unlock if( $checkLock ) unlock($id); return $valId["name"]; } else errlock(); } ?>
скопировать в /usr/share/ocsinventory-reports/ocsreports
Запускать так:
php -f delete_old_v2.0.php
скопировать в /usr/share/ocsinventory-reports/ocsreports
Запускать так:
php -f delete_old_v2.0.php
Хотел бы поделиться с вами своим значимым опытом поиска качественного автосервиса в Оренбурге. После долгих поисков, я наконец нашел то место, которым действительно остался доволен — AutoLife.
Что мне особенно понравилось в AutoLife, так это индивидуальный подход каждого специалиста этого сервиса. Мастера не только с высокой точностью решили проблему с моим автомобилем, но и предоставили важные указания по его дальнейшему обслуживанию.
Мне кажется важным поделиться этой информацией с вами, так как знаю, насколько непросто порой найти действительно надежный сервис. Если вы ищете качественный автосервис в Оренбурге, рекомендую обратить внимание на AutoLife56, расположенный по адресу: г. Оренбург, ул. Берёзка, 20, корп. 2. Они работают с 10 утра до 8 вечера, каждый день, и более подробную информацию вы можете найти на их сайте: https://autolife56.ru/.
Надеюсь, мой опыт окажется важным для кого-то из вас. Буду рад слышать ваше мнение, если решите воспользоваться услугами АвтоЛайф 56.
Ремонт системы охлаждения
Дополнения по теме
Вашему вниманию рекомендуем надёжный автосервис в Оренбурге - АвтоЛайф Опыт использования качественного автосервиса в Оренбурге завершился успехом: АвтоЛайф Узнайте больше о сервисе AutoLife56: почему стоит выбрать нас в ремонте автомобилях в Оренбурге Не минуйте: сервис AutoLife56 — ваш надежный партнер в мире авторемонта в Оренбурге Выбор лучшего автосервиса в Оренбурге завершился успехом: автосервис AutoLife 348202c
eroscenu.ru/?page=8645
eroscenu.ru/?page=22317
eroscenu.ru/?page=10148
eroscenu.ru/?page=3616
eroscenu.ru/?page=39756
eroscenu.ru/?page=13084
eroscenu.ru/?page=48605
eroscenu.ru/?page=11722
eroscenu.ru/?page=23024
eroscenu.ru/?page=11228
eroscenu.ru/?page=38918
eroscenu.ru/?page=14150
eroscenu.ru/?page=3853
eroscenu.ru/?page=30865
eroscenu.ru/?page=24662
eroscenu.ru/?page=31191
eroscenu.ru/?page=33354
eroscenu.ru/?page=13274
eroscenu.ru/?page=28373
eroscenu.ru/?page=43781
образовательные ссылки популярные ссылки финансовые ссылки ссылки спортивные ссылки нужные ссылки эксклюзивные ссылки культурные ссылки образовательные ссылки социальные ссылки b62c61f