<?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_del_sistema</id>
	<title>Backup del sistema - 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_del_sistema"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Backup_del_sistema&amp;action=history"/>
	<updated>2026-08-30T10:02:59Z</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_del_sistema&amp;diff=248735&amp;oldid=prev</id>
		<title>Joan a 00:51, 5 feb 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Backup_del_sistema&amp;diff=248735&amp;oldid=prev"/>
		<updated>2012-02-05T00:51:23Z</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;En aquest document faig investigacions i aproximacions per tal d'aconseguir fer backups en els diferents ambents que necessito: Linux, Windows, ús de SSH i RSYNC, backups incrementals si o no, backups comprimits si o no,...&lt;br /&gt;
&lt;br /&gt;
==backup bàsic de directoris i fitxers==&lt;br /&gt;
http://banyut.obolog.com/copias-seguridad-ubuntu-crontab-rsync-dd-65952&lt;br /&gt;
&lt;br /&gt;
 cp -rp ~/joan /media/sdb5/backup/diumenge&lt;br /&gt;
&lt;br /&gt;
és un backup funcional, però totalment ineficient perquè cada vegada es transmet tota la informació, encara que els canvis hagin estat mínims.&lt;br /&gt;
&lt;br /&gt;
==backup amb rsync==&lt;br /&gt;
 rsync -altgvbp /home/banyut /media/sdb5/backup/domingo&lt;br /&gt;
&lt;br /&gt;
d'aquesta manera només es fa còpia dels arxius nous i els modificats des de l'últim backup&lt;br /&gt;
&lt;br /&gt;
opcions:&lt;br /&gt;
*-a: archive mode. Es guarden els fitxers amb els seus permisos,... de manera recursiva dins les carpetes&lt;br /&gt;
*-l, --links                 copy symlinks as symlinks&lt;br /&gt;
*-t, --times                 preserve times&lt;br /&gt;
*-v: verbose&lt;br /&gt;
*-b, --backup. With this option, preexisting destination files are  renamed  as each  file is transferred or deleted.  You can control where the backup file goes and what (if any) suffix gets appended using the --backup-dir and --suffix options.&lt;br /&gt;
*-p, --perms. This  option  causes  the receiving rsync to set the destination permissions to be the same as the source permissions.&lt;br /&gt;
 *-g, --group. This  option  causes  rsync  to set the group of the destination file to be the same as the source file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ubuntu Server (local) confia en linuxserver (institut)==&lt;br /&gt;
des de l'insti això funciona&lt;br /&gt;
 scp /home/joan/mysql_backup/copia_wikidb141108.dmp joan@wikijoan.dyndns.org:/tmp&lt;br /&gt;
 scp /home/joan/mysql_backup/copia_wikidb141108.dmp joan@wikijoan.dyndns.org: -&amp;gt; per copiar en el home de l'usuari joan&lt;br /&gt;
