|  | 
 
| Magento的数据库,用久了,很多log表会变的非常巨大,数据库体积也越来越大,这会严重影响到数据库的运行。 
 此脚本可以自动清空数据库log表。如果你的log表有用,可以按照实际情况修改此脚本。
 
 将文件上传至你的magento文件根目录,然后用如下地址执行清空命令:
 
 清空数据库log表:http://你网站的网址/clear-magento.php?clean=log
 
 清空magento缓存文件:http://你网站的网址/clear-magento.php?clean=var
 
 如果你的数据库log表比较大,那么使用如上命令清log可能会失败,或者用去很长时间,你可以手动清空,在脚本代码中的log表有:
 
 ‘dataflow_batch_export’,
 ‘dataflow_batch_import’,
 ‘log_customer’,
 ‘log_quote’,
 ‘log_summary’,
 ‘log_summary_type’,
 ‘log_url’,
 ‘log_url_info’,
 ‘log_visitor’,
 ‘log_visitor_info’,
 ‘log_visitor_online’,
 ‘index_event’,
 ‘report_event’,
 ‘report_compared_product_index’,
 ‘report_viewed_product_index’,
 ‘catalog_compare_item’,
 ‘catalogindex_aggregation’,
 ‘catalogindex_aggregation_tag’,
 ‘catalogindex_aggregation_to_tag’,
 ‘catalogsearch_query’,
 ‘catalogsearch_fulltext’,
 ‘catalogsearch_result’
 
 清空var缓存文件一般不会花费太多时间,缓存文件在脚本中路径分别为:
 
 ‘downloader/.cache/*’,
 ‘downloader/pearlib/cache/*’,
 ‘downloader/pearlib/download/*’,
 ‘var/cache/’,
 ‘var/locks/’,
 ‘var/log/’,
 ‘var/report/’,
 ‘var/session/’,
 ‘var/tmp/’
 
 你也可以手动去清除。
 
 脚本内容如下,请自己复制黏贴到 clear-magento.php 文件中:
 
 复制代码
<?php
$xml = simplexml_load_file('./app/etc/local.xml', NULL, LIBXML_NOCDATA);
 
$db['host'] = $xml->global->resources->default_setup->connection->host;
$db['name'] = $xml->global->resources->default_setup->connection->dbname;
$db['user'] = $xml->global->resources->default_setup->connection->username;
$db['pass'] = $xml->global->resources->default_setup->connection->password;
$db['pref'] = $xml->global->resources->db->table_prefix;
 
if($_GET['clean'] == 'log') clean_log_tables();
if($_GET['clean'] == 'var') clean_var_directory();
 
function clean_log_tables() {
    global $db;
 
    $tables = array(
        'dataflow_batch_export',
        'dataflow_batch_import',
        'log_customer',
        'log_quote',
        'log_summary',
        'log_summary_type',
        'log_url',
        'log_url_info',
        'log_visitor',
        'log_visitor_info',
        'log_visitor_online',
        'index_event',
        'report_event',
        'report_compared_product_index',
        'report_viewed_product_index',
        'catalog_compare_item',
        'catalogindex_aggregation',
        'catalogindex_aggregation_tag',
        'catalogindex_aggregation_to_tag',
        'catalogsearch_query',
        'catalogsearch_fulltext',
        'catalogsearch_result'
    );
 
    mysql_connect($db['host'], $db['user'], $db['pass']) or die(mysql_error());
    mysql_select_db($db['name']) or die(mysql_error());
 
    foreach($tables as $v => $k) {
        @mysql_query('TRUNCATE `'.$db['pref'].$k.'`');
        echo $db['pref'].$k.' cleared<br />';
    }
}
 
function clean_var_directory() {
    $dirs = array(
        'downloader/.cache/*',
        'downloader/pearlib/cache/*',
        'downloader/pearlib/download/*',
        'var/cache/',
        'var/locks/',
        'var/log/',
        'var/report/',
        'var/session/',
        'var/tmp/'
    );
 
    foreach($dirs as $v => $k) {
        exec('rm -rf '.$k);
        echo $k.' cleared<br />';
    }
}
 
 | 
 |