WinFuture-Forum.de: Batch Programmierung - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Batch Programmierung Restic per batch


#1 Mitglied ist offline   matb9899 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 06. Oktober 19
  • Reputation: 1

geschrieben 06. Oktober 2019 - 20:37

Hallo,

ich kann zwar (etwas) programmieren, aber ich benötige Hilfe für ein Batch-Script. Es ist nur ein Versucht als Test

@echo off
title Sicherung
echo.
color 06
cls

set nlw1=https://user44.webdav.hidrive.strato.com
set user1=user44
set pass1=passuser44
set RESTIC_PASSWORD=44user


:NAS
echo der NAS-Server wird verbunden!!
net use P: %nlw5% /persistent:no /user:%user5% %pass5%

:hdd
if exist P:\nul goto sicherung
	
:False
goto NAS
	
:sicherung
C:\Users\tutu\Downloads\restic\restic.exe -r C:\Users\tutu\bkrestic --verbose backup "P:\users\user44\mein Büro"
	
:trennung
net use P: /delete
echo.
echo Netzlaufwerk wurde getrennt
	
:pause
ping localhost -n 25 -w 1000 >NUL


:ende
color 0f
cls
exit


Ich versuche eine Sicherung Lokal durchzuführen und bekomme solche Fehler:

Zitat

Der Befehl wurde erfolgreich ausgeführt.

