Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Täglicher Sync von A nach B mit Robocopy

Frage Entwicklung Batch & Shell

Mitglied: go4java

go4java (Level 1) - Jetzt verbinden

02.02.2011, aktualisiert 18.10.2012, 8940 Aufrufe, 9 Kommentare

Hallo,
ich habe ein Win 2003 System (WHS) mit max. 2TB gespiegelten Daten (internen Platten).
Als Backup-Platte verwende ich eine externe eSATA-Platte (2TB).
Ein geplantes Batchfile (täglich 17:00 Uhr) soll alle DATEN von d:\ nach e:\ syncen (analog rsync):
robocopy.exe "%Quelle%" "%Ziel%" /MIR /COPYALL /ETA /R:0 /W:0 /LOG:logfile.log
Im Prinzip funktioniert das schon ganz gut, aber einige Dinge sollen besser laufen:
Die Logfile ist mir zu lang - wie kann man die Ausgabe ins logfile so begrenzen, dass folgende Infos weggeschrieben werden:
- kurze Statistik, wie lange dauert es, wieviel Ordner/Files sind betroffen (keine Details)
- Block PURGE: was wurde im Ziel gelöscht
- Block COPY: was wurde kopiert (nur die Folder/Files, die wirklich verändert wurden, sonst nichts)
Im Resultat also eine möglichst kleine Logfile mit allen relevanten Infos.
Vielen Dank und Gruß
Mitglied: 90776
02.02.2011 um 23:44 Uhr
hi

nur einmal ein kleiner tipp:

wenn du 1. und 2. und 3. willst,
dann benutz kein robocopy sondern schreib selber ein programm...

sorry das musste einfach raus

warum willst du alles ändern???
die log datei ist zu lang... musst du halt ein wenig scrollen

Punkt 2 und 3
steht ja gekürzt ganz unten

und alles was du willst steht ja im log, must du einfach suchen

Grüsse
Switcher
Bitte warten ..
Mitglied: 60730
03.02.2011, aktualisiert 18.10.2012
Moin,

du benutzt ja nur ein Logfile und das wird immer wieder neu geschrieben - von daher macht das "so" eigentlich keinen Sinn.

Trotzdem... ein paar Demozeilen zum spielen - jeder dir noch unbekannte Befehl kennt /?

robocopy.exe "%Quelle%" "%Ziel%" /MIR /COPYALL /ETA /R:0 /W:0 /LOG:logfile.log
  • Du schaust dir das Llogfile genauer an und stellstg fest - deine Infos sind nach einer Reihe von --- Zeichen zu finden
find /n "--" logfile.log
  • Du schaust genauer und es ist der letzte Block mit einer Zeile mit ganz vielen "---" wenn man jetzt die Zeilennummer verhackstückeln könnte, wäre ja schon der nächste Ansatz.
for /f "delims=[:]" %a in ('find /n "--" E:\test\logfile.ini') do set info=%a
  • ok jetzt hat man die Zeilenzahl - wie weiter?
more +%info% logfile.log
  • aha und nun?
  • vielleicht in ein neues anderes Logfile schreiben?
more +%info% logfile.log>neues.log - oder das logfile gleich mit Datum benamsen? - dazu gibts ein mit viel Mühe geschriebenes und nicht umsonst gelobtes Tut vom Meister Biber - Batch und Datum - empfehle ich dir an dieser Stelle (spätestens)

echo %date% %time% >>alteslog.log
more +%info% logfile.log>>alteslog.log

Ich vermute, mit den gesammelten Infos hast du schon den gröbsten Weg geschafft - wenns wo klemmt und du /? wirklich nicht weiterhelfen sollte...
Wir sind hier und freuen uns immer, wenn die Lehrschnippsel es geschafft haben einen leeren Kopf mit Wissen und Interesse zu füllen.

ich schreibe leider keine kompletten Bätche mehr - da ist der Lernerfolg meistens für Allerwertesten

Gruß
Bitte warten ..
Mitglied: Biber
03.02.2011 um 08:02 Uhr
Moin go4java,

dir ist aber bekannt, dass RoboCopy auch ein paar Parameter zum Eindampfen/Verschlanken des Logs vorgesehen hat?

Beispiel:
> RoboCopy /??? 
.... 
... 
   Logging options 
                /L : List only - don't copy, timestamp or delete any files. 
               /NP : No Progress - don't display % copied. 
         /LOG:file : Output status to LOG file (overwrite existing log). 
        /LOG+:file : Output status to LOG file (append to existing log). 
                     UNILOG and UNILOG+ will output to a unicode logfile ## 
               /TS : Include Source file Time Stamps in the output. 
               /FP : Include Full Pathname of files in the output. 
               /NS : No Size - don't log file sizes. 
               /NC : No Class - don't log file classes. 
              /NFL : No File List - don't log file names. 
              /NDL : No Directory List - don't log directory names. 
              /TEE : Output to console window, as well as the log file. 
              /NJH : No Job Header. 
              /NJS : No Job Summary. 
...
Hast du denn die schon mal angetestet?

Und zum Thema "Log enthält zu viele Details/ist zu lang"..
Frisst das denn Heu? Oder geht die Kapazität der 3,5"-Diskette zur Neige?

