Apakah ada filter yang bisa saya gunakan untuk menilai-membatasi pipa di linux? Jika ini ada, sebut saja batas-tingkat, saya ingin bisa mengetikkan terminal seperti ini
cat /dev/urandom | rate-limit 3 -k | foo
untuk mengirim aliran byte acak ke input standar foo dengan kecepatan (lebih rendah dari) 3 kbytes / s.
rate-limit 3k < /dev/urandom | foo
.Jawaban:
Pipe Viewer memiliki fitur ini.
sumber
-q
... misalnya:command 2>&1 | pv -q -L 3k
Saya akan mengatakan bahwa Juliano telah mendapatkan jawaban yang tepat jika Anda memiliki alat itu, tetapi saya juga menyarankan bahwa ini adalah latihan gaya K&R kecil yang rapi: cukup tulis versi khusus kucing yang membaca satu karakter pada satu waktu dari
stdin
, keluaran masing-masing kestdout
dan kemudianusleep
sebelum melanjutkan. Pastikan untuk tidak membangun keluaran standar , atau ini akan berjalan agak tersentak-sentak.Saya menyebut ini
slowcat.c
:Kompilasi dan coba dengan
sumber
throttle tampaknya dirancang khusus untuk ini. misalnya
sumber
./configure && make
.Berikut ini adalah solusi lengkap yang tidak akan kehilangan input (lihat ide head -1 dari Mike S):
sumber
Cepat dan kotor, semua shell setiap saat (saya punya CentOS dan pv tidak datang dengan itu secara default):
... kotor karena meskipun kursnya terbatas, itu meledak pada tingkat yang saya tidak bisa memberi tahu Anda :-). Tapi ini berguna ketika Anda hanya perlu mengirim data dari satu tempat ke tempat lain (saya sedang melakukan beberapa tes socat) dan Anda tidak ingin membanjiri layar Anda dengan sampah.
sumber