trinitr0
@trinitr0
провинциальный админ

Как реализовать удаление файлов до достижения определённого количества свободного места?

Здравствуйте!

Задача состоит в написании скрипта на Python, который удалял бы файлы из определённой директории не полностью, а до достижения заданного порога свободного места.

Как лучше это реализовать?
  • Вопрос задан
  • 200 просмотров
Решения вопроса 1
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Очень просто - читайте вывод команды du с ключом -s
А уже потом принимайте решение, что и как удалять.
leah@leah-pc ~> du -s /var/www/media
131268256	/var/www/media
leah@leah-pc ~>

Можно конечно и на питоне пройтись по всем подкаталогам и считать размеры всех файлов. Но зачем, если уже есть утилита.
import subprocess
proc = subprocess.run(["du","-s","/var/www/media"], stdout=subprocess.PIPE)
folder_size = int(proc.stdout.decode('utf-8').split('\t')[0])


Ну и удалять можно командой rm
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Zoominger
@Zoominger Куратор тега Python
System Integrator
1. Посмотреть, сколько свободного места осталось;
2. Если мало, то удалить файлы из директории;
3. Повторить.

Понадобится модуль os.
Всё.
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Почему именно питон, когда для таких задач как раз подходит баш, или вообще find?

Почему нужно удалять когда заканчивается места, а не настроить изначально ротейт файлов, которые растут - именно так делается в нормальных случаях
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы