Est-il possible de limiter la vitesse d'un transfert scp / sftp / rsync / etc depuis la ligne de commande? c'est-à-dire, QoS manuel sur une seule commande?

10

Plus précisément, je suis à la recherche d'un taux limite scpou sftpsession (ou tout autre appel réseau arbitraire) dans l'appel lui - même .

Par exemple, disons que je veux copier 100 Mo sur un serveur et 1 Go sur un autre. J'aimerais pouvoir exécuter les deux en même temps, mais maintenir une QoS pour une utilisation informatique "normale" - quelque peu similaire à la façon dont vous pouvez limiter le taux de bittorrent.

Existe-t-il un moyen de le faire sans toucher au matériel réseau?

J'imagine quelque chose de semblable à:

magic-qos-tool 'scp file user@host:/path/to/file'

Ou..

scp -rate 40kbps file user@host:/path/to/file
garenne
la source

Réponses:

12

Oui, il existe une application qui fonctionne exactement comme votre 'magic-qos-tool', appelée " filet ".

EXAMPLES
     trickle -u 10 -d 20 ncftp

     Launch ncftp(1) limiting its upload capacity to 10 KB/s, and download ca-
     pacity at 20 KB/s.
davr
la source
1
merci, @davr - un outil d'encapsulation vs l'apprentissage de toutes les options pour chacune est une grande amélioration :)
warren
16

scp a -let rsync a --bwlimit.

Ignacio Vazquez-Abrams
la source
ce n'était pas une option dans la manpage que j'ai vérifiée plus tôt ... ça dépend peut-être de la plate-forme?
warren
Très probablement. J'ai OpenSSH 5.3p1 ici.
Ignacio Vazquez-Abrams
XenServer 6 a scp avec l'option -l
Brian Boatright
L'indicateur -l dans scp ne fonctionne pas sur Solaris 11. Existe-t-il une autre option ou alternative?
Alchemist
7

Rsync vous facilite la tâche, il a la possibilité de le faire: --bwlimit=KBPS

kbyrd
la source
2

sftp a un drapeau de limitation, à partir de Debian 7 et Ubuntu 12.04 dans ces distributions:

-l limit

    Limite la bande passante utilisée, spécifiée en Kbit / s.

(Bien sûr, c'est un minuscule L.)

La source: stfp(1)

Thom Luxford
la source