NetWorker bringt eine Möglichkeit zur halb-automatisierten Verteilung von Software mit sich. Darüber kann man Updates der Software auf Clients ausrollen und muss sich dort nicht selber einloggen.
Damit man eine Übersicht darüber hat, welche NetWorker Version, bzw. welche Module man wo installiert hat, gibt es in der NMC den Reiter “Software Inventory”. Doch wenn man einen Client löscht (z.B. weil er dekommissioniert worden ist), verschwindet er leider nicht aus dem Software Inventory. Und die NMC bietet auch leider keine Möglichkeit, nicht mehr existierende Clients aus der Liste zu entfernen. Was also tun?Um das einmal zu demonstrieren:
Ich habe einen Client namens “ddp-e01-lap-093” angelegt, danach ein Software Inventory ausgeführt und den Client anschließend gelöscht.
Wie man sehen kann, wird er nicht mehr bei den Clients aufgeführt.
Aber unter Software Inventory wird er mir nach wie vor angezeigt. Leider gibt es keinen Button, um ihn zu löschen oder dergleichen.
Als weiteren Beweis sagt uns auch nsradmin, dass es den Client nicht gibt:
root@ddp-e01-vst-140:~/#: nsradmin NetWorker administration program. Use the "help" command for help, "visual" for full-screen mode. nsradmin> p type: nsr client; Name:ddp-e01-lap-093 No resources found for query: Name: ddp-e01-lap-093; type: nsr client; nsradmin> q root@ddp-e01-vst-140:~/#:
Und mminfo sagt ebenfalls, dass er für den Clients keine Backups findet:
root@ddp-e01-vst-140:~/#: mminfo -avot -q "client=ddp-e01-lap-093" 6095:mminfo: no matches found for the query root@ddp-e01-vst-140:~/#:
Wie wird man den Client jetzt also los?
Der Dell EMC NetWorker speichert sämtliche Informationen über das Software Repository in der “cpdb”.
Diese Datenbank findet man im /nsr/res/cpdb Verzeichnis unter Linux und unter Windows standardmäßig in C:\Program Files\EMC NetWorker\nsr\res\cpdb .
Öffnen kann man die Datenbank mit nsradmin -d <Pfad>
Also in meinem Fall unter Linux: nsradmin -d /nsr/res/cpdb
Dort gibt es den Type “NSR Installed Software”, unter dem sämtliche Informationen über die installierte Software gespeichert ist.
Dagegen lässt man ein Query laufen, welches man wie bei nsradmin üblich auch auf einen bestimmten Client filtern kann. Alternativ kann man den Filter aber auch weglassen, was dann allerdings zur Folge hat, dass man danach alle Clients aus dem Inventory löscht und diese dann noch einmal komplett neu inventarisieren muss.
In meinem Fall möchte ich dies nicht, sondern möchte nur den einen betroffenen Client löschen.
root@ddp-e01-vst-140:~/#: nsradmin -d /nsr/res/cpdb NetWorker administration program. Use the "help" command for help, "visual" for full-screen mode. nsradmin> p type:NSR Installed Software;name: ddp-e01-lap-093 type: NSR Installed Software; cluster: No; description: ; installation path: ; installation status: installation ok; installation time: 24; job ID: 0; name: DDP-E01-LAP-093; OS name: Windows NT Workstation on Intel; OS platform: win_x64; package name: Language Packs; package size (bytes): 0; package version: 9.2.1.3; parent job ID: 0; patch base version: ; platform package name: NwLangPacks; platform package version: 9.2.1.3; previous package name: ; previous package version: ; product: NetWorker; version: 9.2.1.3; type: NSR Installed Software; cluster: No; description: ; installation path: ; installation status: installation ok; installation time: 24; job ID: 0; name: DDP-E01-LAP-093; OS name: Windows NT Workstation on Intel; OS platform: win_x64; package name: Client; package size (bytes): 0; package version: 9.2.1.3; parent job ID: 0; patch base version: ; platform package name: NwClient; platform package version: 9.2.1.3; previous package name: ; previous package version: ; product: NetWorker; version: 9.2.1.3; type: NSR Installed Software; cluster: No; description: ; installation path: ; installation status: installation ok; installation time: 24; job ID: 0; name: DDP-E01-LAP-093; OS name: Windows NT Workstation on Intel; OS platform: win_x64; package name: English Language Pack; package size (bytes): 0; package version: 9.2.1.3; parent job ID: 0; patch base version: ; platform package name: en_Feature; platform package version: 9.2.1.3; previous package name: ; previous package version: ; product: NetWorker; version: 9.2.1.3; type: NSR Installed Software; cluster: No; description: ; installation path: ; installation status: installation ok; installation time: 24; job ID: 0; name: DDP-E01-LAP-093; OS name: Windows NT Workstation on Intel; OS platform: win_x64; package name: Firewall Configuration; package size (bytes): 0; package version: 9.2.1.3; parent job ID: 0; patch base version: ; platform package name: NwClientExeFirewall; platform package version: 9.2.1.3; previous package name: ; previous package version: ; product: NetWorker; version: 9.2.1.3;
Als nächstes geben wir den Zauberbuchstaben “d” (kurz für delete) ein. Danach werden wir für jeden einzelnen Eintrag, der als Resultat der letzten getätigten Abfrage herausgekommen ist, gefragt, ob wir den wirklich löschen wollen. D.h. wir löschen hier also tatsächlich nur die Einträge für den einen Client. Hätten wir vorher nicht den Filter gesetzt, würde er dies nun für alle Clients machen.
nsradmin> d type: NSR Installed Software; cluster: No; description: ; installation path: ; installation status: installation ok; installation time: 24; job ID: 0; name: DDP-E01-LAP-093; OS name: Windows NT Workstation on Intel; OS platform: win_x64; package name: Language Packs; package size (bytes): 0; package version: 9.2.1.3; parent job ID: 0; patch base version: ; platform package name: NwLangPacks; platform package version: 9.2.1.3; previous package name: ; previous package version: ; product: NetWorker; version: 9.2.1.3; Delete? y deleted resource id 15.0.71.2.0.0.0.0.52.126.7.93.10.243.46.242(1) type: NSR Installed Software; cluster: No; description: ; installation path: ; installation status: installation ok; installation time: 24; job ID: 0; name: DDP-E01-LAP-093; OS name: Windows NT Workstation on Intel; OS platform: win_x64; package name: Client; package size (bytes): 0; package version: 9.2.1.3; parent job ID: 0; patch base version: ; platform package name: NwClient; platform package version: 9.2.1.3; previous package name: ; previous package version: ; product: NetWorker; version: 9.2.1.3; Delete? y deleted resource id 14.0.71.2.0.0.0.0.52.126.7.93.10.243.46.242(1) type: NSR Installed Software; cluster: No; description: ; installation path: ; installation status: installation ok; installation time: 24; job ID: 0; name: DDP-E01-LAP-093; OS name: Windows NT Workstation on Intel; OS platform: win_x64; package name: Firewall Configuration; package size (bytes): 0; package version: 9.2.1.3; parent job ID: 0; patch base version: ; platform package name: NwClientExeFirewall; platform package version: 9.2.1.3; previous package name: ; previous package version: ; product: NetWorker; version: 9.2.1.3; Delete? y deleted resource id 12.0.71.2.0.0.0.0.52.126.7.93.10.243.46.242(1) type: NSR Installed Software; cluster: No; description: ; installation path: ; installation status: installation ok; installation time: 24; job ID: 0; name: DDP-E01-LAP-093; OS name: Windows NT Workstation on Intel; OS platform: win_x64; package name: English Language Pack; package size (bytes): 0; package version: 9.2.1.3; parent job ID: 0; patch base version: ; platform package name: en_Feature; platform package version: 9.2.1.3; previous package name: ; previous package version: ; product: NetWorker; version: 9.2.1.3; Delete? y deleted resource id 13.0.71.2.0.0.0.0.52.126.7.93.10.243.46.242(1) nsradmin> q root@ddp-e01-vst-140:~/#:
Da NetWorker allerdings die Datenbank nicht während der Laufzeit neu einließt, müssen wir jetzt leider auch den NetWorker einmal stoppen und wieder starten. Ist leider so. 🙁
Sobald der NetWorker wieder läuft, sehen wir jetzt, dass der Client nun tatsächlich verschwunden ist!

Seit 2006 bin ich im Data Protection Bereich tätig und habe über die Jahre Erfahrungen mit diversen Produkten sammeln können. Darunter NetBackup, Avamar und natürlich vor allem NetWorker. Mit NetWorker habe ich seit meiner Ausbildung zum Fachinformatiker – Fachrichtung Anwendungsentwicklung – zu tun und habe mich auch auf diesen spezialisiert – vor allem in Kombination mit der Data Domain als Backup Storage. Darüber hinaus programmiere ich gerne in der Sprache Perl, sei es nun beruflich oder privat.