Керування файлами cookie, які використовуються для реклами, таких як персоналізація реклами, ремаркетинг і аналіз ефективності реклами.
|
tgr_85
09.08.2018 22:20
0
|
Здравствуйте.
Связка Joomla+K2 генерирует кучу ненужных картинок к статьям и скидывает их все в одну папку. Подскажите, пожалуйста, способ, чтобы средствами хостинга (может скрипт какой-то) удалить неиспользуемые картинки из заданной папки. Известно путь к папке, и что все неиспользуемые файлы заканчиваются, к примеру, на _XL.jpg Файлов картинок несколько тыс., из них ненужных примерно половина. Поэтому вручную править не вариант. Буду очень благодарен, если кто-нибудь поделится решением. |
|
Сергей М.
09.08.2018 22:28
1
|
Самое простое что приходит в голову - добавить в крон задачу
/usr/bin/rm -rf /home/имя хостинг аккаунта/путь к директории/*_XL.jpg |
|
tgr_85
09.08.2018 22:40
0
|
Спасибо!
Попробую и отпишусь завтра. |
|
tgr_85
11.08.2018 02:20
0
|
Пишет такое:
nice: /usr/bin/rm: No such file or directory Код получился такой: /usr/bin/rm -rf /home/имя хостинг аккаунта/домен/www/путь к директории/*_XS.jpg Может www не надо? Еще на одном форуме подсказали сделать и запустить такой php файл: <?php function udoli($dirname) { $files = glob($dirname . '/*', GLOB_MARK); foreach($filesas$file){ if(substr($file, -1) == '/'){ udoli($file); }else{ if(preg_match('#XS.jpg#Usi', $file, $est)) unlink($file); } } } udoli('/путь/к/папке'); ?> Правда я пока не понял, как его запустить... |
|
verliber
11.08.2018 09:41
2
|
/usr/bin/rm -rf /home/имя хостинг аккаунта/домен/www/путь к директории/*_XS.jpg Может www не надо?© tgr_85 Попробуйте указать просто команду так rm -rf /home/имя хостинг аккаунта/домен/www/путь к директории/*_XS.jpg Еще на одном форуме подсказали сделать и запустить такой php файл:© tgr_85 Можно сделать скрипт куда проще, к примеру так <?php $path = "/home/имя хостинг аккаунта/домен/www/путь к директории/*_XS.jpg"; shell_exec("rm -rf $path"); ?> При этом можно задать дополнительные параметры отбора файлов и управлять какими либо масками. И потом можно создать обычную крон задачу и поставить ее выполнение раз в сутки указав этот скрипт или же открыв скрипт в браузере то есть к примеру скрипт будет в /home/имя хостинг аккаунта/домен/www/delete.php то его запуск можно произвести просто открыв в браузере домен/delete.php Так же можно использовать такого способа команды для удаления файла которые существуют более указанного срока, пример на срок жизни файлов более двух суток с даты last modified find /home/имя хостинг аккаунта/путь к директории/ -type f -name "*_XL.jpg" -mtime +2 -exec rm -rf {} \; детальное описание команд Вы можете получить при помощи такого сервиса как www.explainshell.com (вот ссылка на описание вышеуказанной команды url.verliber.space/amY ) |
|
Сергей М.
11.08.2018 20:29
2
|
Пишет такое: nice: /usr/bin/rm: No such file or directory Код получился такой: /usr/bin/rm -rf /home/имя хостинг аккаунта/домен/www/путь к директории/*_XS.jpg© tgr_85 Попробуйте заменить путь к исполняемому файлу на /bin/rm /bin/rm -rf /home/имя хостинг аккаунта/домен/www/путь к директории/*_XS.jpg Посмотреть путь к исполняемым файлам можно командой # command -v "rm" /bin/rm |
|
tgr_85
12.08.2018 21:06
1
|
Сработал скрипт:
<?php $path = "/home/имя хостинг аккаунта/домен/www/путь к директории/*_XS.jpg"; shell_exec("rm -rf $path"); ?> И крон: /bin/rm -rf /home/имя хостинг аккаунта/домен/www/путь к директории/*_XS.jpg Всем спасибо большое! |
|
Natali.host
18.11.2020 10:09
0
|
<?php
$path = "/home/имя хостинг аккаунта/домен/www/путь к директории/*_XS.jpg"; shell_exec("rm -rf $path"); ?> Этот скрипт можно юзать не только к определенным файлам но и к директориям? |
|
verliber
18.11.2020 13:16
0
|
Если Вам нужна периодическая очистка каталога, то лучше воспользоваться инструкцией по созданию крон задачи для очистки каталога 2.11.9. Автоматическая очистка каталога [Хостинг Украина]
|
|
Natali.host
18.11.2020 13:56
0
|
Ок как быть если будет закрыт shell_exec?
|
|
verliber
18.11.2020 14:28
0
|
Не стоит решать такую задачу средствами php, так как куда проще создать крон задачу которая будет работать быстрее и лучше.
Если же, все таки, требуется использование php скрипта, к примеру для создания сложной логики очистки каталогов и прочее, но при этом закрыты все функции вызова системных команд (shell_exec\exec\system\proc_open\etc), то лучше использовать функцию PHP unlink() www.php.net/manual/ru/function.unlink.php , к примеру таким образом можно задать удаление файлов в каталоге: $path="/home/user/domain.com/www/dir/"; if(www.php.net/file_exists($path)){ foreach(www.php.net/glob("$path*_XS.jpg")as$file){ www.php.net/unlink($file); } } Вместо '_XS.jpg' укажите нужный тип файла или часть его имени. Но этот код не удалит каталог, для этого его нужно будет усложнить т.к. PHP не может удалить не пустой каталог. А какая именно задача у Вас стоит? |
Тема закрита.