os.remove: на устройстве не осталось свободного места - PullRequest
0 голосов
/ 05 мая 2020

У меня есть небольшой EC2, работающий на AWS, и python скрипт, который временно сохраняет файл, заархивирует его, а затем удаляет (os.remove). Несмотря на то, что я удаляю эти tmp-файлы, у меня появляется сообщение No space left on device:

Filesystem      Size  Used Avail Use% Mounted on
udev            480M     0  480M   0% /dev
tmpfs            99M   11M   88M  11% /run
/dev/xvda1      7.7G  7.7G     0 100% /
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/loop2       18M   18M     0 100% /snap/amazon-ssm-agent/1566
/dev/loop1       18M   18M     0 100% /snap/amazon-ssm-agent/1480
/dev/loop0       94M   94M     0 100% /snap/core/8935
/dev/loop4       94M   94M     0 100% /snap/core/9066
tmpfs            99M     0   99M   0% /run/user/1000

Итак, я просто пытаюсь (здесь, на Reddit и на любом другом форуме) найти что-то связанное на os.remove() относительно гриппа памяти sh (что, похоже, так), но не смог идентифицировать. Я действительно не знаю, связана ли проблема с файловой системой (также пробовал rm -rf /tmp/*) или самой командой (я предполагал, что os.remove удалит и освободит место). Это Linux, ОС Ubuntu, а сценарий python в основном выглядит так:

def flush_unnecessary_folders(path_item):
    """
    :param path_item:
    :return:
    """
    try:
        if os.path.isdir(path_item):
            logging.info(">>>>>> Removing dir {}...".format(path_item))
            shutil.rmtree(path_item)

        if os.path.isfile(path_item):
            logging.info(">>>>>> Removing file {}...".format(path_item))
            os.remove(path_item)

    except OSError as e:
        logging.warning(">>>>>> Error: %s : %s" % (path_item, e.strerror))

Может ли кто-нибудь помочь?

...