&lt;br /&gt;
em demana password&lt;br /&gt;
&lt;br /&gt;
Si miro el man, veig que no hi ha l'opció de ficar el password. La única possibilitat de què no em demani el password és l'opció -i identity file, que és la tècnica de clau pública/clau privada (el servidor on em vull connectar haurà de confiar en aquesta connexió).&lt;br /&gt;
&lt;br /&gt;
el paquet ssh-keygen ja està instal.lat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux-server:~ # ssh-keygen -t dsa&lt;br /&gt;
Generating public/private dsa key pair.&lt;br /&gt;
Enter file in which to save the key (/root/.ssh/id_dsa):&lt;br /&gt;
Enter passphrase (empty for no passphrase):&lt;br /&gt;
Enter same passphrase again:&lt;br /&gt;
Your identification has been saved in /root/.ssh/id_dsa.&lt;br /&gt;
Your public key has been saved in /root/.ssh/id_dsa.pub.&lt;br /&gt;
The key fingerprint is:&lt;br /&gt;
48:a5:2d:04:5d:29:bc:78:1c:87:02:b5:c2:ad:03:9d root@linux-server&lt;br /&gt;
You have new mail in /var/spool/mail/root&lt;br /&gt;
linux-server:~ #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Segueixo els mateixos passos que vaig fer en el seu dia entre el UStudio i el Ubuntu Server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux-server# scp ~/.ssh/id_dsa.pub joan@wikijoan.dyndns.org:/tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
entro per ssh en el servidor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux-server# ssh joan@wikijoan.dyndns.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joan@server$ cat /tmp/id_dsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;br /&gt;
joan@server$ chmod 0600 $HOME/.ssh/authorized_keys&lt;br /&gt;
joan@server$ rm -f /tmp/id_dsa.pub&lt;br /&gt;
joan@server$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ara ja puc fer una còpia sense que em demani el password:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux-server# scp /home/joan/mysql_backup/copia_wikidb141108.dmp joan@wikijoan.dyndns.org: &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i no em demana el password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Preparant els punts de muntatge==&lt;br /&gt;
&lt;br /&gt;
Lo ideal seria que les diferents màquines (portàtil, institut Linux, institut BBDD,...) es connectessin directament al disc de xarxa per a fer les còpies de seguretat. En el disc de xarxa hi ha un servidor samba (puc fer PUT, GET), però no un servidor SSH. Per sincronitzar amb rsync necessito el servidor SSH. Hauré d'investigar més en aquesta línia&lt;br /&gt;
&lt;br /&gt;
Si tinc el servidor Ubuntu sempre encès, com és la idea, aleshores puc fer uns punts de muntatge permanents, i aleshores les diferents màquines es sicronitzen per fer backup amb els servidors (contra aquests punts de muntatge que són les carpetes compartides del disc de xarxa). Una possibilitat és ficar els punts de muntatge en el fitxer /etc/fstab, per ex.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//192.168.1.15/PUBLIC /media/PUBLIC cifs rw,user 0 0&lt;br /&gt;
//192.168.1.15/PRIVAT /media/PRIVAT cifs user=guest,password=****,rw,user 0 0&lt;br /&gt;
//192.168.1.15/LINKAT /home/joan/LINKAT cifs user=guest,password=****,rw,user 0 0&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
però el problema és que m'apareixen les icones dels recursos compartits a l'escriptori i a 'Llocs'. M'he barallat una mica per tal que no surtin, i segur que es pot (està relacionat amb la configuració del GNome), però encara no ho sé fer.&lt;br /&gt;
&lt;br /&gt;
Una altra possibilitat és muntar les carpetes en un script d'inici que executi el root (el script /home/joan/.bashrc no ens val perquè l'executa joan, no el root, i el mount necessita sudo per executar-se)&lt;br /&gt;
&lt;br /&gt;
script punts_muntatge.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo joe /etc/init.d/punts_muntatge.sh&lt;br /&gt;
$ sudo update-rc.d punts_muntatge.sh defaults&lt;br /&gt;
 Adding system startup for /etc/init.d/punts_muntatge.sh ...&lt;br /&gt;
   /etc/rc0.d/K20punts_muntatge.sh -&amp;gt; ../init.d/punts_muntatge.sh&lt;br /&gt;
   /etc/rc1.d/K20punts_muntatge.sh -&amp;gt; ../init.d/punts_muntatge.sh&lt;br /&gt;
   /etc/rc6.d/K20punts_muntatge.sh -&amp;gt; ../init.d/punts_muntatge.sh&lt;br /&gt;
   /etc/rc2.d/S20punts_muntatge.sh -&amp;gt; ../init.d/punts_muntatge.sh&lt;br /&gt;
   /etc/rc3.d/S20punts_muntatge.sh -&amp;gt; ../init.d/punts_muntatge.sh&lt;br /&gt;
   /etc/rc4.d/S20punts_muntatge.sh -&amp;gt; ../init.d/punts_muntatge.sh&lt;br /&gt;
   /etc/rc5.d/S20punts_muntatge.sh -&amp;gt; ../init.d/punts_muntatge.sh&lt;br /&gt;
