web-dev-qa-db-fra.com

Comment fonctionne le dossier tmp? Il stocke beaucoup de fichiers indésirables et prend de la place

Mon dossier tmp est défini sur/sites/default/files/tmp/et j'ai vérifié ce qu'il y a à l'intérieur et, par exemple, il y a un dossier appelé/update-cache-b2903cc4/il conserve tous les modules dans .Zip que j'ai installé via 'Installer à partir d'un URL ". Alors pourquoi ces modules. Les fichiers zip sont-ils conservés dans le dossier tmp, n'est-ce pas un gaspillage de stockage? Je n'aime pas vraiment ça quand le site est plein de fichiers inutiles.

Suis-je censé les supprimer moi-même tout le temps?

7
user13176

Que signifie tmp?

Tmp est l'abréviation de temporaire. Le dossier tmp est donc un dossier destiné aux fichiers temporaires. Chaque système d'exploitation utilise un tel dossier, et en fait en a besoin. Drupal aussi. Drupal par défaut tente de stocker des fichiers dans le dossier tmp de votre système d'exploitation. Sous Linux, c'est /tmp, sous Windows C:\Windows\Temp. Vous pouvez vérifier et modifier ce paramètre dans Configuration > Media > File System. Si votre répertoire temporaire est défini sur l'un de ces chemins d'accès standard, vous devez supposer qu'il ne s'agit pas seulement des fichiers de Drupal, mais des fichiers du système d'exploitation et de plusieurs autres programmes (sessions Apache, téléchargements Drush, packages d'installation). S'il se trouve sur un chemin personnalisé, ou dans le cas de l'OP: /sites/default/files/tmp/ (Drupal's chemin de secours ) il ne doit contenir que des fichiers Drupal.

Alors quel type de fichiers Drupal y stocke-t-il?

En général Drupal stocke d'abord tous les fichiers téléchargés dans le dossier temporaire. En cas de problème (par exemple, la connexion avec le client est interrompue), il y a un fichier corrompu sur le serveur. Conserver ces fichiers dans un dossier temporaire et en les déplaçant uniquement après le transfert de tout le fichier, garantit qu'il n'y aura pas de fichiers endommagés ou inutiles dans votre répertoire de fichiers publics sites/default/files.

Cela inclut également les modules et les téléchargements de traduction, certains fichiers js (probablement utilisés en agrégation) et plusieurs autres fichiers.

Il n'y a pas de véritable liste de tous les fichiers Drupal stocke dans tmp, car les modules contribués peuvent également choisir de stocker un fichier là-bas. Les cas d'utilisation possibles peuvent être la génération de fichiers à la demande (par exemple, un module qui regroupe une sélection personnalisée de fichiers dans un fichier Zip et le propose en téléchargement. Il est peu probable que le même fichier soit utilisé plus d'une fois et il n'y a aucun réel avantage à le stocker).

Puis-je supprimer les fichiers en toute sécurité?

Eh bien oui et non ... L'idée des fichiers temporaires est qu'ils sont, eh bien ... temporaires. Ils sont généralement utilisés directement après leur création et peuvent ne plus être nécessaires. Mais comme tous les programmes peuvent écrire dans tmp, il est raisonnable de supposer que tous les programmeurs ne respectent pas les règles, ou que certains fichiers peuvent en fait encore être utilisés.

Dois-je supprimer les fichiers?

Drupal effectue plusieurs nettoyages de lui-même pendant les exécutions cron (en supposant que cron est configuré et fonctionne). Les fichiers téléchargés qui n'ont pas été enregistrés de façon permanente seront supprimés pendant system_cron () . Les anciens téléchargements de modules sont gérés par pdate_delete_file_if_stale () (via pdate_clear_update_disk_cache () et pdate_cron () ). Ces nettoyages sont définis pour nettoyer les fichiers antérieurs à DRUPAL_MAXIMUM_TEMP_FILE_AGE (6 heures), mais l'heure réelle dépend de l'intervalle cron. (Si cron ne s'exécute que toutes les 12 heures, cela peut prendre jusqu'à 12 heures avant la suppression des fichiers).

Dans la plupart des cas, il ne devrait pas être nécessaire de supprimer les fichiers manuellement. Si dans certains cas cron ne supprime pas (tous) les fichiers, vous pouvez essayer de les supprimer à la main. Mais faites d'abord une sauvegarde!

Si votre dossier est partagé avec le dossier de votre système d'exploitation, vous souhaiterez peut-être utiliser les outils de votre système d'exploitation pour cela (les utilisateurs de Windows peuvent nettoyer les fichiers temporaires avec le Disk Cleanup outil. ( Certaines distributions Linux nettoient le dossier lors du redémarrage du système, d'autres non. )

Lorsque le dossier tmp se trouve sur un chemin personnalisé (non-système d'exploitation), comme c'est le cas avec l'OP, il doit être relativement enregistré pour vider le dossier à la main. Assurez-vous que votre serveur Web (Apache, Nginx) est arrêté, afin qu'aucun utilisateur de la tâche cron ne touche les fichiers. Supprimez ensuite les fichiers périmés (plus de 6 heures) manuellement.

Conclusion

Si votre système est correctement configuré et que cron fonctionne, il ne devrait pas être nécessaire de nettoyer ces fichiers, car ils sont supprimés automatiquement. Si cela ne se produit pas, vous pouvez les supprimer manuellement, mais gardez à l'esprit les conditions ci-dessus. Cela peut toujours mal tourner, alors faites toujours une sauvegarde!

21
Neograph734