<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Backup_DELL_WXP.bat</id>
	<title>Backup DELL WXP.bat - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Backup_DELL_WXP.bat"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Backup_DELL_WXP.bat&amp;action=history"/>
	<updated>2026-09-22T23:24:52Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Backup_DELL_WXP.bat&amp;diff=1956&amp;oldid=prev</id>
		<title>Joan a 10:26, 17 març 2009</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Backup_DELL_WXP.bat&amp;diff=1956&amp;oldid=prev"/>
		<updated>2009-03-17T10:26:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;El fitxer s'ha modificat per tal d'aconseguir els següents requisits:&lt;br /&gt;
*hi ha d'haver un log del resultat del backup&lt;br /&gt;
*jo vull que cada carpeta sigui un fitxer independent, comprimit, i que s'envïi directament de la carpeta TEMP al destí en el disc de xarxa.&lt;br /&gt;
*depurar el script original per treure la palla: res de dies de la setmana, i només m'interessa backups complets.&lt;br /&gt;
*a vegades estic a casa i a vegades estic al local. Com es gestiona? Fico la variable SERVER&lt;br /&gt;
&lt;br /&gt;
El problema que hi ha en el script original és que matxaca el fitxer de destí, i si he canviat el config, aleshores de fet la informació es perd en el backup destí. Podria pensar que tinc una còpia i en realitat no tenir-la.&lt;br /&gt;
&lt;br /&gt;
En el fitxer original, en la carpeta C:\Documents and Settings\Administrador\Configuración local\Temp\backup es copien tots els directoris, i quan s'ha fet tota la còpia es comprimeix a un sol fitxer. En el meu cas vull un comprimit per a cada carpeta.&lt;br /&gt;
&lt;br /&gt;
Un altre dels problemes que m'he trobat és entre la distinció de directori i fitxer. Per distingir entre directori i fitxer es buscar un ., però aleshores C:\pixtuff_2.3 no és un directori vàlid. Els directoris es copien amb XCOPY, i els fitxers amb COPY.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
&lt;br /&gt;
REM backup_DELL_WXP.bat &lt;br /&gt;
REM Version 1.01, 25-11-08, Joan Quintana&lt;br /&gt;
REM http://wikijoan.dyndns.org&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
REM Usage---&lt;br /&gt;
REM   &amp;gt; BackupScript&lt;br /&gt;
&lt;br /&gt;
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION&lt;br /&gt;
&lt;br /&gt;
REM ---Configuration Options---&lt;br /&gt;
&lt;br /&gt;
REM Location where 7-Zip is installed on your computer.&lt;br /&gt;
REM The default is in a folder, '7-Zip' in your Program Files directory.&lt;br /&gt;
SET InstallLocationOf7Zip=%ProgramFiles%\7-Zip&lt;br /&gt;
&lt;br /&gt;
REM Usage variables.&lt;br /&gt;
SET exe7Zip=%InstallLocationOf7Zip%\7z.exe&lt;br /&gt;
REM SET dirTempBackup=%TEMP%\backup&lt;br /&gt;
SET dirTempBackup=C:\backup&lt;br /&gt;
&lt;br /&gt;
SET filBackupConfig=backup_DELL_WXP_config.txt&lt;br /&gt;
&lt;br /&gt;
SET DATE=%date /t%&lt;br /&gt;
SET Year=%DATE:~8,2%&lt;br /&gt;
SET Month=%DATE:~3,2%&lt;br /&gt;
SET Day=%DATE:~0,2%&lt;br /&gt;
SET DATE=%Day%%Month%%Year%&lt;br /&gt;
&lt;br /&gt;
SET SERVER=192.168.1.130&lt;br /&gt;
REM SET SERVER=wikijoan.dyndns.org&lt;br /&gt;
&lt;br /&gt;
REM inicio el servidor SSH en el servidor.&lt;br /&gt;
REM wget.exe és la versió per a Windows de wget, i l'he descarregat de http://pages.interlog.com/~tcharron/wgetwin.html&lt;br /&gt;
C:\wget.exe http://%SERVER%/admin/prova_script.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
REM Validation.&lt;br /&gt;
IF NOT EXIST %filBackupConfig% (&lt;br /&gt;
  ECHO No configuration file found, missing: %filBackupConfig% &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
  GOTO End&lt;br /&gt;
)&lt;br /&gt;
IF NOT EXIST &amp;quot;%exe7Zip%&amp;quot; (&lt;br /&gt;
  ECHO 7-Zip is not installed in the location: %dir7Zip% &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
  ECHO Please update the directory where 7-Zip is installed. &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
  GOTO End&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
ECHO Starting to copy files. &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
IF NOT EXIST &amp;quot;%dirTempBackup%&amp;quot; MKDIR &amp;quot;%dirTempBackup%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
FOR /f &amp;quot;skip=1 tokens=*&amp;quot; %%A IN (%filBackupConfig%) DO (&lt;br /&gt;
  SET Current=%%~A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  IF NOT EXIST &amp;quot;!Current!&amp;quot; (&lt;br /&gt;
    ECHO ERROR! Not found: !Current! &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
  ) ELSE (&lt;br /&gt;
    ECHO Copiant i comprimint: !Current! &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
&lt;br /&gt;
    REM Determine if the entry is a file or directory.&lt;br /&gt;
    IF &amp;quot;%%~xA&amp;quot;==&amp;quot;&amp;quot; (&lt;br /&gt;
      REM Directory.&lt;br /&gt;
		SET Destination=%dirTempBackup%\%%~pnxA&lt;br /&gt;
		XCOPY &amp;quot;!Current!&amp;quot; &amp;quot;!Destination!&amp;quot; /v /c /i /g /h /q /r /y /e &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
		START &amp;quot;Compressing Backup. DO NOT CLOSE&amp;quot; /belownormal /wait &amp;quot;%exe7Zip%&amp;quot; a -tzip -r -mx5 %dirTempBackup%\%%~pnxA\%%~pnxA.zip &amp;quot;!Destination!&amp;quot;  &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
		ECHO Enviant al servidor via pscp &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
		C:\pscp.exe -r -pw **** %dirTempBackup%\%%~pnxA\%%~pnxA.zip joan@%SERVER%:/home/joan/disc_xarxa/DELL_WXP &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
		ECHO Cleaning up. &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
		IF EXIST &amp;quot;%dirTempBackup%&amp;quot; RMDIR /s /q &amp;quot;%dirTempBackup%&amp;quot;&lt;br /&gt;
    ) ELSE (&lt;br /&gt;
&lt;br /&gt;
      REM File. Compte perquè si hi ha un directori amb un punt, fallarà (C:\per ex, pixtuff_2.3)&lt;br /&gt;
		SET Destination=%dirTempBackup%		&lt;br /&gt;
		COPY /v /y &amp;quot;!Current!&amp;quot; &amp;quot;!Destination!&amp;quot; &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
		START &amp;quot;Compressing Backup. DO NOT CLOSE&amp;quot; /belownormal /wait &amp;quot;%exe7Zip%&amp;quot; a -tzip -r -mx5 %dirTempBackup%\%%~nxA.zip %dirTempBackup%\%%~nxA  &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
		ECHO Enviant al servidor via pscp &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
		C:\pscp.exe -r -pw **** %dirTempBackup%\%%~nxA.zip joan@%SERVER%:/home/joan/disc_xarxa/DELL_WXP &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
		Cleaning up. &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
		IF EXIST &amp;quot;%dirTempBackup%&amp;quot; RMDIR /s /q &amp;quot;%dirTempBackup%&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	ECHO. &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
  )&lt;br /&gt;
)&lt;br /&gt;
ECHO Done copying files. &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
ECHO. &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:End&lt;br /&gt;
ECHO Finished. &amp;gt;&amp;gt; C:\backup_DELL_WXP%DATE%.log&lt;br /&gt;
ECHO.&lt;br /&gt;
&lt;br /&gt;
ENDLOCAL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Automatitzar les còpies==&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
Penell de control del WXP -&amp;gt; Tasques planificades&lt;br /&gt;
&lt;br /&gt;
Ho he planificat per tal que s'executi cada 2 dies, a les 11 del matí. Per defecte, he de posar la variable SERVER=192.168.1.130, que és la IP del Servidor Ubuntu en la xarxa local de Joan Blanques.&lt;br /&gt;
&lt;br /&gt;
==BackupConfig.txt==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==wget.exe==&lt;br /&gt;
El servidor SSH està sempre tancat. Per tant, per fer la còpia, el mateix script ha d'engegar el servidor SSH. Això ho faig executant un script PHP. Amb linux això ho faig amb wget, i amb Windows amb un equivalent que he trobat: wget.exe.&lt;br /&gt;
&lt;br /&gt;
wget.exe és la versió per a Windows de wget, i l'he descarregat de http://pages.interlog.com/~tcharron/wgetwin.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\wget.exe http://%SERVER%/admin/prova_script.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
L'únic problema (solucionable) és que hi ha programat un script per aturar el servidor SSH cada hora, i podria ser que s'aturés mentre estic fent una còpia.&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, novembre 2008&lt;br /&gt;
[[Categoria: Backup]]&lt;br /&gt;
[[Categoria: Administració de Sistemes]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>