Je trouve souvent mes réponses sur ce site sans, mais à cette occasion j'ai besoin d'une assistance plus personnalisée. J'espère que quelqu'un peut me diriger dans la bonne direction.File Age Reporting
J'ai essayé de dessiner un rapport sur mon système NAS pour obtenir des statistiques sur l'âge des données et la taille des données afin que je puisse essayer de fournir une solution Charge Back/Show back.
J'ai réussi à le faire avec la plupart du temps en utilisant Powershell get-childitem et je l'ai même essayer de puiser dans .net en utilisant [System.IO.Directory] :: EnumerateDirectories, et d'autres commandes. Toutes ces solutions fonctionnent, mais je semble obtenir des temps très lents à obtenir cette information, surtout si je compare cela à Jam TreeSize qui pêche cette information assez rapidement. J'ai même essayé le multi-threading en PowerShell, en pensant que si je pouvais collecter les données à partir de divers points, il collecterait toutes les données plus rapidement, mais j'ai largement mélangé les résultats. J'espère que quelqu'un d'autre a abordé ce genre de projet avant et a réussi à obtenir une bonne manière rapide de le faire. Je suis même ouvert à d'autres langues abordant cela.
Notes rapides, je le fais dans powershell v5. J'ai également commencé à apprendre un peu de python, donc si quelqu'un a des suggestions, ce serait un bon endroit pour moi d'apprendre.
Edit:
OK Voici quelques exemples. fois: Treesize prend 10 secondes Powershell Get-ChildItem prend environ 2 minutes Powershell actions dotnet prend environ 2 minutes
Nombre d'objets compté 60 000 objets, la taille 120Go. Get-childitem avec recurse vous obtiendra tous les objets fichiers dans un emplacement spécifié, y compris leurs attributs, tels que le dernier temps et la taille en octets dotnet vous devez utiliser une combinaison de EnumerateFiles etc, puis en boucle avec FileInfo qui est obtenir les objets du fichier à l'emplacement donné et ensuite inspecter leurs attributs respectivement
En termes de multithreading je vais vous pointer vers des liens que j'ai utilisés, ce sera trop à ajouter ici, mais j'ai essayé de créer un espace d'exécution , mais j'ai également essayé manuellement deux espaces de course séparés pour comparer les résultats et ils étaient à peu près les mêmes. pourquoi je suis obsédé par les temps, alors que le répertoire de test que j'utilise ci-dessus est à seulement 2 minutes, mon NAS dans quelques volumes a des millions de fichiers. Le test que j'ai fait a duré une heure et demie, et si je devais le faire avec d'autres volumes, cela prendrait des heures. Je veux juste trouver des vitesses plus proches de Treesize
Edit: J'ai marqué solution robocopy comme la réponse, si vous avez des suggestions sur une autre langue et de la procédure s'il vous plaît ne hésitez pas à commenter et ce sera quelque chose que je se penchera sur l'avenir
Pouvez-vous poster le code que vous avez utilisé, quel temps prennent-ils, quelles informations essayez-vous d'obtenir? –
Alors que le sujet pourrait être intéressant, la question est trop large. – LotPings
Les commentaires ne sont pas destinés à étendre les informations qui appartiennent à votre question de première main. S'il vous plaît modifier votre question afin que les lecteurs de suivi n'ont pas besoin de lire à travers tout cela. (Je n'ai pas et je n'ai pas l'intention de) – LotPings