Comment créer une redirection de sortie shell (& gt;) lors de l'exécution du script?
J'ai écrit un petit script qui jamais ne s'arrête. Ce script génère en permanence de sortie que je dois vérifier sur chaque maintenant et puis. Je suis en cours d'exécution sur un ordinateur du labo à travers SSH, et de rediriger la sortie vers un fichier dans mon dossier public_html sur cette machine.
python script.py > ~/public_html/results.txt
Cependant, les résultats ne s'affichent pas immédiatement quand je l'actualisation de l'adresse. Les résultats s'affichent quand j'ai terminer le programme, mais comme je l'ai dit, il n'a pas arrêter par lui-même. Est une redirection (>
) être paresseux avec l'aide de l'écriture? Est-il possible d'en continu (ou avec un intervalle) mettre à jour les résultats dans le fichier?
Ou est-ce le serveur qui ne met pas à jour le fichier pendant qu'il est encore en cours d'écriture?
source d'informationauteur noio
Vous devez vous connecter pour publier un commentaire.
Vous devez rincer la sortie
sys.stdout.flush()
(ou qch) si vous voulez le voir immédiatement. Voir cettestdout est mis en mémoire tampon, si ce n'est connecté à la borne.
Vous pouvez modifier cette politique à la ligne-mise en mémoire tampon par stdbuf
De sorte que vous n'avez pas à vider dans votre script Python et de le garder IO efficace, si la ligne tampon n'est pas nécessaire.
Je soupçonne que le fichier est constamment à l'écrit, mais que le serveur web est de signaler la date de modification du fichier, comme le temps qu'il a été ouvert, et donc les rapports qu'aucune modification au fichier a bien eu lieu et le résultat est mis en cache (que ce soit dans le serveur web ou chez le client).
Je voudrais tout d'abord essayer de forcer un rechargement (Ctrl+F5 ou Ctrl+Maj+R ou Maj+<reload_button>) et voir si cela aide. Si elle ne le fait pas, alors vous pouvez essayer quelque chose d'autre.
Dans un autre shell sur le serveur, ne
Tail affiche les n dernières lignes du fichier (où n est par défaut 10), mais le paramètre-f surveille le fichier et continue à la sortie du rapport que le fichier se développe. Cela permettra au moins de vous donner la certitude que le fichier est écrit de manière incrémentale.
J'espère que ça aide.