Mit BITS große Dateien im Hintergrund übertragen

Der Background Intelligent Transfer Service (BITS) ist ein Transferprotokoll von Microsoft, dessen Zweck vor allem darin besteht, Daten so im Hintergrund zu übertragen, dass es dabei nur ungenutzte Bandbreiten konsumiert und die Netz-Performance der aktiven Programme nicht beeinträchtigt. Ein weiterer Vorteil besteht darin, dass BITS eine unterbrochene Dateiübertragung selbständig wieder aufnehmen kann.

Die bekannteste Anwendung, die BITS einsetzt, ist Windows Update, das Patches möglichst unbemerkt auf den Rechner überträgt. Wenn man BITS in eigenen Applikationen verwenden möchte, dann bietet BITS dafür ein API. Allerdings kann man BITS auch der Kommandozeile nutzen, um große Dateien über das Netz zu kopieren. Dafür gibt es unter Windows das Tool bitsadmin.

BITS-fähiger Web-Server erforderlich

Wenn man Dateien mittels BITS über HTTP bzw. HTTPS hinauf- oder herunterladen möchte, dann benötigt man auf der Gegenstelle einen Web-Server, der den Background Intelligent Transfer Service unterstützt. Erwartungsgemäß ist dazu der IIS in der Lage, wenn man die dafür nötige Extension installiert.

Download von UNC-Pfaden möglich

BITS lässt sich aber auch über das Dateisystem einsetzen und akzeptiert als Quellen für Downloads sowohl UNC-Pfade als auch URLs vom Typ file://. Daher kann man BITS nutzen, um große Dateien über das LAN oder vor allem ein WAN zu übertragen, ohne die Leitung zu überlasten.

Job-Steuerung mit bitsadmin

bitsadmin ist wie robocopy ein mächtiges Kommandozeilen-Tool mit zahlreichen Optionen. Die Basisfunktionen lassen sich indes mit relativ wenigen Schaltern erledigen. Im ersten Schritt muss man einen Job anlegen, den man danach mit dem Transfer bestimmter Dateien betraut:

bitsadmin /create <jobname>

Das Tool quittiert diesen Aufruf mit einer solchen Ausgabe:

Created job {BFEDB859-F0E1-45ED-83D8-7F390C4C357E}.

Danach ordnet man dem Job einen Dateitransfer zu:

bitsadmin /addfile <jobname> file://server/pfad/datei.ext C:\pfad\datei.ext

Bei diesem Aufruf folgt <jobname> die Kopierquelle, hinter der man die Zieldatei angeben muss.

Heikle Syntax

Dabei ist zu beachten, dass Letztere nicht nur aus einem Dateinamen besteht, sondern die volle Pfadangabe enthalten muss. Außerdem sind Pfadangaben zu vermeiden, die Leerzeichen enthalten, sie sorgen bei der Job-Ausführung für Probleme. Für größere Kopieraufträge kann man bitsadmin auch mehrere Aufträge erteilen, indem man die Paare aus Quelle und Ziel in eine Textdatei schreibt und ihren mit dem Schalter /addfileset übergibt.

Sobald der Job mit Kopieraufträgen bestückt ist, kann man diese mit

bitsadmin /resume <jobname>

starten. Während die Übertragung läuft, kann man den Status mit

bitsadmin /info <jobname> /verbose

beobachten. Meldet das Programm den Abschluss seiner Tätigkeit, dann wird man im Zielverzeichnis vergeblich nach den gewünschten Dateien suchen. Vielmehr ist noch der Aufruf

bitsadmin /complete <jobname>

notwendig, um den Vorgang ordnungsgemäß abzuschließen.

Keine Kommentare

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht angezeigt. Wenn mit Ihrer angegebenen Mail-Adresse ein Gravatar verknüpft ist, dann wird dieser neben Ihrem Kommentar eingeblendet.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
  • Mail-Adressen werden im Seitenquelltext unkenntlich gemacht, um sie vor dem automatischen Erfassen durch Spammer zu schützen.

Weitere Informationen über Formatierungsoptionen