&lt;br /&gt;
$ sudo chmod +x punts_muntatge.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fitxer punts_muntatge.sh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#punts de muntatge per al disc de xarxa&lt;br /&gt;
mount -t cifs //192.168.1.15/PUBLIC /mnt/PUBLIC -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/PRIVAT /mnt/PRIVAT -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/fotos /mnt/fotos -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/UbuntuServer /mnt/UbuntuServer -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/DELL_Studio /mnt/DELL_Studio -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/DELL_WXP /mnt/DELL_WXP -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/LINKAT /mnt/LINKAT -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/BBDD /mnt/BBDD -o username=guest,password=****,rw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
encara que la carpeta fotos no està protegida amb password, és necessari ficar username i password per tal que funcioni en la consola. (en la consola, sudo)&lt;br /&gt;
&lt;br /&gt;
Tanmateix, com veurem tot seguit, és una mala idea fer els punts de muntatge en el directori /mnt. Així que els nous punts de muntatge estaran a dins del home:&lt;br /&gt;
&lt;br /&gt;
fitxer punts_muntatge.sh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#punts de muntatge per al disc de xarxa&lt;br /&gt;
mount -t cifs //192.168.1.15/PUBLIC /home/joan/disc_xarxa/PUBLIC -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/PRIVAT /home/joan/disc_xarxa/PRIVAT -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/fotos /home/joan/disc_xarxa/fotos -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/UbuntuServer /home/joan/disc_xarxa/UbuntuServer -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/DELL_Studio /home/joan/disc_xarxa/DELL_Studio -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/DELL_WXP /home/joan/disc_xarxa/DELL_WXP -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/LINKAT /home/joan/disc_xarxa/LINKAT -o username=guest,password=****,rw&lt;br /&gt;
mount -t cifs //192.168.1.15/BBDD /home/joan/disc_xarxa/BBDD -o username=guest,password=****,rw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Preparant les còpies remotes des de Windows: Putty, PSCP==&lt;br /&gt;
&lt;br /&gt;
El Putty es pot fer servir des de la línia de comandes. Està explicat a &lt;br /&gt;
&lt;br /&gt;
http://the.earth.li/~sgtatham/putty/0.60/puttydoc.txt&lt;br /&gt;
&lt;br /&gt;
Ho trobarem en el capítol 8: ''3.8 The PuTTY command line''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; putty.exe [-ssh | -telnet | -rlogin | -raw] [user@]host&lt;br /&gt;
C:\&amp;gt; putty.exe -ssh -pw **** joan@wikijoan.dyndns.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per a fer còpies la solució passa per una altra eina de la col.lecció del Putty: '''PSCP''':&lt;br /&gt;
&lt;br /&gt;
Ho trobem al capítol 5: ''Chapter 5: Using PSCP to transfer files securely''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Chapter 5: Using PSCP to transfer files securely&lt;br /&gt;
&lt;br /&gt;
       PSCP, the PuTTY Secure Copy client, is a tool for transferring files&lt;br /&gt;
       securely between computers using an SSH connection.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una manera d'utilitzar-ho per fer còpies des de l'ordinador Windows al disc de xarxa és:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; pscp.exe -r -pw **** C:/hosting_linux.txt joan@wikijoan.dyndns.org:/mnt/PUBLIC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
