Je voudrais empêcher un de mes processus racine de supprimer un certain fichier. Donc je suis tombé sur la commande de troupeau, elle semble correspondre à mes besoins, mais je n'ai pas eu sa syntaxe.Comment utiliser la commande linux flock pour empêcher un autre processus racine de supprimer un fichier?
Si je n'indiquerai un verrou partagé, il ne fonctionne pas:
flock -s "./file.xml"
Si j'ajoute un paramètre de délai d'attente, il ne fonctionne toujours pas
flock -s -w5 "./file.xml"
Il semble de cette façon, il s'inscrit dans flock [-sxun][-w #] fd#
manière.
(Qu'est-ce que ce paramètre fd #?)
Alors, j'ai essayé le flock [-sxon][-w #] file [-c] command
En utilisant flock -s -w5 "./file.xml" -c "tail -3 ./file.xml"
et cela a fonctionné, commande de queue à ./file.xml a été exécuté.
Mais j'aimerais savoir, le verrou se termine-t-il après la commande ou dure-t-il 5 secondes après la fin de l'exécution de la commande? Ma question principale est, comment puis-je empêcher un autre processus racine de supprimer un fichier dans Linux?
Oh, merci l'homme. Je vais essayer le verrouillage du dossier. Merci – Danmaxis
Non, vous ne comprenez pas. Linux n'a pas de verrouillage obligatoire, normalement. Le verrouillage obligatoire résout peu et surtout permet juste à une application de refuser le service à une autre sans aucune explication ou façon de traiter avec elle. Si vous voulez vraiment, vraiment, arrêter la racine de la suppression d'un fichier, passez-le à "immuable", mais ils peuvent toujours le changer puis le supprimer. – MarkR