flux/fileClean.php
2015-09-11 14:01:04 +00:00

98 lines
2.7 KiB
PHP

<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
try {
$opts = new Zend_Console_Getopt(
//Options
array(
'help|?' => "Displays usage information.",
'cron' => "Mandatory option with cron",
'verbose|v' => "Affichage de ce qui est fait."
)
);
$opts->parse();
} catch (Zend_Console_Getopt_Exception $e) {
echo $e->getUsageMessage();
exit;
}
//Usage
if( isset($opts->help) || count($opts->getOptions())==0 )
{
echo "Clean directories.\n";
echo $opts->getUsageMessage();
exit;
}
$c = new Zend_Config($application->getOptions());
$db = Zend_Db::factory($c->profil->db->metier);
Zend_Db_Table::setDefaultAdapter($db);
// --- Parcours des éléments lu dans la table flux_fileout pour suppression des fichiers de plus de 5 jours
$dateEnd = new Zend_Date();
$dateEnd->subDay(5);
$fluxM = new Application_Model_Sdv1FluxFileOut();
$deleteSql = $fluxM->select()
->where('depotDate BETWEEN "'.date('Ym').'01000000" AND "'.date('Ym').'31235959"')
->where('depotDateRead!=0')
->where('depotDateRead < ?', $dateEnd->toString('YMdHms'));
$deleteResult = $fluxM->fetchAll($deleteSql);
if (count($deleteResult) > 0) {
foreach ($deleteResult as $item) {
$path = '';
switch($item->depotType) {
case 'FTP':
$path = $c->profil->path->ftp;
break;
case 'SFTP':
$path = $c->profil->path->sftp;
break;
}
$path.= '/' . $item->client;
if ($item->depotDir == '') {
$path.= '/recv';
} else {
$path.= '/' . $item->depotDir;
}
$filename = $path . '/' . $item->fileOut;
if (file_exists($filename) && is_file($filename)) {
unlink($filename);
}
}
}
// --- Parcours des fichiers pour suppression des fichiers de plus de 30 jours
$path = array(
$c->profil->path->sftp,
$c->profil->path->ftp,
);
// find $p/ -mindepth 2 -maxdepth 4 -type f ! -regex '.*/\..*' -ctime +30 -exec echo {} \;
foreach ($path as $p) {
passthru("find $p/ -mindepth 2 -maxdepth 4 -type f ! -regex '.*/\..*' -ctime +30 -exec rm -f {} \;");
}