Keksebacker
Ist oft hier
- Registriert
- 14. November 2011
- Beiträge
- 183
- Reaktionspunkte
- 22
- Punkte
- 38
Guten Morgen,
Vielleicht kann mir hier jemand weiterhelfen. Ich suche und probiere mir einen Wolf ...
Bin auf meinem Homeserver von Win 8.1 auf Win 10 umgestiegen.
Alles läuft wieder wie gehabt, nur bei einem Fehler find ich keine Lösung.
Zur "Sicherung" der Film- und Seriensammlung nutze ich SnapRaid.
Dazu wird täglich ein Skript ausgeführt.
Leider wirft mir dieses seit dem Umstieg am Ende einen Fehler aus.
Hier der Teil indem der Fehler scheinbar entsteht ...
Der Vollständigkeit halber hier das ganze Skript
:RunStatus wird noch ausgeführt und auch das entsprechende Logfile angelegt - "2019-01-19_08;22;31,06_status.log"
Dann wird aber scheinbar nach der falschen Datei gesucht. Oder einfach der Logfilename abgeschnitten gesucht - nämlich nur "2019-01-19_08;22;31"
Hier die Fehlermeldung:
Sieht von euch jemand den Fehler?
Unter Win 8 wurde 1:1 das gleich Skript verwendet.
Grüße
Vielleicht kann mir hier jemand weiterhelfen. Ich suche und probiere mir einen Wolf ...
Bin auf meinem Homeserver von Win 8.1 auf Win 10 umgestiegen.
Alles läuft wieder wie gehabt, nur bei einem Fehler find ich keine Lösung.
Zur "Sicherung" der Film- und Seriensammlung nutze ich SnapRaid.
Dazu wird täglich ein Skript ausgeführt.
Leider wirft mir dieses seit dem Umstieg am Ende einen Fehler aus.
Hier der Teil indem der Fehler scheinbar entsteht ...
Code:
:RunStatus
ECHO Running Status
SET atimestamp=%date%_%time::=;%
SET atimestamp=%atimestamp: =0%
snapraid status -v >> "%srpath%\log\%atimestamp%_status.log" 2>&1
SET statusresult=%ERRORLEVEL%
:CheckStatusLog
SET statuswarn=0
findstr /m "WARNING" "%srpath%\log\%atimestamp%_status.log"
IF %ERRORLEVEL%==0 (
SET statuswarn=1
)
SET statusdanger=0
findstr /m "DANGER" "%srpath%\log\%atimestamp%_status.log"
IF %ERRORLEVEL%==0 (
SET statusdanger=1
)
Code:
@ECHO off
CHCP 65001 > nul
SET param=%~1
IF NOT "%param%"=="" (
IF "%param%"=="skipdel" (
ECHO Skipping deleted file threshold check...
) ELSE IF "%param%"=="skipdiff" (
ECHO Skipping diff check...
) ELSE IF "%param%"=="skipscrub" (
ECHO Skipping scrub routine...
) ELSE (
ECHO.
ECHO skipdel = skips deleted files threshold check.
ECHO skipdiff = skips diff check ^(and delete threshold^).
ECHO skipscrub = skips scrub routine^(s^).
EXIT /b
)
)
:Config
REM If password has a &, escape it with ^. So pass&word = pass^&word.
SET emailto=***
SET emailfrom=***
SET gmailuser=***
SET gmailpass=***
SET srpath=C:\snapraid
SET delthresh=100
:CheckRunning
MD %srpath%\log\
tasklist /FI "IMAGENAME eq snapraid.exe" 2>NUL | find /I /N "snapraid.exe">NUL
IF NOT "%ERRORLEVEL%"=="0" goto RunDiff
SET atimestamp=%date%_%time::=;%
SET atimestamp=%atimestamp: =0%
ECHO Can not run task because snapraid.exe instance exists
ECHO Can not run task because snapraid.exe instance exists > "%srpath%\log\%atimestamp%_sync.log" 2>&1
mailsend -smtp "smtp.gmail.com" -starttls -port 587 -auth -t "%emailto%" +cc +bc -f "%emailfrom%" -sub "SnapRAID Already Running at Triggered Time" -M "empty" -user "%gmailuser%" -pass "%gmailpass%"
EXIT /B 555
:RunDiff
IF "%param%"=="skipdiff" GOTO RunSync
ECHO Running diff check
SET atimestamp=%date%_%time::=;%
SET atimestamp=%atimestamp: =0%
snapraid diff -v > "%srpath%\log\%atimestamp%_diff.log" 2>&1
rxrepl -f "%srpath%\log\%atimestamp%_diff.log" -o "%srpath%\removed.cnt" --no-backup --no-bom -i -s ".*?(\d+) removed\r\n.*" -r "\1"
rxrepl -f "%srpath%\log\%atimestamp%_diff.log" -o "%srpath%\added.cnt" --no-backup --no-bom -i -s ".*?(\d+) added\r\n.*" -r "\1"
SET /p intrem=<"%srpath%\removed.cnt"
SET /p intadd=<"%srpath%\added.cnt"
DEL "%srpath%\removed.cnt"
DEL "%srpath%\added.cnt"
:CheckRemoved
IF "%param%"=="skipdel" GOTO RunSync
IF %intrem% GTR %delthresh% (
mailsend -smtp "smtp.gmail.com" -starttls -port 587 -auth -t "%emailto%" +cc +bc -f "%emailfrom%" -sub "SnapRAID not running: %intrem% files removed." -M "%atimestamp%. %intrem% removed. %intadd% added." -user "%gmailuser%" -pass "%gmailpass%"
EXIT /B 999
)
:RunSync
ECHO Running sync
SET atimestamp=%date%_%time::=;%
SET atimestamp=%atimestamp: =0%
snapraid sync -v --test-io-cache=32 > "%srpath%\log\%atimestamp%_sync.log" 2>&1
SET syncresult=%ERRORLEVEL%
REM rxrepl -f "%srpath%\log\%atimestamp%_sync.log" -a --no-backup --no-bom -i -s "\d+\%%,\s+\d+\sMiB.*?\r\n" -r ""
:RunScrubN
IF "%param%"=="skipscrub" GOTO RunStatus
ECHO Running scrub of new data
SET atimestamp=%date%_%time::=;%
SET atimestamp=%atimestamp: =0%
snapraid scrub -p new -v --test-io-cache=32 > "%srpath%\log\%atimestamp%_scrub1.log" 2>&1
SET scrubnresult=%ERRORLEVEL%
REM rxrepl -f "%srpath%\log\%atimestamp%_scrub1.log" -a --no-backup --no-bom -i -s "\d+\%%,\s+\d+\sMiB.*?\r\n" -r ""
:RunScrubO
IF "%param%"=="skipscrub" GOTO RunStatus
ECHO Running scrub of oldest 3%%
SET atimestamp=%date%_%time::=;%
SET atimestamp=%atimestamp: =0%
snapraid scrub -p 3 -v --test-io-cache=32 > "%srpath%\log\%atimestamp%_scrub2.log" 2>&1
SET scruboresult=%ERRORLEVEL%
REM rxrepl -f "%srpath%\log\%atimestamp%_scrub2.log" -a --no-backup --no-bom -i -s "\d+\%%,\s+\d+\sMiB.*?\r\n" -r ""
:RunStatus
ECHO Running Status
SET atimestamp=%date%_%time::=;%
SET atimestamp=%atimestamp: =0%
snapraid status -v >> "%srpath%\log\%atimestamp%_status.log" 2>&1
SET statusresult=%ERRORLEVEL%
:CheckStatusLog
SET statuswarn=0
findstr /m "WARNING" "%srpath%\log\%atimestamp%_status.log"
IF %ERRORLEVEL%==0 (
SET statuswarn=1
)
SET statusdanger=0
findstr /m "DANGER" "%srpath%\log\%atimestamp%_status.log"
IF %ERRORLEVEL%==0 (
SET statusdanger=1
)
SET statusgood=GOOD
IF NOT %syncresult%==0 SET statusgood=ERROR
IF NOT %scrubnresult%==0 SET statusgood=ERROR
IF NOT %scruboresult%==0 SET statusgood=ERROR
IF NOT %statusresult%==0 SET statusgood=ERROR
IF NOT %statuswarn%==0 SET statusgood=ERROR
IF NOT %statusdanger%==0 SET statusgood=ERROR
SET statusstring=(sync:%syncresult%)(scrub1:%scrubnresult%)(scrub2:%scruboresult%)(status:%statusresult%)(warn:%statuswarn%)(danger:%statusdanger%)
SET diffstring=(REM:%intrem%)(ADD:%intadd%)
mailsend -smtp "smtp.gmail.com" -starttls -port 587 -auth -t "%emailto%" +cc +bc -f "%emailfrom%" -sub "SnapRAID Status %statusgood% %statusstring% %diffstring%" -attach "%srpath%\log\%atimestamp%_status.log",text/plain,i -user "%gmailuser%" -pass "%gmailpass%"
EXIT /B 0
Dann wird aber scheinbar nach der falschen Datei gesucht. Oder einfach der Logfilename abgeschnitten gesucht - nämlich nur "2019-01-19_08;22;31"
Hier die Fehlermeldung:
Code:
Could not stat file C:\snapraid\log\2019-01-19_08;22;31
Error: Could not determine file type of C:\snapraid\log\2019-01-19_08;22;31
Error: smtp.c (711) - Could not open file for C:\snapraid\log\2019-01-19_08;22;31 reading (No such file or directory)
Error: smtp.c (779) - Could not encode attachment C:\snapraid\log\2019-01-19_08;22;31
Error: smtp.c (894) - failed to send attachment C:\snapraid\log\2019-01-19_08;22;31
Could not send mail
Zur Verarbeitung dieses Befehls sind nicht genügend Speicherressourcen verfügbar.
Sieht von euch jemand den Fehler?
Unter Win 8 wurde 1:1 das gleich Skript verwendet.
Grüße