Existe-t-il un filtre que je pourrais utiliser pour limiter le taux d’un tuyau sous Linux? Si cela existe, appelez-le limite de taux, je veux être capable de taper dans un terminal quelque chose comme
cat /dev/urandom | rate-limit 3 -k | foo
afin d'envoyer un flux d'octets aléatoires à l'entrée standard de foo à un débit (inférieur à) 3 ko / s.
rate-limit 3k < /dev/urandom | foo
.Réponses:
Pipe Viewer a cette fonctionnalité.
la source
-q
... Par exemple:command 2>&1 | pv -q -L 3k
Je dirais que Juliano a la bonne réponse si vous avez cet outil, mais je suggérerais également qu'il s'agit d'un petit exercice de style K & R: il suffit d'écrire une version spécialisée de cat qui lit un caractère à la fois
stdin
, en le affichant chacun àstdout
et puisusleep
s avant de passer. Veillez à annuler la mémoire tampon de la sortie standard , sinon cela fonctionnera plutôt saccadé.J'ai appelé ça
slowcat.c
:Compilez-le et essayez avec
la source
l'accélérateur semble conçu spécifiquement pour cela. par exemple
la source
./configure && make
.Voici une solution 100% shell qui ne perdra pas sa contribution (cf. l’idée principale -1 de Mike S):
la source
Rapide et sale, tout shell tout le temps (j'ai CentOS et pv ne vient pas avec elle par défaut):
... sale parce que même si son taux est limité, il est rapide à un taux que je ne peux pas vous dire :-). Mais c’est pratique lorsque vous avez juste besoin d’envoyer des données d’un endroit à un autre (j’ai fait quelques tests socat) et que vous ne voulez pas submerger votre écran de déchets.
la source