DokuWiki

It's better when it's simple

Outils pour utilisateurs

Outils du site


fr:install:unused_files

Effacer les fichiers inutiles

Lorsqu'une nouvelle version de DokuWiki est disponible, certains des fichiers précédemment nécessaires peuvent devenir obsolètes. Garder ces fichiers est généralement sans conséquence, mais ils pourraient poser un risque de sécurité ou détériorer des installations plus tard, nous vous recommandons donc de les supprimer.

Une liste de tous les fichiers supprimés dans les versions récentes se trouve dans data/deleted.files. Vous devriez vérifier s'ils existent toujours dans votre installation. S'ils le sont, supprimez-les.

Vous pouvez également voir la liste actuelle sur https://github.com/dokuwiki/dokuwiki/raw/stable/data/deleted.files

Utiliser le plugin RemoveOld

Pour supprimer d'anciens fichiers via l'administration de DokuWiki, vous pouvez également utiliser le plugin RemoveOld.

Utilisation d'un script

Les personnes disposant d'un accès au shell de leur serveur peuvent utiliser un script pour supprimer automatiquement tous les anciens fichiers.

Shell Linux

Cette ligne simple devrait fonctionner sur n'importe quel système Linux

grep -Ev '^($|#)' data/deleted.files | xargs -n 1 rm -vf

shell *nix

Certains systèmes peuvent ne pas prendre en charge l'option “rm -d” pour la suppression du répertoire. Dans ce cas, vous devez utiliser la suppression récursive (assurez-vous de vérifier que la liste des fichiers n'inclut pas de chemin qui va trop en supprimer):

grep -Ev '^($|#)' data/deleted.files | xargs -n 1 rm -fr

Script Python

Voici un script Python qui va également afficher les fichiers supprimés

import os
for line in open("./data/deleted.files"):
    if line.isspace() or line[0] == '#':
        continue
    line = line.rstrip(os.linesep)
    try:
        if os.path.exists(line):
            print('Fichier supprimer =>  ' + line)
            os.remove(line)
    except OSError:
        pass

Script Ruby

Voici un script Ruby faisant la même chose

files = File.read("./data/deleted.files").split("\n").grep(/^[^$#]/)
 
files.each do |file|
  puts "Suppression de #{file}."
  File.delete(file) rescue puts $!
end

PHP Script

La même chose pour PHP :

<?php
/* Fonction de sécurité, commentez ceci pour "activer" le script. */
exit('Check source');
 
$path = getcwd();
 
if(file_exists($path . '/data/deleted.files')) {
  $file = fopen($path . '/data/deleted.files', 'r');
  while(false !== ($line = fgets($file))) {
    $line = trim($line);
    if(!empty($line) && !preg_match('/^\#/', $line) && file_exists($path . '/' . $line)) {
      unlink($path . '/' . $line);
      echo '/' . $line . ' - supprimé<br/>';
    }
  }
  echo 'Fini!';
}

Script Powershell

Voici un script powershell d'une ligne faisant la même chose.

Get-Content .\data\deleted.files | Where-Object {$_ -notmatch '^($|#)' -and (Test-Path $_ )} | Foreach-Object {Remove-Item -path $_ -Force -Recurse}

CMD Script

Voici le script CMD pour Windows faisant la même chose, même si vous devez d'abord inverser toutes les barres obliques dans deleted.files pour que les noms de fichiers soient acceptés.

for /F %i in ('findstr /R /V /C:"^#" /C:"^$" data\deleted.files') do del "%i"
fr/install/unused_files.txt · Dernière modification : 2023-03-09 14:05 de From-Russia-with-Love

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki