home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
MediaPortal 1 Plugins
Popular Plugins
My TVSeries
Corrupted database
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="RoChess" data-source="post: 1014075" data-attributes="member: 18896"><p>Finally found some time to scrub script, so here goes:</p><p></p><p>[collapse]</p><p>[code=WinBatch]@Echo Off</p><p>::</p><p>:: Auto backup/restore MediaPortal databases based on integrity check.</p><p>::</p><p>:: Author » RoChess</p><p>:: Updated » July 19th 2013</p><p>::</p><p>SET BACKUP=AutoBackup</p><p>SET MEPO_PATH=Team MediaPortal\MediaPortal\database</p><p>IF EXIST "%AllUsersProfile%\Application Data\%MEPO_PATH%\*.db3" SET DB3_PATH=%AllUsersProfile%\Application Data\%MEPO_PATH%</p><p>IF EXIST "%AllUsersProfile%\%MEPO_PATH%\*.db3" SET DB3_PATH=%AllUsersProfile%\%MEPO_PATH%</p><p>IF "%DB3_PATH%"=="" GOTO Error_MePo</p><p>IF NOT EXIST "%~dp0\sqlite3.exe" GOTO Error_SQLite</p><p>:: Check to make sure MediaPortal is not still running</p><p>::</p><p>tasklist | find /i /c "MediaPortal.exe" >nul &&goto MediaPortalRunning</p><p>tasklist | find /i /c "PluginConfigLoader.exe" >nul &&goto MediaPortalRunning</p><p>tasklist | find /i /c "Moving Pictures Config.exe" >nul &&goto MediaPortalRunning</p><p>tasklist | find /i /c "MP-TVSeries-Configuration.exe" >nul &&goto MediaPortalRunning</p><p></p><p>echo Auto Backup/Restore STARTED (%DATE% -- %TIME%) >"%~dpn0.log"</p><p>echo.>>"%~dpn0.log"</p><p>CD /D "%DB3_PATH%"</p><p>FOR %%I IN (*.db3) DO (</p><p>CALL:checkSQLite "%%I"</p><p>)</p><p>echo.>>"%~dpn0.log"</p><p>echo Auto Backup/Restore FINISHED (%DATE% -- %TIME%) >>"%~dpn0.log"</p><p>:LaunchMediaPortal</p><p>:: Locating MediaPortal folder</p><p>::</p><p>IF EXIST "%ProgramFiles%\Team MediaPortal\MediaPortal\MediaPortal.exe" (</p><p> start "MediaPortal" "%ProgramFiles%\Team MediaPortal\MediaPortal\MediaPortal.exe"</p><p>) ELSE (</p><p> IF EXIST "%ProgramFiles(x86)%\Team MediaPortal\MediaPortal\MediaPortal.exe" (</p><p> start "MediaPortal" "%ProgramFiles(x86)%\Team MediaPortal\MediaPortal\MediaPortal.exe"</p><p> ) ELSE (</p><p> Goto MediaPortalNotFound</p><p> )</p><p>)</p><p>GOTO:EOF</p><p>:checkSQLite</p><p>IF %~z1 EQU 0 (</p><p> echo Aborting: "%~nx1" is ZERO bytes</p><p> echo Aborting: "%~nx1" is ZERO bytes >>"%~dpn0.log"</p><p> GOTO:EOF</p><p>)</p><p>SET Pass=No</p><p>echo PRAGMA integrity_check; | "%~dp0\sqlite3.exe" "%~dpf1" | find /c "ok" > nul &&SET Pass=Yes</p><p>IF "%Pass%"=="Yes" (</p><p> echo Updating backup for: "%~nx1"</p><p> echo Updating backup for: "%~nx1" >>"%~dpn0.log"</p><p> xcopy "%DB3_PATH%\%~nx1" "%DB3_PATH%\%BACKUP%\" /I /C /D /Y /Q >nul</p><p>)</p><p>IF "%Pass%"=="No" (</p><p> echo ERROR: DATABASE CORRUPT!</p><p> IF NOT EXIST "%DB3_PATH%\%BACKUP%\%~nx1" (</p><p> echo - No backup exists for: "%~nx1"</p><p> echo - No backup exists for: "%~nx1" >>"%~dpn0.log"</p><p> )</p><p> IF EXIST "%DB3_PATH%\%BACKUP%\%~nx1" (</p><p> echo - Restoring last-known good backup for: "%~nx1"</p><p> echo - Restoring last-known good backup for: "%~nx1" >>"%~dpn0.log"</p><p> xcopy "%DB3_PATH%\%BACKUP%\%~nx1" "%DB3_PATH%\" /I /C /Y /Q >nul</p><p> )</p><p>)</p><p>GOTO:EOF</p><p>:MediaPortalRunning</p><p>echo WARNING: MediaPortal is still running!!</p><p>echo.</p><p>echo MediaPortal and/or Configuration tools are still active.</p><p>echo Try it again later, after giving it more time to finish.</p><p>GOTO ErrorDelay</p><p>:MediaPortalNotFound</p><p>echo WARNING: MediaPortal *NOT* Found!!</p><p>echo.</p><p>echo Unable to locate MediaPortal in the default location.</p><p>echo Please adjust this script manually to use your custom folder.</p><p>goto ErrorDelay</p><p>:Error_MePo</p><p>echo ABORTING: MediaPortal databases not found</p><p>echo.</p><p>echo Nothing to do, please verify your MediaPortal installation.</p><p>GOTO ErrorDelay</p><p>:Error_SQLite</p><p>echo ABORTING: SQLite.exe command-line tool missing!</p><p>echo.</p><p>echo Download binary shell for Windows from: [URL]http://www.sqlite.org/download.html[/URL]</p><p>echo Unzip and copy sqlite3.exe to:</p><p>echo.</p><p>echo "%~dp0"</p><p>GOTO ErrorDelay</p><p>:ErrorDelay</p><p>echo.</p><p>echo This window will self-destruct in a few seconds.</p><p>echo.</p><p>ping 1.1 -n 1 -w 5000 >nul</p><p>GOTO:EOF</p><p>[/code][/collapse]</p><p></p><p>To make it easier, I've attached script+sqlite3.exe in a ZIP file.</p><p></p><p>Function:</p><p></p><p>- It will use sqlite3.exe tool to verify all the DB3 databases did not go corrupt.</p><p>- If DB3 passes check, it will make a fresh backup.</p><p>- If check fails, it will auto-recover last-known good backup.</p><p>- After it backed-up/restored all the databases, it will launch MediaPortal (it also does a check to make sure MePo is not running)</p><p></p><p>Use this script to replace the method in which you normally launch MediaPortal.</p></blockquote><p></p>
[QUOTE="RoChess, post: 1014075, member: 18896"] Finally found some time to scrub script, so here goes: [collapse] [code=WinBatch]@Echo Off :: :: Auto backup/restore MediaPortal databases based on integrity check. :: :: Author » RoChess :: Updated » July 19th 2013 :: SET BACKUP=AutoBackup SET MEPO_PATH=Team MediaPortal\MediaPortal\database IF EXIST "%AllUsersProfile%\Application Data\%MEPO_PATH%\*.db3" SET DB3_PATH=%AllUsersProfile%\Application Data\%MEPO_PATH% IF EXIST "%AllUsersProfile%\%MEPO_PATH%\*.db3" SET DB3_PATH=%AllUsersProfile%\%MEPO_PATH% IF "%DB3_PATH%"=="" GOTO Error_MePo IF NOT EXIST "%~dp0\sqlite3.exe" GOTO Error_SQLite :: Check to make sure MediaPortal is not still running :: tasklist | find /i /c "MediaPortal.exe" >nul &&goto MediaPortalRunning tasklist | find /i /c "PluginConfigLoader.exe" >nul &&goto MediaPortalRunning tasklist | find /i /c "Moving Pictures Config.exe" >nul &&goto MediaPortalRunning tasklist | find /i /c "MP-TVSeries-Configuration.exe" >nul &&goto MediaPortalRunning echo Auto Backup/Restore STARTED (%DATE% -- %TIME%) >"%~dpn0.log" echo.>>"%~dpn0.log" CD /D "%DB3_PATH%" FOR %%I IN (*.db3) DO ( CALL:checkSQLite "%%I" ) echo.>>"%~dpn0.log" echo Auto Backup/Restore FINISHED (%DATE% -- %TIME%) >>"%~dpn0.log" :LaunchMediaPortal :: Locating MediaPortal folder :: IF EXIST "%ProgramFiles%\Team MediaPortal\MediaPortal\MediaPortal.exe" ( start "MediaPortal" "%ProgramFiles%\Team MediaPortal\MediaPortal\MediaPortal.exe" ) ELSE ( IF EXIST "%ProgramFiles(x86)%\Team MediaPortal\MediaPortal\MediaPortal.exe" ( start "MediaPortal" "%ProgramFiles(x86)%\Team MediaPortal\MediaPortal\MediaPortal.exe" ) ELSE ( Goto MediaPortalNotFound ) ) GOTO:EOF :checkSQLite IF %~z1 EQU 0 ( echo Aborting: "%~nx1" is ZERO bytes echo Aborting: "%~nx1" is ZERO bytes >>"%~dpn0.log" GOTO:EOF ) SET Pass=No echo PRAGMA integrity_check; | "%~dp0\sqlite3.exe" "%~dpf1" | find /c "ok" > nul &&SET Pass=Yes IF "%Pass%"=="Yes" ( echo Updating backup for: "%~nx1" echo Updating backup for: "%~nx1" >>"%~dpn0.log" xcopy "%DB3_PATH%\%~nx1" "%DB3_PATH%\%BACKUP%\" /I /C /D /Y /Q >nul ) IF "%Pass%"=="No" ( echo ERROR: DATABASE CORRUPT! IF NOT EXIST "%DB3_PATH%\%BACKUP%\%~nx1" ( echo - No backup exists for: "%~nx1" echo - No backup exists for: "%~nx1" >>"%~dpn0.log" ) IF EXIST "%DB3_PATH%\%BACKUP%\%~nx1" ( echo - Restoring last-known good backup for: "%~nx1" echo - Restoring last-known good backup for: "%~nx1" >>"%~dpn0.log" xcopy "%DB3_PATH%\%BACKUP%\%~nx1" "%DB3_PATH%\" /I /C /Y /Q >nul ) ) GOTO:EOF :MediaPortalRunning echo WARNING: MediaPortal is still running!! echo. echo MediaPortal and/or Configuration tools are still active. echo Try it again later, after giving it more time to finish. GOTO ErrorDelay :MediaPortalNotFound echo WARNING: MediaPortal *NOT* Found!! echo. echo Unable to locate MediaPortal in the default location. echo Please adjust this script manually to use your custom folder. goto ErrorDelay :Error_MePo echo ABORTING: MediaPortal databases not found echo. echo Nothing to do, please verify your MediaPortal installation. GOTO ErrorDelay :Error_SQLite echo ABORTING: SQLite.exe command-line tool missing! echo. echo Download binary shell for Windows from: [URL]http://www.sqlite.org/download.html[/URL] echo Unzip and copy sqlite3.exe to: echo. echo "%~dp0" GOTO ErrorDelay :ErrorDelay echo. echo This window will self-destruct in a few seconds. echo. ping 1.1 -n 1 -w 5000 >nul GOTO:EOF [/code][/collapse] To make it easier, I've attached script+sqlite3.exe in a ZIP file. Function: - It will use sqlite3.exe tool to verify all the DB3 databases did not go corrupt. - If DB3 passes check, it will make a fresh backup. - If check fails, it will auto-recover last-known good backup. - After it backed-up/restored all the databases, it will launch MediaPortal (it also does a check to make sure MePo is not running) Use this script to replace the method in which you normally launch MediaPortal. [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
MediaPortal 1 Plugins
Popular Plugins
My TVSeries
Corrupted database
Contact us
RSS
Top
Bottom