mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-05 17:51:40 +09:00
Move all CLI scripts except common.cron to the "scripts" directory under the corresponding module
This commit is contained in:
parent
792ea89e64
commit
9ca2f79dce
14 changed files with 490 additions and 394 deletions
|
|
@ -1,58 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This script deletes empty directories under the 'files' directory.
|
* This script is @deprecated.
|
||||||
*
|
* Please invoke: php index.php file.cleanEmptyDirs
|
||||||
* It may be useful when your web host imposes a hard limit on the number of
|
|
||||||
* inodes, or when your backups take too long due to the large number of
|
|
||||||
* unused directories.
|
|
||||||
*
|
|
||||||
* This script only works on Unix-like operating systems where the 'find'
|
|
||||||
* command is available.
|
|
||||||
*/
|
*/
|
||||||
require_once __DIR__ . '/common.php';
|
require_once __DIR__ . '/common.php';
|
||||||
|
require_once RX_BASEDIR . 'modules/file/scripts/cleanEmptyDirs.php';
|
||||||
// Initialize the exit status.
|
|
||||||
$exit_status = 0;
|
|
||||||
|
|
||||||
// Delete empty directories in the attachment directory.
|
|
||||||
passthru(sprintf('find %s -type d -empty -delete', escapeshellarg(RX_BASEDIR . 'files/attach')), $result);
|
|
||||||
if ($result == 0)
|
|
||||||
{
|
|
||||||
echo "Successfully deleted all empty directories under files/attach.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Error while deleting empty directories under files/attach.\n";
|
|
||||||
$exit_status = $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete empty directories in the member extra info directory.
|
|
||||||
passthru(sprintf('find %s -type d -empty -delete', escapeshellarg(RX_BASEDIR . 'files/member_extra_info')), $result);
|
|
||||||
if ($result == 0)
|
|
||||||
{
|
|
||||||
echo "Successfully deleted all empty directories under files/member_extra_info.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Error while deleting empty directories under files/member_extra_info.\n";
|
|
||||||
$exit_status = $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete empty directories in the thumbnails directory.
|
|
||||||
passthru(sprintf('find %s -type d -empty -delete', escapeshellarg(RX_BASEDIR . 'files/thumbnails')), $result);
|
|
||||||
if ($result == 0)
|
|
||||||
{
|
|
||||||
echo "Successfully deleted all empty directories under files/thumbnails.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Error while deleting empty directories under files/thumbnails.\n";
|
|
||||||
$exit_status = $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the exit status if there were any errors.
|
|
||||||
if ($exit_status != 0)
|
|
||||||
{
|
|
||||||
exit($exit_status);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,98 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This script deletes files that were not properly uploaded.
|
* This script is @deprecated.
|
||||||
*
|
* Please invoke: php index.php file.cleanGarbageFiles
|
||||||
* Files can remain in an invalid status for two reasons: 1) a user abandons
|
|
||||||
* a document or comment after uploading files; or 2) a chunked upload is
|
|
||||||
* aborted without the server having any opportunity to clean it up.
|
|
||||||
* These files can obviously take up a lot of disk space. In order to prevent
|
|
||||||
* them from accumulating too much, you should run this script at least once
|
|
||||||
* every few days.
|
|
||||||
*/
|
*/
|
||||||
require_once __DIR__ . '/common.php';
|
require_once __DIR__ . '/common.php';
|
||||||
|
require_once RX_BASEDIR . 'modules/file/scripts/cleanGarbageFiles.php';
|
||||||
// Delete garbage files older than this number of days.
|
|
||||||
$days = 10;
|
|
||||||
|
|
||||||
// Initialize the exit status.
|
|
||||||
$exit_status = 0;
|
|
||||||
|
|
||||||
// Initialize objects.
|
|
||||||
$oDB = DB::getInstance();
|
|
||||||
$oFileController = getController('file');
|
|
||||||
|
|
||||||
// Find and delete files where isvalid = N.
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->isvalid = 'N';
|
|
||||||
$args->list_count = 50;
|
|
||||||
$args->regdate_before = date('YmdHis', time() - ($days * 86400));
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
$output = executeQueryArray('file.getFileList', $args);
|
|
||||||
if ($output->toBool())
|
|
||||||
{
|
|
||||||
if ($output->data)
|
|
||||||
{
|
|
||||||
$oDB->begin();
|
|
||||||
foreach ($output->data as $file_info)
|
|
||||||
{
|
|
||||||
$oFileController->deleteFile($file_info->file_srl);
|
|
||||||
}
|
|
||||||
$oDB->commit();
|
|
||||||
|
|
||||||
if ($output->page_navigation && $output->page_navigation->total_count == count($output->data))
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Error while deleting garbage files older than $days days.\n";
|
|
||||||
echo $output->getMessage() . "\n";
|
|
||||||
$exit_status = 11;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($exit_status == 0)
|
|
||||||
{
|
|
||||||
echo "Successfully deleted all garbage files older than $days days.\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Find and delete temporary chunks.
|
|
||||||
$dirname = RX_BASEDIR . 'files/attach/chunks';
|
|
||||||
$threshold = time() - ($days * 86400);
|
|
||||||
$chunks = Rhymix\Framework\Storage::readDirectory($dirname);
|
|
||||||
if ($chunks)
|
|
||||||
{
|
|
||||||
foreach ($chunks as $chunk)
|
|
||||||
{
|
|
||||||
if (@filemtime($chunk) < $threshold)
|
|
||||||
{
|
|
||||||
$result = Rhymix\Framework\Storage::delete($chunk);
|
|
||||||
if (!$result)
|
|
||||||
{
|
|
||||||
$exit_status = 12;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($exit_status == 0)
|
|
||||||
{
|
|
||||||
echo "Successfully deleted aborted file chunks older than $days days.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Error while deleting aborted file chunks older than $days days.\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the exit status if there were any errors.
|
|
||||||
if ($exit_status != 0)
|
|
||||||
{
|
|
||||||
exit($exit_status);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,63 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This script deletes old message attachments.
|
* This script is @deprecated.
|
||||||
*
|
* Please invoke: php index.php communication.cleanMessageFiles
|
||||||
* Files attached to member messages are not viewable by other users, but they
|
|
||||||
* take up space on the server. You may want to delete them after a certain
|
|
||||||
* number of days in order to prevent users from using messages as a sort of
|
|
||||||
* private storage space.
|
|
||||||
*/
|
*/
|
||||||
require_once __DIR__ . '/common.php';
|
require_once __DIR__ . '/common.php';
|
||||||
|
require_once RX_BASEDIR . 'modules/communication/scripts/cleanMessageFiles.php';
|
||||||
// Delete attachments older than this number of days.
|
|
||||||
$days = 30;
|
|
||||||
|
|
||||||
// Initialize the exit status.
|
|
||||||
$exit_status = 0;
|
|
||||||
|
|
||||||
// Initialize objects.
|
|
||||||
$oDB = DB::getInstance();
|
|
||||||
$oFileController = getController('file');
|
|
||||||
|
|
||||||
// Find and delete files where upload_target_type = msg.
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->upload_target_type = 'msg';
|
|
||||||
$args->list_count = 50;
|
|
||||||
$args->regdate_before = date('YmdHis', time() - ($days * 86400));
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
$output = executeQueryArray('file.getFileList', $args);
|
|
||||||
if ($output->toBool())
|
|
||||||
{
|
|
||||||
if ($output->data)
|
|
||||||
{
|
|
||||||
$oDB->begin();
|
|
||||||
foreach ($output->data as $file_info)
|
|
||||||
{
|
|
||||||
$oFileController->deleteFile($file_info->file_srl);
|
|
||||||
}
|
|
||||||
$oDB->commit();
|
|
||||||
|
|
||||||
if ($output->page_navigation && $output->page_navigation->total_count == count($output->data))
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Error while deleting message attachments older than $days days.\n";
|
|
||||||
echo $output->getMessage() . "\n";
|
|
||||||
$exit_status = 11;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($exit_status == 0)
|
|
||||||
{
|
|
||||||
echo "Successfully deleted all message attachments older than $days days.\n";
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,66 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This script deletes old logs from the database.
|
* This script is @deprecated.
|
||||||
*
|
* Please invoke: php index.php module.cleanMiscLogs
|
||||||
* Rhymix produces various logs that can increase the size of the database
|
|
||||||
* unnecessarily if not cleaned. This script removes old logs.
|
|
||||||
*/
|
*/
|
||||||
require_once __DIR__ . '/common.php';
|
require_once __DIR__ . '/common.php';
|
||||||
|
require_once RX_BASEDIR . 'modules/module/scripts/cleanMiscLogs.php';
|
||||||
// Delete logs older than this number of days.
|
|
||||||
$days = 30;
|
|
||||||
|
|
||||||
// Initialize the exit status.
|
|
||||||
$exit_status = 0;
|
|
||||||
|
|
||||||
// Delete advanced mailer mail logs.
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->regdate = date('YmdHis', time() - ($days * 86400));
|
|
||||||
$output = executeQuery('advanced_mailer.deleteMailLogs', $args);
|
|
||||||
if ($output->toBool())
|
|
||||||
{
|
|
||||||
echo "Successfully deleted all mail logs older than $days days.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Error while deleting mail logs older than $days days.\n";
|
|
||||||
echo $output->getMessage() . "\n";
|
|
||||||
$exit_status = 11;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete advanced mailer SMS logs.
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->regdate = date('YmdHis', time() - ($days * 86400));
|
|
||||||
$output = executeQuery('advanced_mailer.deleteSMSLogs', $args);
|
|
||||||
if ($output->toBool())
|
|
||||||
{
|
|
||||||
echo "Successfully deleted all SMS logs older than $days days.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Error while deleting SMS logs older than $days days.\n";
|
|
||||||
echo $output->getMessage() . "\n";
|
|
||||||
$exit_status = 12;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete spamfilter logs.
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->regdate = date('YmdHis', time() - ($days * 86400));
|
|
||||||
$output = executeQuery('spamfilter.deleteLog', $args);
|
|
||||||
if ($output->toBool())
|
|
||||||
{
|
|
||||||
echo "Successfully deleted all spamfilter logs older than $days days.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Error while deleting spamfilter logs older than $days days.\n";
|
|
||||||
echo $output->getMessage() . "\n";
|
|
||||||
$exit_status = 12;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the exit status if there were any errors.
|
|
||||||
if ($exit_status != 0)
|
|
||||||
{
|
|
||||||
exit($exit_status);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,40 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This script deletes old notifications.
|
* This script is @deprecated.
|
||||||
*
|
* Please invoke: php index.php ncenterlite.cleanNotifications
|
||||||
* Notifications must be dismissed as quickly as possible in order to prevent
|
|
||||||
* the ncenterlite_notify table from becoming too large. For best performance,
|
|
||||||
* you should run this script at least once every few days.
|
|
||||||
*/
|
*/
|
||||||
require_once __DIR__ . '/common.php';
|
require_once __DIR__ . '/common.php';
|
||||||
|
require_once RX_BASEDIR . 'modules/ncenterlite/scripts/cleanNotifications.php';
|
||||||
// Delete notifications older than this number of days.
|
|
||||||
$days = 30;
|
|
||||||
|
|
||||||
// Initialize the exit status.
|
|
||||||
$exit_status = 0;
|
|
||||||
|
|
||||||
// Execute the query.
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->old_date = date('YmdHis', time() - ($days * 86400));
|
|
||||||
$output = executeQuery('ncenterlite.deleteNotifyAll', $args);
|
|
||||||
if ($output->toBool())
|
|
||||||
{
|
|
||||||
echo "Successfully deleted all notifications older than $days days.\n";
|
|
||||||
$delete_obj = (object)array('regdate' => time());
|
|
||||||
Rhymix\Framework\Cache::clearGroup('ncenterlite');
|
|
||||||
Rhymix\Framework\Storage::writePHPData(\RX_BASEDIR . 'files/cache/ncenterlite/new_notify/delete_date.php', $delete_obj);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Error while deleting notifications older than $days days.\n";
|
|
||||||
echo $output->getMessage() . "\n";
|
|
||||||
$exit_status = 11;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the exit status if there were any errors.
|
|
||||||
if ($exit_status != 0)
|
|
||||||
{
|
|
||||||
exit($exit_status);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,41 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This script deletes old thumbnails.
|
* This script is @deprecated.
|
||||||
*
|
* Please invoke: php index.php file.cleanThumbnails
|
||||||
* Thumbnails can take up a large amount of disk space and inodes if they are
|
|
||||||
* allowed to accumulate. Since most websites only need thumbnails for recent
|
|
||||||
* posts, it is okay to delete old thumbnails.
|
|
||||||
*
|
|
||||||
* Do not run this script if you have a gallery-style module where visitors
|
|
||||||
* regularly view old posts. This will force thumbnails to be regenerated,
|
|
||||||
* increasing the server load and making your pages load slower.
|
|
||||||
*
|
|
||||||
* This script only works on Unix-like operating systems where the 'find'
|
|
||||||
* command is available.
|
|
||||||
*/
|
*/
|
||||||
require_once __DIR__ . '/common.php';
|
require_once __DIR__ . '/common.php';
|
||||||
|
require_once RX_BASEDIR . 'modules/file/scripts/cleanThumbnails.php';
|
||||||
// Delete thumbnails older than this number of days.
|
|
||||||
$days = 90;
|
|
||||||
|
|
||||||
// Initialize the exit status.
|
|
||||||
$exit_status = 0;
|
|
||||||
|
|
||||||
// Delete old thumbnails.
|
|
||||||
passthru(sprintf('find %s -type f -mtime +%d -delete', escapeshellarg(RX_BASEDIR . 'files/thumbnails'), abs($days)), $result);
|
|
||||||
if ($result == 0)
|
|
||||||
{
|
|
||||||
echo "Successfully deleted all thumbnails older than $days days.\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Error while deleting thumbnails older than $days days.\n";
|
|
||||||
$exit_status = $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the exit status if there were any errors.
|
|
||||||
if ($exit_status != 0)
|
|
||||||
{
|
|
||||||
exit($exit_status);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,63 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This script updates all modules.
|
* This script is @deprecated.
|
||||||
*
|
* Please invoke: php index.php module.updateAllModules
|
||||||
* Running this script on the CLI is better than clicking 'update' in the
|
|
||||||
* admin dashboard because some module updates may take a long time.
|
|
||||||
*/
|
*/
|
||||||
require_once __DIR__ . '/common.php';
|
require_once __DIR__ . '/common.php';
|
||||||
|
require_once RX_BASEDIR . 'modules/module/scripts/updateAllModules.php';
|
||||||
Context::init();
|
|
||||||
$oModuleModel = getModel('module');
|
|
||||||
|
|
||||||
// Get the list of modules that need to be updated.
|
|
||||||
$module_list = $oModuleModel->getModuleList();
|
|
||||||
$need_install = array();
|
|
||||||
$need_update = array();
|
|
||||||
foreach($module_list as $key => $value)
|
|
||||||
{
|
|
||||||
if($value->need_install)
|
|
||||||
{
|
|
||||||
$need_install[] = $value->module;
|
|
||||||
}
|
|
||||||
if($value->need_update)
|
|
||||||
{
|
|
||||||
$need_update[] = $value->module;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Install all modules.
|
|
||||||
$oInstallController = InstallController::getInstance();
|
|
||||||
foreach ($need_install as $module)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
echo 'Installing ' . $module . '...' . PHP_EOL;
|
|
||||||
$oInstallController->installModule($module, './modules/' . $module);
|
|
||||||
}
|
|
||||||
catch (\Exception $e)
|
|
||||||
{
|
|
||||||
echo 'Error: ' . $e->getMessage() . PHP_EOL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update all modules.
|
|
||||||
foreach ($need_update as $module)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
echo 'Updating ' . $module . '...' . PHP_EOL;
|
|
||||||
$oInstallController->updateModule($module);
|
|
||||||
}
|
|
||||||
catch (\Exception $e)
|
|
||||||
{
|
|
||||||
echo 'Error: ' . $e->getMessage() . PHP_EOL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the exit status if there were any errors.
|
|
||||||
if ($exit_status != 0)
|
|
||||||
{
|
|
||||||
exit($exit_status);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
67
modules/communication/scripts/cleanMessageFiles.php
Normal file
67
modules/communication/scripts/cleanMessageFiles.php
Normal file
|
|
@ -0,0 +1,67 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This script deletes old message attachments.
|
||||||
|
*
|
||||||
|
* Files attached to member messages are not viewable by other users, but they
|
||||||
|
* take up space on the server. You may want to delete them after a certain
|
||||||
|
* number of days in order to prevent users from using messages as a sort of
|
||||||
|
* private storage space.
|
||||||
|
*/
|
||||||
|
if (!defined('RX_VERSION'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the exit status.
|
||||||
|
$exit_status = 0;
|
||||||
|
|
||||||
|
// Delete attachments older than this number of days.
|
||||||
|
$days = intval($args[0] ?? 0) ?: 30;
|
||||||
|
|
||||||
|
// Initialize objects.
|
||||||
|
$oDB = DB::getInstance();
|
||||||
|
$oFileController = FileController::getInstance();
|
||||||
|
|
||||||
|
// Find and delete files where upload_target_type = msg.
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
$output = executeQueryArray('file.getFileList', [
|
||||||
|
'upload_target_type' => 'msg',
|
||||||
|
'list_count' => 50,
|
||||||
|
'regdate_before' => date('YmdHis', time() - ($days * 86400)),
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($output->toBool())
|
||||||
|
{
|
||||||
|
if ($output->data)
|
||||||
|
{
|
||||||
|
$oDB->begin();
|
||||||
|
foreach ($output->data as $file_info)
|
||||||
|
{
|
||||||
|
$oFileController->deleteFile($file_info->file_srl);
|
||||||
|
}
|
||||||
|
$oDB->commit();
|
||||||
|
|
||||||
|
if ($output->page_navigation && $output->page_navigation->total_count == count($output->data))
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting message attachments older than $days days.\n";
|
||||||
|
echo $output->getMessage() . "\n";
|
||||||
|
$exit_status = 11;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($exit_status == 0)
|
||||||
|
{
|
||||||
|
echo "Successfully deleted all message attachments older than $days days.\n";
|
||||||
|
}
|
||||||
61
modules/file/scripts/cleanEmptyDirs.php
Normal file
61
modules/file/scripts/cleanEmptyDirs.php
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This script deletes empty directories under the 'files' directory.
|
||||||
|
*
|
||||||
|
* It may be useful when your web host imposes a hard limit on the number of
|
||||||
|
* inodes, or when your backups take too long due to the large number of
|
||||||
|
* unused directories.
|
||||||
|
*
|
||||||
|
* This script only works on Unix-like operating systems where the 'find'
|
||||||
|
* command is available.
|
||||||
|
*/
|
||||||
|
if (!defined('RX_VERSION'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the exit status.
|
||||||
|
$exit_status = 0;
|
||||||
|
|
||||||
|
// Delete empty directories in the attachment directory.
|
||||||
|
passthru(sprintf('find %s -type d -empty -delete', escapeshellarg(RX_BASEDIR . 'files/attach')), $result);
|
||||||
|
if ($result == 0)
|
||||||
|
{
|
||||||
|
echo "Successfully deleted all empty directories under files/attach.\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting empty directories under files/attach.\n";
|
||||||
|
$exit_status = $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete empty directories in the member extra info directory.
|
||||||
|
passthru(sprintf('find %s -type d -empty -delete', escapeshellarg(RX_BASEDIR . 'files/member_extra_info')), $result);
|
||||||
|
if ($result == 0)
|
||||||
|
{
|
||||||
|
echo "Successfully deleted all empty directories under files/member_extra_info.\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting empty directories under files/member_extra_info.\n";
|
||||||
|
$exit_status = $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete empty directories in the thumbnails directory.
|
||||||
|
passthru(sprintf('find %s -type d -empty -delete', escapeshellarg(RX_BASEDIR . 'files/thumbnails')), $result);
|
||||||
|
if ($result == 0)
|
||||||
|
{
|
||||||
|
echo "Successfully deleted all empty directories under files/thumbnails.\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting empty directories under files/thumbnails.\n";
|
||||||
|
$exit_status = $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the exit status if there were any errors.
|
||||||
|
if ($exit_status != 0)
|
||||||
|
{
|
||||||
|
exit($exit_status);
|
||||||
|
}
|
||||||
102
modules/file/scripts/cleanGarbageFiles.php
Normal file
102
modules/file/scripts/cleanGarbageFiles.php
Normal file
|
|
@ -0,0 +1,102 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This script deletes files that were not properly uploaded.
|
||||||
|
*
|
||||||
|
* Files can remain in an invalid status for two reasons: 1) a user abandons
|
||||||
|
* a document or comment after uploading files; or 2) a chunked upload is
|
||||||
|
* aborted without the server having any opportunity to clean it up.
|
||||||
|
* These files can obviously take up a lot of disk space. In order to prevent
|
||||||
|
* them from accumulating too much, you should run this script at least once
|
||||||
|
* every few days.
|
||||||
|
*/
|
||||||
|
if (!defined('RX_VERSION'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the exit status.
|
||||||
|
$exit_status = 0;
|
||||||
|
|
||||||
|
// Delete garbage files older than this number of days.
|
||||||
|
$days = intval($args[0] ?? 0) ?: 10;
|
||||||
|
|
||||||
|
// Initialize objects.
|
||||||
|
$oDB = DB::getInstance();
|
||||||
|
$oFileController = FileController::getInstance();
|
||||||
|
|
||||||
|
// Find and delete files where isvalid = N.
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
$output = executeQueryArray('file.getFileList', [
|
||||||
|
'isvalid' => 'N',
|
||||||
|
'list_count' => 50,
|
||||||
|
'regdate_before' => date('YmdHis', time() - ($days * 86400)),
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($output->toBool())
|
||||||
|
{
|
||||||
|
if ($output->data)
|
||||||
|
{
|
||||||
|
$oDB->begin();
|
||||||
|
foreach ($output->data as $file_info)
|
||||||
|
{
|
||||||
|
$oFileController->deleteFile($file_info->file_srl);
|
||||||
|
}
|
||||||
|
$oDB->commit();
|
||||||
|
|
||||||
|
if ($output->page_navigation && $output->page_navigation->total_count == count($output->data))
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting garbage files older than $days days.\n";
|
||||||
|
echo $output->getMessage() . "\n";
|
||||||
|
$exit_status = 11;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($exit_status == 0)
|
||||||
|
{
|
||||||
|
echo "Successfully deleted all garbage files older than $days days.\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find and delete temporary chunks.
|
||||||
|
$dirname = RX_BASEDIR . 'files/attach/chunks';
|
||||||
|
$threshold = time() - ($days * 86400);
|
||||||
|
$chunks = Rhymix\Framework\Storage::readDirectory($dirname);
|
||||||
|
if ($chunks)
|
||||||
|
{
|
||||||
|
foreach ($chunks as $chunk)
|
||||||
|
{
|
||||||
|
if (@filemtime($chunk) < $threshold)
|
||||||
|
{
|
||||||
|
$result = Rhymix\Framework\Storage::delete($chunk);
|
||||||
|
if (!$result)
|
||||||
|
{
|
||||||
|
$exit_status = 12;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($exit_status == 0)
|
||||||
|
{
|
||||||
|
echo "Successfully deleted temporary file chunks older than $days days.\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting temporary file chunks older than $days days.\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the exit status if there were any errors.
|
||||||
|
if ($exit_status != 0)
|
||||||
|
{
|
||||||
|
exit($exit_status);
|
||||||
|
}
|
||||||
44
modules/file/scripts/cleanThumbnails.php
Normal file
44
modules/file/scripts/cleanThumbnails.php
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This script deletes old thumbnails.
|
||||||
|
*
|
||||||
|
* Thumbnails can take up a large amount of disk space and inodes if they are
|
||||||
|
* allowed to accumulate. Since most websites only need thumbnails for recent
|
||||||
|
* posts, it is okay to delete old thumbnails.
|
||||||
|
*
|
||||||
|
* Do not run this script if you have a gallery-style module where visitors
|
||||||
|
* regularly view old posts. This will force thumbnails to be regenerated,
|
||||||
|
* increasing the server load and making your pages load slower.
|
||||||
|
*
|
||||||
|
* This script only works on Unix-like operating systems where the 'find'
|
||||||
|
* command is available.
|
||||||
|
*/
|
||||||
|
if (!defined('RX_VERSION'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the exit status.
|
||||||
|
$exit_status = 0;
|
||||||
|
|
||||||
|
// Delete thumbnails older than this number of days.
|
||||||
|
$days = intval($args[0] ?? 0) ?: 90;
|
||||||
|
|
||||||
|
// Delete old thumbnails.
|
||||||
|
passthru(sprintf('find %s -type f -mtime +%d -delete', escapeshellarg(RX_BASEDIR . 'files/thumbnails'), abs($days)), $result);
|
||||||
|
if ($result == 0)
|
||||||
|
{
|
||||||
|
echo "Successfully deleted thumbnails older than $days days.\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting thumbnails older than $days days.\n";
|
||||||
|
$exit_status = $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the exit status if there were any errors.
|
||||||
|
if ($exit_status != 0)
|
||||||
|
{
|
||||||
|
exit($exit_status);
|
||||||
|
}
|
||||||
84
modules/module/scripts/cleanMiscLogs.php
Normal file
84
modules/module/scripts/cleanMiscLogs.php
Normal file
|
|
@ -0,0 +1,84 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This script deletes old logs from the database.
|
||||||
|
*
|
||||||
|
* Rhymix produces various logs that can increase the size of the database
|
||||||
|
* unnecessarily if not cleaned. This script removes old logs.
|
||||||
|
*/
|
||||||
|
if (!defined('RX_VERSION'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the exit status.
|
||||||
|
$exit_status = 0;
|
||||||
|
|
||||||
|
// Delete logs older than this number of days.
|
||||||
|
$days = intval($args[0] ?? 0) ?: 30;
|
||||||
|
|
||||||
|
// Delete advanced mailer email logs.
|
||||||
|
$output = executeQuery('advanced_mailer.deleteMailLogs', [
|
||||||
|
'regdate' => date('YmdHis', time() - ($days * 86400)),
|
||||||
|
]);
|
||||||
|
if ($output->toBool())
|
||||||
|
{
|
||||||
|
echo "Successfully deleted all email logs older than $days days.\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting email logs older than $days days.\n";
|
||||||
|
echo $output->getMessage() . "\n";
|
||||||
|
$exit_status = 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete advanced mailer SMS logs.
|
||||||
|
$output = executeQuery('advanced_mailer.deleteSMSLogs', [
|
||||||
|
'regdate' => date('YmdHis', time() - ($days * 86400)),
|
||||||
|
]);
|
||||||
|
if ($output->toBool())
|
||||||
|
{
|
||||||
|
echo "Successfully deleted all SMS logs older than $days days.\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting SMS logs older than $days days.\n";
|
||||||
|
echo $output->getMessage() . "\n";
|
||||||
|
$exit_status = 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete advanced mailer Push logs.
|
||||||
|
$output = executeQuery('advanced_mailer.deletePushLogs', [
|
||||||
|
'regdate' => date('YmdHis', time() - ($days * 86400)),
|
||||||
|
]);
|
||||||
|
if ($output->toBool())
|
||||||
|
{
|
||||||
|
echo "Successfully deleted all Push logs older than $days days.\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting Push logs older than $days days.\n";
|
||||||
|
echo $output->getMessage() . "\n";
|
||||||
|
$exit_status = 13;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete spamfilter logs.
|
||||||
|
$output = executeQuery('spamfilter.deleteLog', [
|
||||||
|
'regdate' => date('YmdHis', time() - ($days * 86400)),
|
||||||
|
]);
|
||||||
|
if ($output->toBool())
|
||||||
|
{
|
||||||
|
echo "Successfully deleted all spamfilter logs older than $days days.\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting spamfilter logs older than $days days.\n";
|
||||||
|
echo $output->getMessage() . "\n";
|
||||||
|
$exit_status = 21;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the exit status if there were any errors.
|
||||||
|
if ($exit_status != 0)
|
||||||
|
{
|
||||||
|
exit($exit_status);
|
||||||
|
}
|
||||||
67
modules/module/scripts/updateAllModules.php
Normal file
67
modules/module/scripts/updateAllModules.php
Normal file
|
|
@ -0,0 +1,67 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This script updates all modules.
|
||||||
|
*
|
||||||
|
* When upgrading from a very old version, it is safer to run this script
|
||||||
|
* on the CLI than clicking 'update' in the admin dashboard.
|
||||||
|
* This is because some module updates may take a long time.
|
||||||
|
*
|
||||||
|
* Note that if you use APC cache, you may need to reset the cache
|
||||||
|
* in the admin dashboard after running this script.
|
||||||
|
*/
|
||||||
|
if (!defined('RX_VERSION'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the list of modules that need to be updated.
|
||||||
|
$module_list = ModuleModel::getModuleList();
|
||||||
|
$need_install = array();
|
||||||
|
$need_update = array();
|
||||||
|
foreach ($module_list as $key => $value)
|
||||||
|
{
|
||||||
|
if ($value->need_install)
|
||||||
|
{
|
||||||
|
$need_install[] = $value->module;
|
||||||
|
}
|
||||||
|
if ($value->need_update)
|
||||||
|
{
|
||||||
|
$need_update[] = $value->module;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Install all modules.
|
||||||
|
$oInstallController = InstallController::getInstance();
|
||||||
|
foreach ($need_install as $module)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
echo 'Installing ' . $module . '...' . PHP_EOL;
|
||||||
|
$oInstallController->installModule($module, './modules/' . $module);
|
||||||
|
}
|
||||||
|
catch (\Exception $e)
|
||||||
|
{
|
||||||
|
echo 'Error: ' . $e->getMessage() . PHP_EOL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update all modules.
|
||||||
|
foreach ($need_update as $module)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
echo 'Updating ' . $module . '...' . PHP_EOL;
|
||||||
|
$oInstallController->updateModule($module);
|
||||||
|
}
|
||||||
|
catch (\Exception $e)
|
||||||
|
{
|
||||||
|
echo 'Error: ' . $e->getMessage() . PHP_EOL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the exit status if there were any errors.
|
||||||
|
if ($exit_status != 0)
|
||||||
|
{
|
||||||
|
exit($exit_status);
|
||||||
|
}
|
||||||
44
modules/ncenterlite/scripts/cleanNotifications.php
Normal file
44
modules/ncenterlite/scripts/cleanNotifications.php
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This script deletes old notifications.
|
||||||
|
*
|
||||||
|
* Notifications must be dismissed as quickly as possible in order to prevent
|
||||||
|
* the ncenterlite_notify table from becoming too large. For best performance,
|
||||||
|
* you should run this script at least once every few days.
|
||||||
|
*/
|
||||||
|
if (!defined('RX_VERSION'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the exit status.
|
||||||
|
$exit_status = 0;
|
||||||
|
|
||||||
|
// Delete notifications older than this number of days.
|
||||||
|
$days = intval($args[0] ?? 0) ?: 30;
|
||||||
|
|
||||||
|
// Execute the query.
|
||||||
|
$output = executeQuery('ncenterlite.deleteNotifyAll', [
|
||||||
|
'old_date' => date('YmdHis', time() - ($days * 86400)),
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($output->toBool())
|
||||||
|
{
|
||||||
|
echo "Successfully deleted all notifications older than $days days.\n";
|
||||||
|
$delete_obj = (object)array('regdate' => time());
|
||||||
|
Rhymix\Framework\Cache::clearGroup('ncenterlite');
|
||||||
|
Rhymix\Framework\Storage::writePHPData(\RX_BASEDIR . 'files/cache/ncenterlite/new_notify/delete_date.php', $delete_obj);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "Error while deleting notifications older than $days days.\n";
|
||||||
|
echo $output->getMessage() . "\n";
|
||||||
|
$exit_status = 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the exit status if there were any errors.
|
||||||
|
if ($exit_status != 0)
|
||||||
|
{
|
||||||
|
exit($exit_status);
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue