Batch file TapeID in Variable schreiben
Hallo,
habe eine Problem, ich möchte bei Arcserve GFS Sicherstellen das Montag die Montagskassette, Dienstag die Dienstagskassette usw eingelegt ist, das klappt bei GFS recht gut wenn kein Feiertag dazwischen kommt oder ein user vergisst das band einzulegen.
Deshalb habe ich mir ein paar batch Dateien geschrieben welche die Kassetten verschieben.
Arcserve kann mit Command Line perfekt gesteuert werden doch nun zu meinen Problem:
Rufe ich bei Arcserver diesesn befehl auf:
ca_dbmgr -cahost 192.168.2.3 -show poolmedia GFSPOOL_DLY >c:\dly.txt
so erstellt er mir folgende Datei
SAVE SET:
NO. TAPE-NAME SERIAL# TAPEID SQ# FORMAT-ON EXPIRES-ON PURGED KB WRITTEN HOST NAME
1 F-GFSPOOL-DI-06.11.12 1300002 dae1 1 06.11.2012 23:01:56 25.10.2015 13:59:38 NO 431420224 SERVER
2 F-GFSPOOL-DO-08.11.12 1300004 7524 1 08.11.2012 23:01:58 25.10.2015 14:03:06 NO 440917568 SERVER
3 F-GFSPOOL-MI-07.11.12 1300003 763 1 07.11.2012 23:01:54 25.10.2015 14:01:18 NO 432238272 SERVER
SCRATCH SET:
NO. TAPE-NAME SERIAL# TAPEID SQ# FORMAT-ON EXPIRES-ON PURGED KB WRITTEN HOST NAME
1 F-GFSPOOL-MO-05.11.12 1300001 7805 1 05.11.2012 23:01:48 25.10.2015 13:58:00 NO 431426432 SERVER
Da das verschieben der Bänder nicht mit der Seriennummer sondern mit der ID funktioniert und sich die ID leider immer ändert bräuchte ich eine abfrage der batch Datei, ich schaffe es leider nicht
es sollte also die TAPEid der kassette mit SN 1300001 in die Variable %montag% geschrieben werden, 1300002 in die Variable %Dienstag% etc. In meinen Beispiel sollte also %montag% 7805 werden.
Somit könnte ich die Bänder mit
ca_dbmgr -cahost 192.168.2.3 -mediapool move %montag% "GFSPOOL_DLY" "GFSPOOL_DLY" scratch
verschieben.
Anbei der Link zur orginal Datei
https://dl.dropbox.com/u/39220034/backup/dly.txt
Ich würde mich sehr freuen wenn mir jemand behilflich sein könnte, irgendwie müste dies doch mit findstr oder irgendwie lösbar sein?
1000 Dank
habe eine Problem, ich möchte bei Arcserve GFS Sicherstellen das Montag die Montagskassette, Dienstag die Dienstagskassette usw eingelegt ist, das klappt bei GFS recht gut wenn kein Feiertag dazwischen kommt oder ein user vergisst das band einzulegen.
Deshalb habe ich mir ein paar batch Dateien geschrieben welche die Kassetten verschieben.
Arcserve kann mit Command Line perfekt gesteuert werden doch nun zu meinen Problem:
Rufe ich bei Arcserver diesesn befehl auf:
ca_dbmgr -cahost 192.168.2.3 -show poolmedia GFSPOOL_DLY >c:\dly.txt
so erstellt er mir folgende Datei
SAVE SET:
NO. TAPE-NAME SERIAL# TAPEID SQ# FORMAT-ON EXPIRES-ON PURGED KB WRITTEN HOST NAME
1 F-GFSPOOL-DI-06.11.12 1300002 dae1 1 06.11.2012 23:01:56 25.10.2015 13:59:38 NO 431420224 SERVER
2 F-GFSPOOL-DO-08.11.12 1300004 7524 1 08.11.2012 23:01:58 25.10.2015 14:03:06 NO 440917568 SERVER
3 F-GFSPOOL-MI-07.11.12 1300003 763 1 07.11.2012 23:01:54 25.10.2015 14:01:18 NO 432238272 SERVER
SCRATCH SET:
NO. TAPE-NAME SERIAL# TAPEID SQ# FORMAT-ON EXPIRES-ON PURGED KB WRITTEN HOST NAME
1 F-GFSPOOL-MO-05.11.12 1300001 7805 1 05.11.2012 23:01:48 25.10.2015 13:58:00 NO 431426432 SERVER
Da das verschieben der Bänder nicht mit der Seriennummer sondern mit der ID funktioniert und sich die ID leider immer ändert bräuchte ich eine abfrage der batch Datei, ich schaffe es leider nicht
es sollte also die TAPEid der kassette mit SN 1300001 in die Variable %montag% geschrieben werden, 1300002 in die Variable %Dienstag% etc. In meinen Beispiel sollte also %montag% 7805 werden.
Somit könnte ich die Bänder mit
ca_dbmgr -cahost 192.168.2.3 -mediapool move %montag% "GFSPOOL_DLY" "GFSPOOL_DLY" scratch
verschieben.
Anbei der Link zur orginal Datei
https://dl.dropbox.com/u/39220034/backup/dly.txt
Ich würde mich sehr freuen wenn mir jemand behilflich sein könnte, irgendwie müste dies doch mit findstr oder irgendwie lösbar sein?
1000 Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 194129
Url: https://administrator.de/contentid/194129
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo parkesel,
wenn ich es richtig verstanden habe, ist das mit ein paar Schleifen fix getan.
Zum Test:
Versteht sich von selbst, dass nur IDs zugewiesen werden, die auch in der Textdatei zu finden sind.
Das Ganze sollte auch ohne temporäre Datei laufen, wenn du Zeile 3 wie folgt änderst:
<code type="plain>
for /f "tokens=3,4" %%i in ('ca_dbmgr -cahost 192.168.2.3 -show poolmedia GFSPOOL_DLY^|findstr "130000"') do (
Grüße
rubberman
wenn ich es richtig verstanden habe, ist das mit ein paar Schleifen fix getan.
Zum Test:
@echo off &setlocal
for /f "tokens=3,4" %%i in ('findstr "130000" "C:\dly.txt"') do (
for %%k in ("1 montag","2 dienstag","3 mittwoch","4 donnerstag","5 freitag","6 samstag","7 sonntag") do (
for /f "tokens=1,2" %%l in (%%k) do (
if "%%i"=="130000%%l" set "%%m=%%j"
)
)
)
echo Test:
echo Montag %montag%
echo Dienstag %dienstag%
echo Mittwoch %mittwoch%
echo Donnerstag %donnerstag%
echo Freitag %freitag%
echo Samstag %samstag%
echo Sonntag %sonntag%
pause
Das Ganze sollte auch ohne temporäre Datei laufen, wenn du Zeile 3 wie folgt änderst:
<code type="plain>
for /f "tokens=3,4" %%i in ('ca_dbmgr -cahost 192.168.2.3 -show poolmedia GFSPOOL_DLY^|findstr "130000"') do (
Grüße
rubberman
Hallo parkesel.
Wie wäre es wenn du mit mehr als einer Batchdatei arbeitest und per geplantem Task die entsprechende Datei aufrufst, um deine zusätzlichen Anforderungen zu erfüllen?
Nope. Ich versuche nur mir etwas automatisierte Unterstützung bei meiner täglichen Arbeit zu verschaffen. Da ist man entweder ständig auf fremde Hilfe angewiesen oder man beschäftigt sich selbst ein wenig mit Scripting/Programmierung. Ich habe mich halt für Letzteres entschieden und Spaß damit.
Grüße
rubberman
Zitat von @parkesel:
5 Freitagsjobs und 12 Monatsjobs
Wobei ich das scratch immer verschiebe Diestags auf Dienstag usw.
jeden 28 des monats würde ich den Monatsjob ausführen, währe es machbar das die Batch Datei im Oktober bei Oktober das scratch anhängt und bei den restlichen monaten save? usw?
Sorry, bin kein Admin und verstehe nur ansatzweise was du da tust. (Immerhin hat mir Google was brauchbares zur Abkürzung GFS ausgespuckt. Das Prinzip ist mir also wenigstens klar )5 Freitagsjobs und 12 Monatsjobs
Wobei ich das scratch immer verschiebe Diestags auf Dienstag usw.
jeden 28 des monats würde ich den Monatsjob ausführen, währe es machbar das die Batch Datei im Oktober bei Oktober das scratch anhängt und bei den restlichen monaten save? usw?
Wie wäre es wenn du mit mehr als einer Batchdatei arbeitest und per geplantem Task die entsprechende Datei aufrufst, um deine zusätzlichen Anforderungen zu erfüllen?
Nope. Ich versuche nur mir etwas automatisierte Unterstützung bei meiner täglichen Arbeit zu verschaffen. Da ist man entweder ständig auf fremde Hilfe angewiesen oder man beschäftigt sich selbst ein wenig mit Scripting/Programmierung. Ich habe mich halt für Letzteres entschieden und Spaß damit.
Grüße
rubberman