Python causant: IOError: [Errno 28] Aucun espace disponible sur le périphérique: '../results/32766.html' sur le disque avec beaucoup d'espace

Je suis en cours d'exécution d'un script en Python qui est à l'origine de l'erreur ci-dessus. L'insolite, c'est qu'un script est en cours d'exécution sur une machine différente, et est ne pas avoir de problèmes.

La différence est que sur la machine qui est à l'origine du problème je suis en train d'écrire sur un disque dur externe. Pour rendre les choses encore plus étranges de ce script est exécuté sur la machine et déjà écrit plus de 30 000 fichiers.

Certaines informations pertinentes (Le code qui est à l'origine de l'erreur):

nPage = 0
while nPage != -1:
    for d in data:
        if len(d.contents) > 1:
            if '<script' in str(d.contents):
                l = str(d.contents[1])
                start = l.find('http://')
                end = l.find('>',start)
                out = get_records.openURL(l[start:end])
                print COUNT

                with open('../results/'+str(COUNT)+'.html','w') as f:
                    f.write(out)
                COUNT += 1

    nPage = nextPage(mOut,False)

Le répertoire que je suis en train d'écrire à:

10:32@lorax:~/econ/estc/bin$ ll ../
total 56
drwxr-xr-x 3 boincuser boincuser  4096 2011-07-31 14:29 ./
drwxr-xr-x 3 boincuser boincuser  4096 2011-07-31 14:20 ../
drwxr-xr-x 2 boincuser boincuser  4096 2011-08-09 10:38 bin/
lrwxrwxrwx 1 boincuser boincuser    47 2011-07-31 14:21 results -> /media/cavalry/server_backup/econ/estc/results//
-rw-r--r-- 1 boincuser boincuser 44759 2011-08-09 10:32 test.html

Preuve qu'il ya assez d'espace:

10:38@lorax:~/econ/estc/bin$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.0G  5.3G  3.3G  63% /
none                  495M  348K  495M   1% /dev
none                  500M  164K  500M   1% /dev/shm
none                  500M  340K  500M   1% /var/run
none                  500M     0  500M   0% /var/lock
none                  9.0G  5.3G  3.3G  63% /var/lib/ureadahead/debugfs
/dev/sdc10            466G  223G  244G  48% /media/cavalry

Certaines choses que j'ai essayé:

  • Changer la trajectoire de l'écriture à l'emplacement au lieu de passer par le lien
  • Le redémarrage de la machine
  • Démonter et re-montage du lecteur
  • Quel type de système de fichiers est /media/cavalry? Vous pourriez peut-être poster la ligne de /proc/mounts. Vous êtes tout simplement en train d'i-noeuds?
  • Il serait utile si vous avez inclus plein traceback (sur la ligne à laquelle l'erreur s'est produite?), types de systèmes de fichiers et gratuit inode count (df -i). Dans ce cas, je soupçonne que le système de fichiers est vfat et vous avez dépassé le nombre maximal de fichiers dans un répertoire.
  • voir que le nom de fichier est 32766 - que nombre déclenche des alarmes 🙂 btw, vous devez déplacer votre commentaire réponses
  • 32766 + "." + ".." pour 32768 des entrées du répertoire. Hmm...
  • Oui il n'y a pas plus d'inodes. Intéressant. Rosh si vous postez votre commentaire à la réponse que je puisse les énumérer que le choix. Mais je me demande aussi ce que je peux faire pour remédier à cela et où je peux obtenir un peu plus d'informations sur les inodes dans le système vfat. Merci!
  • Ok, je voulais poster ce avec le dernier commentaire:<br>système de fichiers Inodes Utilisée IFree IUse% Monté sur <br>/dev/sdc10 0 0 0 - /médias/de la cavalerie<br> Semble étrange que l'on dit il n'y a pas des Inodes à tous. Est certainement vfat:<br>/dev/sdc10 /media/cavalerie vfat rw,nosuid,nodev,noexec,relatime,uid=1001,gid=1001,fmask=0113,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0

InformationsquelleAutor josh | 2011-08-09