Mit BITS große Dateien im Hintergrund übertragen


    Tags: , ,

    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.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Ähnliche Beiträge

    Weitere Links