J'ai une commande par ex. ls-l> file.txt Lorsque l'espace sur mon disque est insuffisant, la commande ci-dessus s'arrête juste en attendant que quelque chose se produise. Est-ce que quelqu'un sait d'un code que je pourrais écrire me permettant d'afficher un message sur le manque d'espace sur mon disque? Par exemple. Puis-je utiliser IPC ou avez-vous d'autres idées? Merci d'avance.Bash: redirection s'arrête
Répondre
Vous pouvez utiliser la commande df
pour déterminer la quantité d'espace libre sur le lecteur et ne pas démarrer votre traitement s'il y a moins de 5 M d'espace libre par exemple. Vous pouvez également vérifier l'espace disponible dans votre programme interne et écrire un message d'avertissement dans le STDERR.
Sortie de commande de tuyau via un autre programme qui va intercepter les erreurs d'écriture (par exemple ENOSPC
), imprimer des diagnostics et échouer si rien d'autre ne peut être fait.
Ce programme peut être aussi simple que cat
:
foobar | cat > file.txt
cat
rapportera erreur et mourir, et foobar
recevront SIGPIPE
avec l'action par défaut de mourir ainsi.
Pourriez-vous s'il vous plaît fournir plus d'informations? – user365828
Quel est le comportement souhaité lorsque l'application manque d'espace disque? Échouer avec certains diagnostics au lieu d'attendre indéfiniment, continuer à écrire comme dans un tampon circulaire, quelque chose d'autre? – rkhayrov
Lorsque l'application a rempli le disque, il n'est pas nécessaire d'attendre indéfiniment pour plus d'espace disponible, juste avertir en affichant "manque d'espace disque" et arrêter à partir de là ou quitter le code. – user365828
- 1. redirection Bash intérieur commande
- 2. Redirection d'entrée temporaire dans Bash
- 3. La redirection stderr et stdout Bash échoue
- 4. Problème de redirection d'une sortie de programme C dans bash
- 5. Redirection de Bash combinée à la notation "double pipe"
- 6. fuite de mémoire Linux BASH lors de la redirection stdio
- 7. Page de redirection de redirection
- 8. Script Bash/shell - redirection de sortie shell à l'intérieur d'une fonction
- 9. Comment faire pour forkpty/execvp() pour gérer correctement la redirection et les autres bash-ismes?
- 10. Aidez-moi à comprendre cette simple redirection io dans bash du guide ABS
- 11. Utilisation de bash -c avec des boucles et redirection de sortie standard
- 12. bash - redirection de stdoutput et stderror n'attrape pas toutes les sorties
- 13. Triche montrant un comportement de redirection stdout/stderr de bash shell
- 14. Redirection de sortie de terminal Linux
- 15. 301 redirection
- 16. redirection htaccess
- 17. Redirection default.aspx
- 18. TNS Redirection?
- 19. select redirection
- 20. Redirection d'URL
- 21. redirection multiple?
- 22. php redirection
- 23. Redirection loop
- 24. Htaccess redirection
- 25. Redirection conditionnelle
- 26. Redirection .htaccess
- 27. redirection URL
- 28. redirection .htaccess
- 29. HTML - Redirection
- 30. problème la redirection de trouver un fichier
Malheureusement, la commande devra toujours s'exécuter. Je vais devoir faire face à la question du blocage. Voulez-vous dire que je vais devoir écrire une sorte de boucle qui va toujours calculer l'espace libre en utilisant df et quand il dépasse une certaine limite, je montre un message? Mais n'y a-t-il pas un moyen plus efficace de vérifier si le processus s'est arrêté au lieu d'avoir une boucle. – user365828