open repository
repository 8282aaa7 opened successfully, password is correct
lock repository
load index files
start scan on [P:\users\user44\mein Büro"]
start backup on [P:\users\user44\mein Büro"]
scan: CreateFile \\?\P:\users\user44\mein Büro": Die Syntax für den Dateinamen, Verzeichnisnamen oder die
Datenträgerbezeichnung ist falsch.
scan finished in 0.306s: 0 files, 0 B
errot: CreateFile \\?\P:\users\user44\mein Büro": Die Syntax für den Dateinamen, Verzeichnisnamen oder die
Datenträgerbezeichnung ist falsch.
Fatal: unable to save snapshot: Lstat: CreateFile \\?P:\users\user44: Das System kann auf die Datei nicht zugreifen.
P: wurde erfolgreich gelöscht.

Netzlaufwerk wurde getrennt


aber wenn ich es manuell durchführe, funktioniert es:

Zitat

C:\Users\tutu>C:\Users\tutu\Downloads\ restic\restic.exe -r C:\Users\tutu\bkrestic --verbose backup "P:\users\user44\mein Büro"
open repository
enter password for repository:
repository 8282aaa7 opened successfully, password is correct
lock repository
load index files
using parent snapshot 924db94d
start scan on [P:\users\user44\mein Büro]
start backup on [P:\users\user44\mein Büro]
scan finished in 33.885s: 231 files, 86.500 MiB
[1:13] 80.44% 186 Files 80.889 MiB, total 231 files 86.500 MiB 0 errors ETA: 1,05

Files: 231 new, 0 changed, 0 unmodified
Dirs: 3 new, 0 changed, 0 unmodified
Data Blobs: 239 new
Tree Blobs: 4 new
Added to the repo: 81.678 MiB, 0 errors ETA 3:30

processed 231 files, 86.500 MiB in 1:32
snapshot 924db94d saved


Danke im voraus für die Hilfe

Manu

Dieser Beitrag wurde von matb9899 bearbeitet: 06. Oktober 2019 - 20:42

0

Anzeige



#2 Mitglied ist offline   MTKalkhoff 

  • Gruppe: aktive Mitglieder
  • Beiträge: 128
  • Beigetreten: 15. Juli 08
  • Reputation: 21

geschrieben 06. Oktober 2019 - 20:53

ersetzte mal die Zeile:

C:\Users\tutu\Downloads\restic\restic.exe -r C:\Users\tutu\bkrestic --verbose backup "P:\users\user44\mein Büro"

durch

C:\Users\tutu\Downloads\restic\restic.exe -r C:\Users\tutu\bkrestic --verbose backup "\\P\users\user44\mein Büro"
0

#3 Mitglied ist offline   matb9899 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 06. Oktober 19
  • Reputation: 1

geschrieben 07. Oktober 2019 - 10:00

Hallo MTKalkhoff,

die Zeile habe ich geändert:

Zitat

C:\Users\tutu\Downloads\restic\restic.exe -r C:\Users\tutu\bkrestic --verbose backup "\\P\users\user44\mein Büro"


dann bekomme ich diese Fehlermeldung

Zitat

Der Befehl wurde erfolgreich ausgeführt.

\\P\users\user44\mein Büro" does not exist, skipping
Fatal: all target directories/files do not exist
P: wurde erfolgreich gelöscht.

Netzlaufwerk wurde getrennt


Hast du oder jemand anderen eine Idee wie ich es schaffen kann.
Ich verwende Windows 10 Home 1903

danke im voraus

Manu

Dieser Beitrag wurde von matb9899 bearbeitet: 07. Oktober 2019 - 10:05

0

#4 Mitglied ist offline   Stefan_der_held 

  • Gruppe: Offizieller Support
  • Beiträge: 13.600
  • Beigetreten: 08. April 06
  • Reputation: 620

geschrieben 07. Oktober 2019 - 12:10

Beitrag anzeigenZitat (MTKalkhoff: 06. Oktober 2019 - 20:53)

[...]"\\P\users\user44\mein Büro"


das würde nur funktionieren wenn "P" der Name des Systems (nicht das Laufwerk) ist.

@matb9899:

Was passiert wenn du folgendes machst als ausgabe:
@echo off
title Sicherung
echo.
color 06
cls

set nlw1=https://user44.webdav.hidrive.strato.com
set user1=user44
set pass1=passuser44
set RESTIC_PASSWORD=44user


:NAS
echo der NAS-Server wird verbunden!!
net use P: %nlw5% /persistent:no /user:%user5% %pass5%



danach in einer anderen Eingabeaufforderung "P" mal aufrufen und den Inhalt anzeigen lassen... habe schlicht den Verdacht, dass irgendwo Leerzeichen falsch interpretiert werden und dadurch das HIDRIVE von Strato nicht wie gewünscht eingebunden wird.

Es ist nicht selten der Fall, dass sich Befehle innerhalb einer Batch etwas anders verhalten als wenn du diese manuell ausführst.
0

#5 Mitglied ist offline   matb9899 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 06. Oktober 19
  • Reputation: 1

geschrieben 07. Oktober 2019 - 12:32

Hallo Stefan_der_held,

Script ausgeführt:

Zitat

der NAS-Server wird verbunden!!
Der Befehl wurde erfolgreich ausgeführt.


dann auf ein anderes Fenster habe ich den Befehl dir P: & dir P:\users\user44 ausgeführt und bekommen:

Zitat

Microsoft Windows [Version 10.0.18362.356]
© 2019 Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\tutu>dir P:
Volume in Laufwerk P: hat keine Bezeichnung.
Volumeseriennummer: 0000-0000

Verzeichnis von P:\

13.08.2011 13:24 <DIR> .
13.08.2011 13:24 <DIR> ..
02.02.2017 17:25 <DIR> public
03.02.2017 00:59 <DIR> users
0 Datei(en), 0 Bytes
4 Verzeichnis(se), 141.167.915.008 Bytes frei

C:\Users\tutu>dir P:\users\user44
Volume in Laufwerk P: hat keine Bezeichnung.
Volumeseriennummer: 0000-0000

Verzeichnis von P:\users\user44

07.10.2019 08:42 <DIR> .
07.10.2019 08:42 <DIR> ..
12.08.2019 11:08 <DIR> Dokumente
20.05.2019 14:20 <DIR> Faxe
0 Datei(en), 0 Bytes
2 Verzeichnis(se), 141.149.659.136 Bytes frei


Hilf es das?
0

#6 Mitglied ist offline   Stefan_der_held 

  • Gruppe: Offizieller Support
  • Beiträge: 13.600
  • Beigetreten: 08. April 06
  • Reputation: 620

geschrieben 07. Oktober 2019 - 13:41

Beitrag anzeigenZitat (matb9899: 07. Oktober 2019 - 12:32)

Hilf es das?


ja schon sehr denn das angestrebte Verzeichnis "mein Büro" existiert real aktuell nicht auf dem NAS - zumindest nicht innerhalb der geposteten Ausgabe sofern es nicht "versteckt" ist.

Sollte "mein Büro" als Dateiname dienen (was passieren kann) so mache dort am besten "meinBuero" raus (ohne Sonderzeichen, ohne Leerzeichen). Auch bei Verzeichnisnamen kann es passieren, dass die Auswertung nur bis "mein" geht, das "Büro" wird versucht als Parameter interpretiert zu werden.

Generell: Für Automatisierungen sollte das möglichst immer angewendet werden (pers. Erfahrung).

Ändere das mal entsprechend um und poste das Ergebnis.
0

#7 Mitglied ist online   DK2000 

  • Gruppe: Administration
  • Beiträge: 18.955
  • Beigetreten: 19. August 04
  • Reputation: 1.185

geschrieben 07. Oktober 2019 - 13:59

Das ist irgendein Syntax-Problem, was ich gerade nicht sehe:

Batch Ausführung:
start scan on [P:\users\user44\mein Büro"]
start backup on [P:\users\user44\mein Büro"]


In der Konsole ausgeführt.
start scan on [P:\users\user44\mein Büro]
start backup on [P:\users\user44\mein Büro]

In der Batch sind im Pfad irgendwie die abschließenden " enthalten, weswegen es wohl zu dem Problem kommt.

Bekomme es aber gerad nicht auf die Reihe, warum das so ist.
Nutella hat nur sehr wenig Vitamine.
Deswegen muss man davon relativ viel essen.
0

#8 Mitglied ist offline   Shannon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 48
  • Beigetreten: 12. Februar 13
  • Reputation: 2

geschrieben 07. Oktober 2019 - 17:27

Fehler beim Erzeugen des Verzeichnisses.

Vieleicht hilft es das 2. Argument als Var zu übergeben:

:sicherung
set TARGET="P:\users\user44\mein Büro"
C:\Users\tutu\Downloads\restic\restic.exe -r C:\Users\tutu\bkrestic --verbose backup %TARGET%



Was mir sonst noch Einfällt: Umlaute wenn die Codepages nicht zusammenpassen.
Da kann sich Batch und Kommandozeile unterschiedlich verhalten
1

#9 Mitglied ist online   DK2000 

  • Gruppe: Administration
  • Beiträge: 18.955
  • Beigetreten: 19. August 04
  • Reputation: 1.185

geschrieben 08. Oktober 2019 - 11:28

Bei mir läuft das soweit in der Batch, auch wenn ich das im Moment nur mit einem lokalen Netzlaufwerk teste.

Was mir aber beim Nachvollziehen aufgefallen ist:

set nlw1= ... <-> net use P: %nlw5%

Die Variable nlw5 gibt es gar nicht und dadurch auch gar nicht den Pfad. Aber das sollte schon viel früher einen Fehler in Verbindung mit net use geben.

Mal so auf die Schnelle gemacht zum testen:

@echo off
cls
cd /d "%~dp0"

set netpath=\\VM-SEMIANNUAL\Test restic
set networkdrive=P:
set RESTIC_PASSWORD=test

echo ======================================================================
echo Netzlaufwerk "%networkdrive%\" wird verbunden mit "%netpath%"
echo ======================================================================

net use %networkdrive% "%netpath%" /persistent:no 1> nul

if %ERRORLEVEL% NEQ 0 (
	echo.
	echo Verbindung fehlgeschlagen.
	echo.
	goto :EOF
) else (
	echo.
	echo Verbindung erfolgreich hergestellt.
	echo.
)

echo ======================================================================
echo.

restic.exe -r C:\ProgramData\restic-repo -verbose backup "P:\Ordner Leerzeichen"

echo.

echo ======================================================================
echo Netzlaufwerk "%networkdrive%\" wird getrennt
echo ======================================================================

net use P: /delete 1> nul

if %ERRORLEVEL% NEQ 0 (
	echo.
	echo Verbindung konnte nicht getrennt werden.
	echo.
) else (
	echo.
	echo Verbindung erfolgreich getrennt.
	echo.
)


======================================================================
Netzlaufwerk "P:\" wird verbunden mit "\\VM-SEMIANNUAL\Test restic"
======================================================================

Verbindung erfolgreich hergestellt.

======================================================================

open repository
repository b11c4069 opened successfully, password is correct
lock repository
load index files
using parent snapshot 10db507d
start scan on [P:\Ordner Leerzeichen]
start backup on [P:\Ordner Leerzeichen]
scan finished in 0.219s: 0 files, 0 B

Files:           0 new,     0 changed,     0 unmodified
Dirs:            0 new,     0 changed,     1 unmodified
Data Blobs:      0 new
Tree Blobs:      0 new
Added to the repo: 0 B

processed 0 files, 0 B in 0:00
snapshot 821b4f38 saved

======================================================================
Netzlaufwerk "P:\" wird getrennt
======================================================================

Verbindung erfolgreich getrennt.

Nutella hat nur sehr wenig Vitamine.
Deswegen muss man davon relativ viel essen.
1

#10 Mitglied ist offline   matb9899 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 06. Oktober 19
  • Reputation: 1

geschrieben 08. Oktober 2019 - 13:09

Danke für die schnelle Hilfe, hallo DK2000, den Fehler:

Zitat

Was mir aber beim Nachvollziehen aufgefallen ist:

set nlw1= ... <-> net use P: %nlw5%


es war nur ein Tipp Fehler von mir als ich den Beitrag getippt habe, sorry, so ist es richtig
net use P: %nlw1% /persistent:no /user:%user1% %pass1%


Heute Abend werde ich auch noch versuchen die Vorschläge zu testen, ich wollte nur euch schnell zu antworten.

Bis später.

Manu
0

#11 Mitglied ist offline   Stef4n 

  • Gruppe: aktive Mitglieder
  • Beiträge: 184
  • Beigetreten: 20. August 18
  • Reputation: 21

geschrieben 08. Oktober 2019 - 22:29

Nur mal interessehalber am Rande? Was ist denn das coole am Backup Tool restic?
0

#12 Mitglied ist offline   matb9899 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 06. Oktober 19
  • Reputation: 1

geschrieben 14. Oktober 2019 - 18:28

Shannon, es tut mir leid wegen der verspätung, es hat leider nicht funktioniert und ich bekam diese Ergebnisse:

der NAS-Server wird verbunden!!
Der Befehl wurde erfolgreich ausgeführt.

open repository
repository 8282aaa7 opened successfully, password is correct
lock repository
load index files
using parent snapshot 0e691389
start scan on [P:\users\user44\mein Büro"]
start backup on [P:\users\user44\mein Büro"]
scan: CreateFile \\?\P:\users\user44\mein Büro": Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
scan finished in 0.360s: 0 files, 0 B
error: CreateFile \\?\P:\users\user44\mein Büro": Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
Fatal: unable to save snapshot: Lstat: CreateFile \\?\P:\users\user44: Das System kann auf die Datei nicht zugreifen.
P: wurde erfolgreich gelöscht.

Netzlaufwerk wurde getrennt


noch eine Idee?

Später habe ich, statt "mein Büro" habe ich das Hauptverzeichniss gewält und es hat auch nicht funktioniert und bekam disese Ergebniss:

der NAS-Server wird verbunden!!
Der Befehl wurde erfolgreich ausgeführt.

open repository
repository 8282aaa7 opened successfully, password is correct
lock repository
load index files
using parent snapshot 7583b495
start scan on [P:\users\user44"]
start backup on [P:\users\user44"]
scan: CreateFile \\?\P:\users\user44": Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
scan finished in 0.323s: 0 files, 0 B
error: CreateFile \\?\P:\users\user44": Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.

Files: 0 new, 0 changed, 0 unmodified
Dirs: 0 new, 0 changed, 2 unmodified
Data Blobs: 0 new
Tree Blobs: 0 new
Added to the repo: 0 B

processed 0 files, 0 B in 0:00
snapshot 6d5f72bf saved
P: wurde erfolgreich gelöscht.


Netzlaufwerk wurde getrennt


==================================================================================

Stef4n:

Restic, unterstützt eine Anzahl von Speichern Back-Ends für Endlager:

  • lokale Verzeichnis
  • sFTP
  • REST server
  • AWS S3 (entweder von Amazon oder mit dem Minio Server)
  • Openstack Swift
  • BackBlaze B2
  • Microsoft Azure Blob Storage
  • Google Cloud Storage


mehrere Maschinen können Backup auf demselben Repository ohne Probleme. Das bedeutet , dass die Deduplizierung nicht nur in Betracht identitial Stücke von Dateien auf einer einzigen Maschine nehmen, sondern von jeder der Maschinen , die ein Repository teilen. Mit anderen Worten, wenn die gleiche Datei auf mehreren Computern vorhanden ist , nur eine Kopie dieser Datei wird im Repository gespeichert werden. Gleiches gilt , wenn einzelne chuncks aus einer großen Datei , die auf mehreren Maschinen identisch sind zu finden ist - nur eines dieser Stücke im Repository gespeichert ist . In einigen Fällen kann dies zu erheblichen Speicherplatzeinsparungen führen.

Und wenn du erfahren möchtest, hier ein paar Links:


Dieser Beitrag wurde von matb9899 bearbeitet: 14. Oktober 2019 - 18:50

1

#13 Mitglied ist offline   matb9899 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 06. Oktober 19
  • Reputation: 1

geschrieben 14. Oktober 2019 - 20:26

Ich habe eine vorübergehende Lösung gefunden,

@echo off
title Sicherung
echo.
color 06
cls

set nlw1=https://user44.webdav.hidrive.strato.com
set user1=user44
set pass1=passuser44
set RESTIC_PASSWORD=44user


:NAS
echo der NAS-Server wird verbunden!!
net use P: %nlw1% /persistent:no /user:%user1% %pass1%


:sicherung
set TARGET=[b]P:\users\user44\[/b]
C:\Users\tutu\Downloads\restic\restic.exe -r C:\Users\tutu\bkrestic --verbose backup %TARGET%



TARGET wird ohne Hochkomma definieren und es funktioniert (aber weil das Hauptverzeichniss kein Umlaut und Leerzeichen hat), zumindest an Anfang, ich habe noch nicht gelassen das Script bis zum Ende laufen, villeicht kommt noch den Fehler wenn das Verzeichniss "mein Büro" dran ist :-(

Aber mir würde interessieren wie kann man das Problem Beseitigen.

Dieser Beitrag wurde von matb9899 bearbeitet: 14. Oktober 2019 - 20:27

0

#14 Mitglied ist online   DK2000 

  • Gruppe: Administration
  • Beiträge: 18.955
  • Beigetreten: 19. August 04
  • Reputation: 1.185

geschrieben 14. Oktober 2019 - 23:28

Und bei mir tritt das halt nicht auf:

restic.exe -r C:\ProgramData\restic-repo -verbose backup "P:\Ordner Leerzeichen"

Wird richtig ausgeführt:

start scan on [P:\Ordner Leerzeichen]
start backup on [P:\Ordner Leerzeichen]


Verstehe da nicht, warum er bei Dir die abschließenden " in den Pfad mit einbaut. Oder muss ich das noch einmal testen, dann eventuell mit einem längeren Pfad?
Nutella hat nur sehr wenig Vitamine.
Deswegen muss man davon relativ viel essen.
0

#15 Mitglied ist offline   Shannon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 48
  • Beigetreten: 12. Februar 13
  • Reputation: 2

geschrieben 14. Oktober 2019 - 23:59

ok, dann lass die Anführungszeichen einfach weg.
set schreibt auch Leerzeichen in die Variable.
Dein PRG filtert die Anführungszeichen nicht heraus, deshalb der Fehler.

g.s.

@DK2000 wenn ich das richtig sehe, erzeugt schon das beginnende
Anführungszeichen den Fehler.
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0