Backup BBDD.bat
El script Backup_BBDD.bat és el mateix que el que fem servir per a WXP. Tanmateix, com que es correspon a un ordinador remot (institut), només ens valdrà la connexió remota (wikijoan.dyndns.org)
@ECHO OFF REM backup_BBDD.bat REM Version 1.01, 25-11-08, Joan Quintana REM http://wikijoan.dyndns.org REM Fa un backup total contra un disc de xarxa (IOMEGA) que está en un servidor SSH en la xarxa local o en la xarxa remota REM Usage--- REM > BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM ---Configuration Options--- REM Location where 7-Zip is installed on your computer. REM The default is in a folder, '7-Zip' in your Program Files directory. SET InstallLocationOf7Zip=%ProgramFiles%\7-Zip REM Usage variables. SET exe7Zip=%InstallLocationOf7Zip%\7z.exe SET dirTempBackup=%TEMP%\backup SET filBackupConfig=backup_BBDD_config.txt SET DATE=%date /t% SET Year=%DATE:~8,2% SET Month=%DATE:~3,2% SET Day=%DATE:~0,2% SET DATE=%Day%%Month%%Year% REM SET SERVER=192.168.1.130 SET SERVER=wikijoan.dyndns.org REM inicio el servidor SSH en el servidor. REM wget.exe és la versió per a Windows de wget, i l'he descarregat de http://pages.interlog.com/~tcharron/wgetwin.html C:\wget.exe http://%SERVER%/admin/prova_script.php REM Validation. IF NOT EXIST %filBackupConfig% ( ECHO No configuration file found, missing: %filBackupConfig% >> C:\backup_BBDD%DATE%.log GOTO End ) IF NOT EXIST "%exe7Zip%" ( ECHO 7-Zip is not installed in the location: %dir7Zip% >> C:\backup_BBDD%DATE%.log ECHO Please update the directory where 7-Zip is installed. >> C:\backup_BBDD%DATE%.log GOTO End ) ECHO Starting to copy files. >> C:\backup_BBDD%DATE%.log IF NOT EXIST "%dirTempBackup%" MKDIR "%dirTempBackup%" FOR /f "skip=1 tokens=*" %%A IN (%filBackupConfig%) DO ( SET Current=%%~A IF NOT EXIST "!Current!" ( ECHO ERROR! Not found: !Current! >> C:\backup_BBDD%DATE%.log ) ELSE ( ECHO Copiant i comprimint: !Current! >> C:\backup_BBDD%DATE%.log REM Determine if the entry is a file or directory. IF "%%~xA"=="" ( REM Directory. SET Destination=%dirTempBackup%\%%~pnxA XCOPY "!Current!" "!Destination!" /v /c /i /g /h /q /r /y /e >> C:\backup_BBDD%DATE%.log START "Compressing Backup. DO NOT CLOSE" /belownormal /wait "%exe7Zip%" a -tzip -r -mx5 %dirTempBackup%\%%~pnxA\%%~pnxA.zip "!Destination!" >> C:\backup_BBDD%DATE%.log ECHO Enviant al servidor via pscp >> C:\backup_BBDD%DATE%.log C:\pscp.exe -r -pw **** %dirTempBackup%\%%~pnxA\%%~pnxA.zip joan@%SERVER%:/home/joan/disc_xarxa/BBDD >> C:\backup_BBDD%DATE%.log ) ELSE ( REM File. SET Destination=%dirTempBackup%\!Current:~0,1!%%~pnxA COPY /v /y "!Current!" "!Destination!" >> C:\backup_BBDD%DATE%.log START "Compressing Backup. DO NOT CLOSE" /belownormal /wait "%exe7Zip%" a -tzip -r -mx5 %dirTempBackup%\!Current:~0,1!%%~pnxA.zip "!Destination!" >> C:\backup_BBDD%DATE%.log ECHO Enviant al servidor via pscp >> C:\backup_BBDD%DATE%.log C:\pscp.exe -r -pw **** %dirTempBackup%\!Current:~0,1!%%~pnxA.zip joan@%SERVER%:/home/joan/disc_xarxa/BBDD >> C:\backup_BBDD%DATE%.log ) ECHO Cleaning up. >> C:\backup_BBDD%DATE%.log IF EXIST "%dirTempBackup%" RMDIR /s /q "%dirTempBackup%" ECHO. >> C:\backup_BBDD%DATE%.log ) ) ECHO Done copying files. >> C:\backup_BBDD%DATE%.log ECHO. >> C:\backup_BBDD%DATE%.log :End ECHO Finished. >> C:\backup_BBDD%DATE%.log ECHO. ENDLOCAL
la única cosa que no em funciona és que en el fitxer de configuració, les línies que comencen per # a partir de la segona línia també es pensa que és un directori, i dóna error perquè el directori no existeix. Hauria de trobar la manera comparar el primer caràcter de la fila amb #, però el tema de les expressions regulars és difícil.
Automatitzar les còpies
Aquí l'únic problema és que a vegades estic treballant en el local, i a vegades a casa, doncs és un portàtil. El normal és fer les còpies al local perque la connexió és LAN i a casa la connexió és lenta. Per tant, he de programar una tasca de Windows que s'executi al matí (varios matins tenint en compte que normalment en el portàtil treballo amb Ubuntu).
Penell de control del BBDD -> Tasques planificades
Ho he planificat per tal que s'executi cada 2 dies, a les 11 del matí. Per defecte, he de posar la variable SERVER=wikijoan.dyndns.org, que és la IP del Servidor Ubuntu en la xarxa local de Joan Blanques.
backup_BBDD_config.txt
La idea és que només es copien els directoris amb projectes actius. Els projectes tancats es fa una còpia inicial i ja està. Si un projecte es reobre, aleshores descomentar la línia.
creat per Joan Quintana Compte, novembre 2008