-r copy directories recursively&lt;br /&gt;
-p preserve file attributes&lt;br /&gt;
-v show verbose messages&lt;br /&gt;
-C enable compression&lt;br /&gt;
-i private key file for authentification&lt;br /&gt;
-batch disable all interactive prompts&lt;br /&gt;
&lt;br /&gt;
per copiar tot un directori:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; pscp.exe -r -pw **** C:/pentagrama joan@wikijoan.dyndns.org:/mnt/DELL_WXP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
funciona tot i que hi ha alguns arxius que diu que no els pot obrir perquè Permission Denied. Quan ho torno a fer algun dels arxius que no em deixava ara em deixa, i alguns altres em dóna Permission Denied. Per tant, és un comportament erràtic.&lt;br /&gt;
&lt;br /&gt;
el login joan/**** és el que em permet l'accés a la sessió de SSH. Per entrar al recurs compartit no cal ficar password, perquè la comanda per fer el punt de muntatge ja vaig introduir el password.&lt;br /&gt;
&lt;br /&gt;
Si faig un backup a un directori local del servidor Ubuntu, aleshores no hi ha problema de permisos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; pscp.exe -r -pw **** C:/pentagrama joan@wikijoan.dyndns.org:/home/joan/backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important: el problema no ve pel pscp o SSH, sinó que és intern al Ubuntu Server&lt;br /&gt;
Des del Ubuntu Server, la 1a comanda falla i la 2a no:&lt;br /&gt;
 $ cp -R pentagrama /mnt/PUBLIC&lt;br /&gt;
 $ sudo cp -R pentagrama /mnt/PUBLIC&lt;br /&gt;
&lt;br /&gt;
És un problema de permisos, que es pot solucionar de diverses maneres. Una possibilitat és que la connexió amb pscp es faci des de l'usuari root (això de moment no es pot fer perquè per defecte a Ubuntu l'usuari root no pot iniciar una sessió).&lt;br /&gt;
Una altra possibilitat seria que el propietari dels punts de muntatge sigui joan i no root (són root perquè al comanda mount només funcionava com a sudo)&lt;br /&gt;
&lt;br /&gt;
mount només funciona com a sudo, però després d'haver-lo creat puc canviar el propietari:&lt;br /&gt;
&lt;br /&gt;
 sudo chown joan /mnt/BBDD&lt;br /&gt;
 sudo chown -R joan /mnt/BBDD&lt;br /&gt;
&lt;br /&gt;
i també canviem la pertanyença del grup:&lt;br /&gt;
&lt;br /&gt;
 sudo chgrp joan /mnt/BBDD&lt;br /&gt;
 sudo chgrp -R joan /mnt/BBDD&lt;br /&gt;
&lt;br /&gt;
Tanmateix, no ho solucionem, ja que si faig còpies en local contra el directori no funciona:&lt;br /&gt;
 $ cp -R /home/joan/pentagrama /mnt/pentagrama&lt;br /&gt;
continua fallant per un tema de permisos, encara que tots els fitxers i directoris involucrats són propietari de joan.&lt;br /&gt;
&lt;br /&gt;
Potser el problema és que el directori /mnt té un caràcter especial...&lt;br /&gt;
&lt;br /&gt;
 $ mkdir /home/joan/BBDD&lt;br /&gt;
 $ sudo mount -t cifs //192.168.1.15/BBDD /home/joan/BBDD -o username=guest,password=****,rw&lt;br /&gt;
&lt;br /&gt;
com que només l'usuari root pot fer mount, automàticament el propietari i grup són root, tot i que tothom hi té accés.&lt;br /&gt;
&lt;br /&gt;
 C:\&amp;gt; pscp.exe -r -pw **** C:/hosting_linux.txt joan@wikijoan.dyndns.org:/home/joan/BBDD&lt;br /&gt;
&lt;br /&gt;
i ara funciona sense problemes. Conclusió: el directori /mnt és especial a nivell de permisos.&lt;br /&gt;
&lt;br /&gt;
Recordem que una altra possibilitat que segur que funciona és connectar-me per pscp com a root, però primer hauríem d'habilitar l'inici de sessió de root.&lt;br /&gt;
&lt;br /&gt;
==Script de backup per a windows==&lt;br /&gt;
http://www.michaelhorowitz.com/backupscript.html&lt;br /&gt;
&lt;br /&gt;
Segueixo aquest document:&lt;br /&gt;
http://www.pcmech.com/article/windows-batch-script-to-backup-data/&lt;br /&gt;
&lt;br /&gt;
===Zip===&lt;br /&gt;
Eina en mode consola per a comprimir. És lliure, és un projecte de SourceForge (http://www.7-zip.org/) &lt;br /&gt;
&lt;br /&gt;
===Fitxer de configuració BackupConfig.txt===&lt;br /&gt;
És on diem quins directoris i/o fitxers volem copiar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Enter file and folder names, one per line.C:\Documents and Settings\Jason Faulkner\Desktop&lt;br /&gt;
C:\Documents and Settings\Jason Faulkner\My Documents\Important Files&lt;br /&gt;
C:\Scripts\BackupScript.bat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aquest fitxer estarà en el mateix directori que el script&lt;br /&gt;
&lt;br /&gt;
===script original backup_DELL_WXP.bat===&lt;br /&gt;
&lt;br /&gt;
Es fa una còpia local al directori C:\Backups&lt;br /&gt;
&lt;br /&gt;
El script l'anomenarem script_DELL_WXP.bat&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
&lt;br /&gt;
REM BackupScript&lt;br /&gt;
REM Version 1.01, Updated: 2008-05-21&lt;br /&gt;
REM By Jason Faulkner (articles[-at-]132solutions.com)&lt;br /&gt;
&lt;br /&gt;
REM Performs full or incremental backups of folders and files configured by the user.&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 Folder location where you want to store the resulting backup archive.&lt;br /&gt;
REM This folder must exist. Do not put a '\' on the end, this will be added automatically.&lt;br /&gt;
REM You can enter a local path, an external drive letter (ex. F:) or a network location (ex. \\server\backups)&lt;br /&gt;
SET BackupStorage=C:\Backup&lt;br /&gt;
&lt;br /&gt;
REM Which day of the week do you want to perform a full backup on?&lt;br /&gt;
REM Enter one of the following: Sun, Mon, Tue, Wed, Thu, Fri, Sat, *&lt;br /&gt;
REM Any day of the week other than the one specified below will run an incremental backup.&lt;br /&gt;
REM If you enter '*', a full backup will be run every time.&lt;br /&gt;
SET FullBackupDay=*&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 +-----------------------------------------------------------------------+&lt;br /&gt;
REM | Do not change anything below here unless you know what you are doing. |&lt;br /&gt;
REM +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
REM Usage variables.&lt;br /&gt;
SET exe7Zip=%InstallLocationOf7Zip%\7z.exe&lt;br /&gt;
SET dirTempBackup=%TEMP%\backup&lt;br /&gt;
SET filBackupConfig=BackupConfig.txt&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%&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%&lt;br /&gt;
  ECHO Please update the directory where 7-Zip is installed.&lt;br /&gt;
  GOTO End&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
REM Backup variables.&lt;br /&gt;
FOR /f &amp;quot;tokens=1,2,3,4 delims=/ &amp;quot; %%a IN ('date /t') DO (&lt;br /&gt;
  SET DayOfWeek=%%a&lt;br /&gt;
  SET NowDate=%%d-%%b-%%c&lt;br /&gt;
  SET FileDate=%%b-%%c-%%d&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
IF {%FullBackupDay%}=={*} SET FullBackupDay=%DayOfWeek%&lt;br /&gt;
IF /i {%FullBackupDay%}=={%DayOfWeek%} (&lt;br /&gt;
  SET txtBackup=Full&lt;br /&gt;
  SET swXCopy=/e&lt;br /&gt;
) ELSE (&lt;br /&gt;
  SET txtBackup=Incremental&lt;br /&gt;
  SET swXCopy=/s /d:%FileDate%&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
ECHO Starting to copy files.&lt;br /&gt;
IF NOT EXIST &amp;quot;%dirTempBackup%&amp;quot; MKDIR &amp;quot;%dirTempBackup%&amp;quot;&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;
  IF NOT EXIST &amp;quot;!Current!&amp;quot; (&lt;br /&gt;
    ECHO ERROR! Not found: !Current!&lt;br /&gt;
  ) ELSE (&lt;br /&gt;
    ECHO Copying: !Current!&lt;br /&gt;
    SET Destination=%dirTempBackup%\!Current:~0,1!%%~pnxA&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;
      XCOPY &amp;quot;!Current!&amp;quot; &amp;quot;!Destination!&amp;quot; /v /c /i /g /h /q /r /y %swXCopy%&lt;br /&gt;
    ) ELSE (&lt;br /&gt;
      REM File.&lt;br /&gt;
      COPY /v /y &amp;quot;!Current!&amp;quot; &amp;quot;!Destination!&amp;quot;&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
)&lt;br /&gt;
ECHO Done copying files.&lt;br /&gt;
ECHO.&lt;br /&gt;
&lt;br /&gt;
SET BackupFileDestination=%BackupStorage%\Backup_%FileDate%_%txtBackup%.zip&lt;br /&gt;
&lt;br /&gt;
REM If the backup file exists, remove it in favor of the new file.&lt;br /&gt;
IF EXIST &amp;quot;%BackupFileDestination%&amp;quot; DEL /f /q &amp;quot;%BackupFileDestination%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ECHO Compressing backed up files. (New window)&lt;br /&gt;
REM Compress files using 7-Zip in a lower priority process.&lt;br /&gt;
START &amp;quot;Compressing Backup. DO NOT CLOSE&amp;quot; /belownormal /wait &amp;quot;%exe7Zip%&amp;quot; a -tzip -r -mx5 &amp;quot;%BackupFileDestination%&amp;quot; &amp;quot;%dirTempBackup%\&amp;quot;&lt;br /&gt;
ECHO Done compressing backed up files.&lt;br /&gt;
ECHO.&lt;br /&gt;
&lt;br /&gt;
ECHO Cleaning up.&lt;br /&gt;
IF EXIST &amp;quot;%dirTempBackup%&amp;quot; RMDIR /s /q &amp;quot;%dirTempBackup%&amp;quot;&lt;br /&gt;
ECHO.&lt;br /&gt;
&lt;br /&gt;
:End&lt;br /&gt;
ECHO Finished.&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;
Aquest fitxer és l'original, sense cap modificació. Fa una còpia completa dels directoris. La millor solució per mi és editar el fitxer BackupConfig.txt de manera que només es fa còpia dels directoris actius (aquells amb projectes oberts).&lt;br /&gt;
&lt;br /&gt;
En el lloc pertinent es comenta com ha quedat finalment el fitxer backup_DELL_WXP.bat&lt;br /&gt;
&lt;br /&gt;
===script modificat backup_DELL_WXP.bat===&lt;br /&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;
El script final està a [[Backup_DELL_WXP.bat]]&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;
==RSYNC i SSH: còpies remotes entre màquines LINUX==&lt;br /&gt;
&lt;br /&gt;
Anem ja concretant com farem el backup.&lt;br /&gt;
&lt;br /&gt;
Per defecte amb el Ubuntu ve instal.lat el ssh client. Si vull un servidor SSH:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install ssh&lt;br /&gt;
&lt;br /&gt;
i perquè vull un servidor SSH a cada màquina? Doncs perquè vull centralitzar els scripts en el servidor, i des del servidor connectar-me a les diferents màquines (Linux). Pensem que en el servidor és on tindré les tasques cron que em dirà quan s'executen els scripyd. És millor tenir-ho tot centralitzat en el servidor.&lt;br /&gt;
&lt;br /&gt;
 rsync -ave ssh --numeric-ids --delete joan@192.168.1.131:/home/joan/hola.txt /home/joan/disc_xarxa/DELL_Studio&lt;br /&gt;
 rsync -ave ssh --numeric-ids --delete joan@192.168.1.131:/home/joan/how_to_ubuntu /home/joan/disc_xarxa/DELL_Studio&lt;br /&gt;
&lt;br /&gt;
on disc_xarxa/DELL_Studio és un punt de muntatge al disc de xarxa IOMEGA. Aquestes dues comandes funcionen per copiar un fitxer individual o per copiar un directori sencer de forma recursiva, però em demana el password.&lt;br /&gt;
&lt;br /&gt;
Per tal que no em demani el password he de fer un -password-file o bé utilitzar la tècnica clau pública/clau privada. Ara és el portàtil (DELL_Studio) el que ha de confiar en el Servidor. Per tant, la clau es genera en el servidor (que fa de client SSH) i s'ha de depositar en el portàtil (servidor SSH). Aquest mètode està explicat en SSH i el tornem a repetir. L'avantatge de fer-ho d'aquesta manera és que genero una sola clau, i aquesta l'he de ficar en els diferents servidors SSH que pugui tenir: DELL_Studio, LINKAT de l'institut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joan@ubuntu$ ssh-keygen -t dsa&lt;br /&gt;
Your identification has been saved in /home/joan/.ssh/id_dsa.&lt;br /&gt;
Your public key has been saved in /home/joan/.ssh/id_dsa.pub.&lt;br /&gt;
The key fingerprint is:&lt;br /&gt;
13:02:00:96:c1:e4:07:80:70:ab:11:7c:ff:1e:7d:ad&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es genera un fitxer per guardar la clau a /home/joan/.ssh/id_dsa.&lt;br /&gt;
&lt;br /&gt;
Quan demana passphrase deixar-ho en blanc (Enter)&lt;br /&gt;
&lt;br /&gt;
copiar ~/.ssh/id_dsa.pub al portàtil (i al llapis, perquè el necessitaré copiar-lo al LINKAT):&lt;br /&gt;
&lt;br /&gt;
 joan@ubuntu$ scp ~/.ssh/id_dsa.pub joan@192.168.1.131:/tmp&lt;br /&gt;
&lt;br /&gt;
ara en el DELL_Studio (192.168.1.131) (a on volem accedir sense password):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joan@portatil$ cat /tmp/id_dsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;br /&gt;
joan@portatil$ chmod 0600 $HOME/.ssh/authorized_keys&lt;br /&gt;
joan@portatil$ rm -f /tmp/id_dsa.pub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fem la prova en el client:&lt;br /&gt;
&lt;br /&gt;
i em puc connectar al DELL_Studio (portàtil) per fer una sessio ssh o per fer un rsync sense que em demani el password:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;joan@ubuntu$ rsync -ave ssh --numeric-ids --delete joan@192.168.1.131:/home/joan/how_to_ubuntu /home/joan/disc_xarxa/DELL_Studio&lt;br /&gt;
joan@ubuntu$ ssh joan@192.168.1.131&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per fer un log del resultat puc fer:&lt;br /&gt;
59 20 * * * /home/joan/scripts_backup/backup_DELL_Studio.sh &amp;gt;/home/joan/scripts_backup /logs/sync-machine1.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
Ara bé, com que vull fer un mail amb un informe dels resultats, m'interessa que en l'execució del script es generi el log i aleshores enviar-lo per mail.&lt;br /&gt;
&lt;br /&gt;
Senzillament, rsync té l'opció --log-file=FILE&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -ave ssh --numeric-ids --delete joan@192.168.1.131:/home/joan/how_to_ubuntu /home/joan/disc_xarxa/DELL_Studio --log-file=/home/joan/scripts_backup/log/DELL_Studio_251108.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://tldp.org/HOWTO/SMB-HOWTO-11.html &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export MAILTO=&amp;quot;cursice&amp;quot;&lt;br /&gt;
&lt;br /&gt;
usuari=cursice&lt;br /&gt;
&lt;br /&gt;
home=/home/cursice&lt;br /&gt;
&lt;br /&gt;
nomhost=festuc&lt;br /&gt;
&lt;br /&gt;
dirBackup=elsMeusBackups&lt;br /&gt;
&lt;br /&gt;
aGuardar=/home/cursice/&lt;br /&gt;
&lt;br /&gt;
arxiuBackup=$dirBackup/cursice$(date +%Y%m%d).tgz&lt;br /&gt;
&lt;br /&gt;
guarda=3&lt;br /&gt;
&lt;br /&gt;
rsh -l$usuari $nomhost ls &amp;quot;&amp;gt;&amp;quot; $ArxiuBackup tar -zcf $usuari@$nomhost:$backupfile $aGuardar echo Backup $arxiuBackup finalitzat quants=$(rsh $nomhost -l$usuari ls -t $dirBackup/&amp;quot;cursice*.tgz&amp;quot;| wc -l )&lt;br /&gt;
&lt;br /&gt;
num=$(($quants-$guarda))&lt;br /&gt;
&lt;br /&gt;
echo $quants $num&lt;br /&gt;
&lt;br /&gt;
if [ $num -gt 0 ] then l=$(rsh $nomhost -l$usuari ls -t $dirBackup/&amp;quot;cursice*.tgz&amp;quot; | tail -n $num ); echo esborrant $l ; rsh $nomhost -l$usuari &amp;quot;\rm&amp;quot; -f $l fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, novembre 2008&lt;br /&gt;
[[Categoria: Backup]]&lt;br /&gt;
[[Categoria: Bash]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>