скрипт удаляющий ненужные файлы и пустые папки
Can't locate DB_File.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /home/******/web/******.ru/public_html/upload/cron_cleaner.pl.php line 23.
BEGIN failed--compilation aborted at /home/******/web/******.ru/public_html/upload/cron_cleaner.pl.php line 23.
Странно, ваще оно должно из коробки идти
Can't locate DB_File.pm
yum install perl-DB_File
Я сделал по расширениям jpg, gif, png
Но тегов нет:
проверьте пожалуйста, перезалил cron_cleaner-v7.59.zip
/usr/bin/perl /home/******/web/******.ru/public_html/upload/cron_cleaner.pl.php
ok
Скрипт отработал. Увы, специально созданные ненужные файлы остались на месте...
Не помогло.проверьте пожалуйста, перезалил cron_cleaner_v2.zip
не не, вы тестовый режим выключили? :)
Не помогло.
в файле cleaner_files.txt есть упоминание об этих файлах?
error есть?
Выключил, файлы удалились.не не, вы тестовый режим выключили? :)
Появилось четыре текстовых файла с логами. Из консоли всё работает хорошо.
С хроном всё хуже...
Cron <******@******> root /usr/bin/perl /home/******/web/******.ru/public_html/upload/cron_cleaner.pl.php >> /var/log/syslog 2>&1
/bin/sh: /var/log/syslog: Permission denied
попробуйте без сислога, он вобщем то не очень и нужен
/bin/sh: /var/log/syslog: Permission denied
root /usr/bin/perl /home/******/web/******.ru/public_html/upload/cron_cleaner.pl.php > /dev/null 2>&1
Чет я втупил :),ЗЫ: вобщем проблема такая есть, а уж как решить её…
Я предложил, но не знаю насколько реализуемо.
если вот так прописать
my $upload = '000/u1/0'; # папка которую сканируем
а если оставить сканирование на 000/u1 то можно создав папку u2 класть в неё всё что точно не попадет под удаление
может это вас спасет :)
то будет сканироваться только 000/u1/0
Так не пойдет. Все эти папки генерируются случайным образом (если не ошибаюсь).
И вычислить где и что у кого находится не получится ( вычислить можно, но может совпасть нужное с не нужным).
Собственно искать в папке upload/000/ предложил Ris (в его компоненте) я.
Раньше его компонент искал в upload/ и сносил картинки виджетов тоже.
upload/000/ совпадает у всех, а вот глубже, все идет в случайном порядке и не факт что (как писал выше) не совпадет нужное с не нужным.
Так что, если получится по расширениям, возможно будет правильный вариант (расширения можно добавить еще у кого есть другие).
и да...
попробовал на локальном (OSPanel) не получилось:
5. Можно сразу жмякнуть на скрипт(если он сделан "исполняемым" или так: perl cron_cleaner.pl.php),
если всё норм — он отработает и будут логи
Может не так делаю… Я пытался открыть в браузере этот файл…
Увы, чуда не произошло.Насколько понимаю в отличии от чистильщика от Ris, должна быть меньше нагрузка на сервер.
Сделал на тестовом сервере копию рабочего сайта. Страртанул скрипт. Четыре минуты думало. Точно также заткнулось на большой таблице в миллион строк.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
DBD::mysql::st execute failed: MySQL server has gone away at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 80, <CONF> line 71.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at /home/******/web/sub.******.ru/public_html/upload/cron_cleaner.pl.php line 81, <CONF> line 71.
ok
[root@****** public_html]#
получилось ещё вчера )Так что, если получится по расширениям, возможно будет правильный вариант (расширения можно добавить еще у кого есть другие).
Нет,Я пытался открыть в браузере этот файл...
скрипт исключительно консольный, если нет доступа к консоли — то только по cron
Попробуем другую магию ?Увы, чуда не произошло.
протестируйте плз обновленный скрипт cron_cleaner-v7.59.zip (не забудьте выкл testmode)
если не прокатит, то могли бы вы показать вывод mysql команд из консоли
то могли бы вы показать вывод mysql команд из консоли
Your MariaDB connection id is 1878
Server version: 10.4.7-MariaDB MariaDB Server
Copyright © 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> select @@global.max_allowed_packet;
+-----------------------------+
| @@global.max_allowed_packet |
+-----------------------------+
| 1048576 |
+-----------------------------+
1 row in set (0.000 sec)
MariaDB [(none)]> show variables like "wait_timeout";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 50 |
+---------------+-------+
1 row in set (0.001 sec)
MariaDB [(none)]> show variables like "interactive_timeout";
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| interactive_timeout | 50 |
+---------------------+-------+
1 row in set (0.001 sec)
Сейчас протестирую.протестируйте плз обновленный скрипт cron_cleaner_v3.1.zip (не забудьте выкл testmode)
-----------------------------------------------------------------------------------------------
На этот раз всё без ошибок 2 минуты. 635 файлов найдено.
Сейчас сравню результат с анфайндером.
unfinder: Найдено лишних файлов: 58
10мб, маловато в стандартной поставке обычно 16мб,@@global.max_allowed_packet |
+-----------------------------+
| 1048576 |
+-----------------------------+
коли вы оперируете миллионными базами думаю стоит добавить
Это ваще жуть… в стандарте 8 часов а у вас 50 сек )))+---------------+-------+
| wait_timeout | 50 |
+---------------+-------+
всмысле ваш нашел больше не используемых? и на самом деле они действительно лишние?
unfinder: Найдено лишних файлов: 58
просто как бы мой скрипт не может выдумать отсутствие записи в базе…
а папки он не может не пропустить ни удалить если они не пустые...
и кстати у меня есть доп поле поиска относительно ваших wm_image
Нет, я не отключал тестовый режим.всмысле ваш нашел больше не используемых ?
Просто Rainbow считает, что все картинки лежат в 000. В моем случае это не так (сайт переносился с первой ветки на 2.7.2)
Всё же настраивается. Можно добавить какие угодно поля.и кстати у меня есть доп поле поиска относительно ваших wm_image