Supposons que vous exécutez les commandes suivantes:question de l'intégrité des données lors de la collecte STDOUTs à partir de plusieurs hôtes distants via SSH
ssh $host1 'while [ 1 ]; do sleep 1; echo "Hello from $HOSTNAME"; done' > /tmp/output ssh $host2 'while [ 1 ]; do sleep 1; echo "Hello from $HOSTNAME"; done' >> /tmp/output ssh $host3 'while [ 1 ]; do sleep 1; echo "Hello from $HOSTNAME"; done' >> /tmp/output
Ensuite, la sortie ressemblerait à ceci:
Hello from host1 Hello from host2 Hello from host3 Hello from host1 ...
Mais si je l'ai changé
ssh $host1 'while [ 1 ]; do sleep 1; cat /some/large/file1.txt; done' > /tmp/output ssh $host2 'while [ 1 ]; do sleep 1; cat /some/large/file2.txt; done' >> /tmp/output ssh $host3 'while [ 1 ]; do sleep 1; cat /some/large/file3.txt; done' >> /tmp/output
de sorte que stdout de chaque hôte ne rentre pas dans un seul tampon? Est-ce que les données l'intégrité du fichier [1-3] .txt, et non l'ordre, être maintenu dans ce cas? Est-ce que il ya une possibilité qu'un fragment de fichier d'un autre fichier se glisse au milieu d'un autre fichier comme celui-ci?
[file1_fragment1] [file2_fragment1] [file1_fragment2] [file1_fragment3] [file3_fragment1] ...
L'intégrité des données est donc maintenue jusqu'à la taille de la mémoire tampon de l'hôte (ou localhost, si la taille de la mémoire tampon de l'hôte local est plus petite)? Où obtenez-vous l'information sur la taille de la mémoire tampon? – OTZ
Aucune idée, même si vous pourriez facilement faire quelques tests pour le savoir. (Créez un fichier qui comprend tous les A, un autre de tous les B, un autre de tous les C et utilisez-les dans votre exemple) Cela dépend de plus que de la taille de la mémoire tampon; Parfois, les données sont vidées chaque fois qu'une nouvelle ligne est écrite, de sorte que l'intégrité des données est seulement "garantie" ligne par ligne. –
Dang .. J'ai écrit mon expérience montrant que "l'intégrité des données n'est pas conservée dans ce cas", mais j'ai cliqué sur un lien sur la page qui l'a éliminé. Les détails étaient cependant intéressants: en particulier, les 4 premiers Mo (2 Mo d'une télécommande, 2 Mo d'autre) ont été reçus sans aucun mélange de données. – OTZ