题
我需要清除所有Magento Cache并按照PHP脚本进行日志。
任何帮助我。
解决方案
创建一个名为clearup.php的文件,然后添加以下代码:
<?php
switch($_GET['clean']) {
case 'log':
clean_log_tables();
break;
case 'var':
clean_var_directory();
break;
}
function clean_log_tables() {
$xml = simplexml_load_file('./app/etc/local.xml', NULL, LIBXML_NOCDATA);
if(is_object($xml)) {
$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;
$tables = array(
'adminnotification_inbox',
'aw_core_logger',
'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_viewed_product_index',
'report_compared_product_index',
'catalog_compare_item',
'catalogindex_aggregation',
'catalogindex_aggregation_tag',
'catalogindex_aggregation_to_tag'
);
mysql_connect($db['host'], $db['user'], $db['pass']) or die(mysql_error());
mysql_select_db($db['name']) or die(mysql_error());
foreach($tables as $table) {
@mysql_query('TRUNCATE `'.$db['pref'].$table.'`');
}
} else {
exit('Unable to load local.xml file');
}
}
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 $dir) {
exec('rm -rf '.$dir);
}
}
将文件保存到Magento根目录。
运行以下URL进行日志清除
http://www.domain.com/cleanup.php?clean=log
运行以下URL以进行缓存清除
其他提示
您最好使用SSH终端或Cronjob从命令行中执行此操作
# rm -Rf /home/domain.com/www/var/cache/*
# rm -Rf /home/domain.com/www/var/log/*
这将比使用PHP更可靠
您可以从PHP调用以下内容。
Mage::app()->cleanCache();
对于干净的日志,shell脚本已经存在于通道通道/壳牌目录中:
php log.php Usage: php -f log.php -- [options] php -f log.php -- clean --days 1 clean Clean Logs --days Save log, days. (Minimum 1 day, if defined - ignoring system value) status Display statistics per log tables help This help
对于干净的缓存,以下方法将帮助您制作一个外壳脚本:
// Clean js and css Mage::getModel('core/design_package')->cleanMergedJsCss(); Mage::dispatchEvent('clean_media_cache_after'); // product image Mage::getModel('catalog/product_image')->clearCache(); Mage::dispatchEvent('clean_catalog_images_cache_after'); // Get cache types Mage::app()->getCacheInstance()->getTypes() // Clean specific tags Mage::app()->cleanCache($tags); // dispatch event if you flush all cache tags Mage::app()->cleanCache($alltags); Mage::dispatchEvent('adminhtml_cache_flush_system');
goto system->缓存管理 - >从管理面板或清除var/Cache目录中的齐平洋红色缓存。
我建议,首先,您尝试通过使用SQL来找到大多数行和大小的表格:
SELECT
TABLE_NAME AS "Table",
TABLE_ROWS AS "Rows #",
ROUND(
(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024,
2
) AS "Size (MB)"
FROM
information_schema.TABLES
WHERE information_schema.TABLES.TABLE_SCHEMA = 'database-name'
AND (
TABLE_NAME LIKE 'log_%'
OR TABLE_NAME LIKE 'report_%'
OR TABLE_NAME LIKE 'dataflow_%'
OR TABLE_NAME = 'catalog_compare_item'
)
ORDER BY TABLE_ROWS DESC
您可以在日志表上运行截断操作。
TRUNCATE dataflow_batch_export;
TRUNCATE dataflow_batch_import;
TRUNCATE log_customer;
TRUNCATE log_quote;
TRUNCATE log_summary;
TRUNCATE log_summary_type;
TRUNCATE log_url;
TRUNCATE log_url_info;
TRUNCATE log_visitor;
TRUNCATE log_visitor_info;
TRUNCATE log_visitor_online;
TRUNCATE report_viewed_product_index;
TRUNCATE report_compared_product_index;
TRUNCATE report_event;
TRUNCATE index_event;
TRUNCATE catalog_compare_item;
有关更多信息,请访问: https://blog.magepsycho.com/how-to-find-the-size-rows-of-magento-database-tables/