Страница 1 из 1

Удаление сохраненной БД по крону

Добавлено: 06 июн 2020, 12:44
alcompstudio
Добрый день!

Сейчас делаю резервные копии БД по крону. Установил раз в день, но уже куча баз "набежала". Не всегда помню, что "лишние" можно удалить, и место тоже занимают, поэтому удалять нужно. Можно ли как-то с использованием крона сделать удаление баз, например, сохраненных 2(или 3, или по настройке) дня назад?

Т.е. чтобы оставалось только 2-3 последних бекапа. Или это сложно организовать?

Re: Удаление сохраненной БД по крону

Добавлено: 08 июн 2020, 15:19
sanys
Только средствами ОС.
Для линукс можно выполнять команду в кроне или запихать в bash-скрипт и запускать его
find <путь к каталогу бэкапов> -type f -mtime +5 -delete

find - поиск
-type f - тип файлы
-mtime +5 - всё что старше 5 дней (обязательно +)
-delete - удалить

Можно настроить запись в лог-файлов, если требуется
-print -вывод в интерфейс по умолчанию
>> logfile.txt - файл лога
тогда полная команда:

find <путь к каталогу бэкапов> -type f -mtime +5 -delete -print >> <путь к каталогу файла-лога>/logfile.txt

перед запуском сделайте бэкап бэкапов )))

Re: Удаление сохраненной БД по крону

Добавлено: 08 июн 2020, 15:24
alcompstudio
Спасибо за рекомендации, но данную возможность нужно для приложения, расположенного на вирт.хосте. + нет доступа к консоли + нет достаточных знаний в администрировании серверов)) Потому и вынес на обсуждение, возможно разработчик как-то программно предусмотрит данную особенность в релизах, если конечно можно так сделать. Если, как вы указали в своем ответе - только через ОС, значит будем продолжать ручками удалять.

Re: Удаление сохраненной БД по крону

Добавлено: 08 июн 2020, 15:35
Oleg

Re: Удаление сохраненной БД по крону

Добавлено: 08 июн 2020, 15:47
sanys
Думаю, что добавить этот функционал в систему не должно быть сильно трудно.

Кнопка "Настройки" на странице работы с бэкапами.
При нажатии на кнопку открывается страница или форма, где есть поля:
Переключатель: On/Off - "Удалять старые копии автоматически"
Переключатель: "Удалять по истечению количества дней" / "Хранить указанное количество копий"

Поля (в зависимости от переключателя):
<столько-то> дней хранить копии ("Укажите количество дней, для самой "старой" копии.")
или
Хранить <столько то копий> ("Укажите количество копий, которые следует хранить. При превышении количества, самая старая копия будет удалена")

После включения данной опции рядом с кнопкой "Настройки" выводить состояние "Автоматическое удаление включено!"
и, возможно текущие настройки.

Скорее всего, надо будет добавлять в крон еще один php-скрипт (как в случае с созданием бэкапов), который уже будет удалять ненужные бэкапы, в зависимости от настроек пользователя.

Думаю, раз у приложения есть доступ для записи в каталог с бэкапами, то и с удалением не должно быть проблем.
Но может зависеть от хостинга (не имею опыта работы с ними).

Тут потом главное не запутаться с этими скриптами ))

P.S. Да, с подсказками и названиями полей надо поработать, но думаю смысл ясен.

Re: Удаление сохраненной БД по крону

Добавлено: 08 июн 2020, 16:13
alcompstudio
Oleg писал(а): 08 июн 2020, 15:35 Может это подойдет
https://www.reg.ru/support/hosting-i-se ... schik-cron
https://fornex.com/help/cron-php/
Спасибо, у хостера есть возможность ставить крон, но у меня нет знаний как создать отдельный php скрипт, который будет удалять файлы бекапов )
Думаю, что добавить этот функционал в систему не должно быть сильно трудно.
Очень хотелось бы надеяться)

Re: Удаление сохраненной БД по крону

Добавлено: 08 июн 2020, 16:20
Oleg