Mein Ansatz wäre bei Logdateien, doch lieber ein paar Details zuviel in Petto zu haben - was ich schnell wissen was will wie "Enthält die Logdatei die Strings "Failed" , "Denied" ,"Skipped", "Error" oder ähnliches - das greif ich doch eh mit einen "FindStr"-Befehl ab und scroll nicht mit einem Editor durch den Mist..
Deshalb lieber die "normal-ausführliche" Logdatei - und bei zu klärenden Problemen sogar die /verbose-Variante.

ich hab schon mehr Zeit verplempert mit kurzen knackigen Logdateien, bei denen im Fehlerfall der Programmierer nur vorgesehen hatte, ein höchst informatives "Fehler -Programm wird beendet" rauszuschreiben oder gar als letzte Meldung im Logfile "Programm gestartet am 03.02.2011 um 10:24..." und das wars.

Grüße
Biber
Bitte warten ..
Mitglied: go4java
03.02.2011 um 08:50 Uhr
Danke zusammen, wenn auch der Ton z.T. nicht besonders freundlich ist.
Schaue mir Eure Hinweise an. Gruß
Bitte warten ..
Mitglied: 90776
03.02.2011 um 17:44 Uhr
aber was erwartest du denn???

du müsstes diverse schleifen haben, die dir alles berechnen und filtern, also wenn du ca. 3 Tage hast um eine "perfekte" Log-Datei zu haben kannst du das ja gerne machen, aber für was????

Warum musst du wissen was gelöscht und was kopiert wurde???

und ausserdem steht ja wirklich alles im Log

gelöscht heisst *Extra Datei
kopiert ist alles was Prozent hat
and alles andere ist schon vorhanden

Grüsse
Bitte warten ..
Mitglied: go4java
03.02.2011 um 18:20 Uhr
...also, meine Erwartung ist und war lediglich, das Logfile auf eine für mich erforderliche Länge zurückzuschneiden, mit einem Detail-Output ausschließlich das DELTA beinhaltend. Ein "Dashboard" auf einen Blick. Meine Freizeit ist sehr begrenzt und ich kann und will mich nicht mit den Augen durch ein unleserliches Logfile durchwühlen - wenn anderen das File gefällt, bitteschön. Gruß
Bitte warten ..
Mitglied: 90776
03.02.2011 um 18:39 Uhr
ok aber was raubt dir mehr zeit?

2 min pro log,

oder

3 Tage skript schreiben
Bitte warten ..
Mitglied: go4java
03.02.2011 um 21:00 Uhr
Lösung war die Anwendung der erweiterten Parameter:
robocopy.exe "%Quelle%" "%Ziel%" /MIR /COPYALL /ETA /R:0 /W:0 /LOG:logfile.log /NS /NC /NFL /NDL
Bitte warten ..
Mitglied: Biber
03.02.2011 um 21:35 Uhr
Kleine Anmerkung zu deiner Parameterkombination.
Wenn du du doch mit /NFL und /NDL schon sagst "no file lyrics" und "no dir lyrics"...
Was vermutest du denn, welchen Einfluss bei nicht angezeigten Dateien und Ordnern
die zusätzlichen Spaltenausblendungen /NC und /NS haben könnten?.

Zusätzlich allerdings würde ich den Header weglassen mit /NJH.

Di kannst das Ganze gefahrlos simulieren am CMD-Prompt mit zwei zusätzlichen Schaltern
  • /L für /LassMaSehenWasPassierenWürde und
  • /TEE.

Beispiel (wenn du vorher %quelle% und %ziel% geSETzt hast
robocopy.exe "%Quelle%" "%Ziel%" /L /MIR /COPYALL /ETA /R:0 /W:0 /LOG:logfile.log /NS /NC /NFL /NDL /tee|findstr /n .
...dann siehst du gleich, wie viele Log-Zeilen übrig bleiben würden.
Bitte warten ..
Ähnliche Inhalte
Windows Tools
Robocopy kopiert täglich unveränderte Dateien
Frage von Tobias15Windows Tools8 Kommentare

Hallo zusammen, Ich habe zwar sehr aufmerksam die Fälle gelesen wo der unscharfe /FFT Parameter erfolgreich dazu führt, dass ...

Backup
Ersatz für Robocopy für Sync vom NAS auf USB HDD
gelöst Frage von StefanKittelBackup4 Kommentare

Hallo, aktuell nutze ich in einem Szenario Robocopy mit einem Script zum kopieren von Sicherungen auf eine USB HDD. ...

Windows Tools
Tägliche Differenzsicherung mit Robocopy: Archivbit oder Zeitstempel nehmen? Und wie erfolgt ein Restore?
Frage von robocopWindows Tools7 Kommentare

Hallo in die Runde, ich plane die Automatisierung eines bisher händisch durchgeführten Backups eines Windows 7 Groupshares. Kunde möchte ...

Netzwerkmanagement
Täglicher Netzwerkausfall
gelöst Frage von torte79Netzwerkmanagement51 Kommentare

Hallo zusammen, ich habe folgendes Problem: Wir betreiben ein WLAN in unserem Lager. Dort sind AccessPoints von Cisco installiert. ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 6 StundenBatch & Shell7 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 8 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 23 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Batch & Shell
Neuste Datei via PowerShell kopieren
gelöst Frage von kaiuwe28Batch & Shell11 Kommentare

Hallo zusammen, ich hatte mir mit Hilfe der Suche im Forum einen kleinen Code von colinardo rausgesucht und versucht ...