J'ai été chargé de corriger le programme d'un fournisseur qui, dans certaines conditions, dump les concerts de fichiers indésirables dans un répertoire de journaux. Il finit par remplir les machines des utilisateurs. Ma tâche consiste à comprendre comment le faire s'arrêter sans code source ni processus en cours d'exécution supplémentaire , et sans rendre le programme kasplode. En d'autres termes, je cherche à utiliser une fonctionnalité du système de fichiers pour contrôler la croissance.
Une des idées que j'avais était de créer un lien solide entre ce dossier et NUL, comme vous le feriez /dev/null
dans le monde Linux. Cependant, mes tentatives d’utiliser le mklink
programme pour créer une jonction donnent lieu à un message disantLocal volumes are required to complete the operation.
Des idées sur la façon de compléter la jonction, ou d'autres idées pour résoudre le problème?
la source
/dev/null
est un phénomène rare; les liens symboliques sont beaucoup plus courants.)Réponses:
Non. Les liens physiques ne sont disponibles que dans NTFS, et le fichier NUL n'est pas un fichier NTFS. Il s'agit du nom WIN32 de l'objet d'espace de noms \. \ Devices \ NULL, mais vous ne pouvez pas créer de lien physique.
Vous pouvez créer un lien symbolique (un raccourci) vers le fichier NUL si vous le souhaitez, mais je ne vois pas vraiment pourquoi ce serait une bonne idée.
la source
Je ne fais que cracher des idées ici mais:
Si le programme problématique a des commutateurs de ligne de commande, il peut être désactivé. Je demanderais d’abord au vendeur, en supposant que vous le puissiez ou non.
Si le programme du fournisseur crée un type d'événement système lu par Windows, vous pouvez éventuellement créer un script qui supprime le dossier de courrier indésirable (batch, cmd ou powershell). Si cela est possible, n'oubliez pas d'attendre que le programme du fournisseur soit terminé.
Le dernier recours consiste à configurer une tâche planifiée à supprimer à la fermeture de session Windows. Cela nécessite que les machines clientes disposent de suffisamment d'espace pour que la corbeille vive pendant la durée de la session.
Si les clients sont des serveurs, donc pas de fermeture de session, configurez-le pour qu'il s'exécute, par exemple toutes les 24 heures ou divisez-le souvent par deux. Diviser par 2 revient à réduire le risque de double ordure pour ainsi dire.
la source
Si vous parvenez à persuader le programme d’écrire ses fichiers journaux à la racine d’une lettre de lecteur, dites: T :, essayez
parce que la redirection vers le compartiment à bits fonctionne, par exemple, comme ceci:
Ce qui ne fonctionnera pas , ce sont les lectures du faux T: lecteur, création du dossier et accès en lecture au fichier. Quelle sorte a du sens, mais peut-être que votre application en dépend.
la source
Pourquoi ne pas simplement écrire un script qui supprime tous les fichiers .log qui sont écrits régulièrement dans le répertoire incriminé (ou au début / à la fin de l’utilisation du programme)? Certes, c'est un pansement jusqu'à ce que vous puissiez amener l'entreprise à réparer son programme.
Tel que:
Je suis nouveau dans PoSH, donc ce script peut ne pas fonctionner, mais je pense que le concept est valable.
la source
del <folderpath>\*.<extension>
. Peut-être voudrez-vous tester d'abord sur un répertoire inutile.Si vous n'avez pas besoin du fichier journal incriminé et que le chemin / nom est une variable connue, essayez de le créer en tant que fichier en lecture seule en tant qu'utilisateur root / privilégié pour empêcher sa création.
Vous pouvez également créer un volume / partition en lecture seule ou un disque mémoire d'une taille limitée vers laquelle vous établissez un lien symbolique, afin de limiter la taille du fichier.
Si le programme nécessite que le fichier journal continue de fonctionner et qu'il utilise 'kasplodes' lorsqu'il ne peut pas écrire, vous aurez peut-être besoin d'une solution programmatique telle que la rotation des journaux si vous ne parvenez pas à diriger vers null.
la source
Vous pouvez créer un utilisateur Windows distinct pour exécuter le programme (il doit s'agir d'un compte protégé par mot de passe), puis cliquer avec le bouton droit sur le lecteur sur lequel les journaux sont écrits et sélectionner les propriétés. Cliquez ensuite sur l'onglet Quota et configurez un quota d'espace disque pour cet utilisateur. Enfin, maintenez la touche Maj enfoncée et cliquez avec le bouton droit sur le fichier .exe qui lance le programme, puis sélectionnez Exécuter en tant qu’utilisateur différent pour sélectionner le compte que vous venez de créer.
la source
Si vous préférez le lien dur, alors vous devrez aller avec
C:> mklink / h "C: \ Program Files \ MyNewHardlinkFolder" NUL
la source
NUL
Ce n'est pas un vrai fichier, et il n'a pas de liens.