Canvis

Jump to navigation Jump to search

Backup utilitzant crontab

5.616 octets eliminats, 18:46, 14 feb 2011
Pàgina blanquejada
L’objectiu d'aquest article és muntar backups de fitxers i directoris automics. visca el barça som els putos amus vale!!
jajajajajajajajajajajjaja
 
Horas (de 0 a 23)
 
Dia (de 1 a 31)
 
Mes (de 1 a 12)
 
Dia de la semana (de 0 a 7, donde 0 o 7 es domingo)
 
usuario (opcional)
 
orden a ejecutar</pre>
<br> Un asterisc en qualsevol de les primeres 5 columnes indica tots, és a dir si volem que quelcom s’execute tots els mesos en la columna del mes podrem un asterisc.<br>En realitat és un poc mas complex però de moment ja ens val així.<br>Com funcionen estes columnes.<br>
 
5 * * * * se ejecutara el minuto 5 de cada hora todos los días.
 
0 2 * * * a las 2:00H en punto cada día.
 
0 2 * * 0 a las 2:00h todos los domingos del año.
 
* 5 * * 1 todos los minutos de las 5:00 a 5:59 de todos los lunes.
 
2 * 10 4 * el minuto dos de cada hora el dia 10 de abril de cada año.
 
0 3 * * 6 a las 03:00 horas de todos los sábados
 
<br>
 
En cada una d’estes columnes podem posar més d’un valor, o inclús un rang, açò es fa separant cada valor per mitjà d’una coma o un rang per mitjà d’un guió.<br>Així en la columna dia de la setmana podem posar 1,3,5 que indicara que s’execute els dilluns, dimecres i divendres. O en la columna mes per a indicar la primera quinzena podem posar 1-15.<br>Açò encara podem complicar-ho un pèl més, tenim una altra operació el símbol “/”, que indica un increment, per exemple, si en la columna minuts posem */15 s’executarà cada 15 minuts, o si en la columna dies posem 1-10/2, s’executarà els dies 1,3,5,7 i 9.<br>
 
Finalment un exemple més complex.<br>
 
0 */2 1-15,23,28-31 * 0,6 S’executara cada dos hores els dies 1 al 15,el 23, 28, 29, 30 i 31 de tots els mesos però només quan siguen dissabte o diumenge.
 
[[Category:GNU/Linux]][[Category:Crontab]][[Category:Backup]]
 
<br>
 
Sabent açò, ara podrem aconseguir que els nostres backups s’executen de manera automàtica.<br>Després de teclejar crontab -e afegirem les següents esbosses.<br>
<pre>0 1 * * 0 instrucción_lunes
 
0 1 * * 1 instrucción_martes
 
0 1 * * 2 instrucción_miercoles
 
0 1 * * 3 instrucción_jueves
 
0 1 * * 4 instrucción_viernes
 
0 1 * * 5 instrucción_sabado
 
0 1 * * 6 instrucción_domingo</pre>
<br> Amb açò aconseguirem que s’execute cada dia a les 01:00 hores les instruccions indicades. Podem substituir “instrucció_******” per l’orde rsync dalt descrita.<br>De totes maneres ho farem un pèl més complet, crearem un script per a cada dia de la setmana, a més arreplegarem un log.<br>Començarem creant els directoris necessaris.<br>
<pre>mkdir ~/.crono_bak
 
cd ~/.crono_bak</pre>
Dins del directori que acabem de crear, crearem set fitxers mes cridats lunes.sh, martes.sh, ..., domingo.sh i en el seu interior posarem el següent.
<pre>!/bin/bash
 
pathLog="/media/sdb5/backup/logLunes.log"
 
echo ----------------------------------------------------------------------- &gt;&gt; $pathLog
 
echo ---INICI COPIA SEGURETAT LUNES &gt;&gt; $pathLog
 
date &gt;&gt; $pathLog
 
echo ----------------------------------------------------------------------- &gt;&gt; $pathLog
 
echo -- Iniciem Sincronització directori /home/monti &gt;&gt; $pathLog
 
rsync -altgvb /home/monti /media/sdb5/backup/sistema/lunes &gt;&gt; $pathLog
 
echo ----------------------------------------------------------------------- &gt;&gt; $pathLog
 
echo -- Sincronització Finalitzada &gt;&gt; $pathLog
 
date &gt;&gt; $pathLog
 
echo ----------------------------------------------------------------------- &gt;&gt; $pathLog</pre>
<br> Este codi és el que correspon al script del dilluns, per als altres sis farem el mateix però substituint Dilluns pel dia de la setmana concret.<br>El script executa la instrucció rsync, la resta de les esbosses el que fan és generar un fitxer log.<br>Una vegada creats els set fitxers, haurem de donar-los permís per a poder executar-los.<br>
<pre>chmod +x *.sh</pre>
Perquè s’execute tots els dies a l’1 del matí, el nostre crontab quedarà així.
<pre>m h dom mon dow command
 
0 1 * * 1 /home/banyut/.crono_back/lunes.sh &gt;&gt;/media/sdb5/backup/logcrono.log
 
0 1 * * 2 /home/banyut/.crono_back/martes.sh &gt;&gt;/media/sdb5/backup/logcrono.log
 
0 1 * * 3 /home/banyut/.crono_back/miercoles.sh &gt;&gt;/media/sdb5/backup/logcrono.log
 
0 1 * * 4 /home/banyut/.crono_back/jueves.sh &gt;&gt;/media/sdb5/backup/logcrono.log
 
0 1 * * 5 /home/banyut/.crono_back/viernes.sh &gt;&gt;/media/sdb5/backup/logcrono.log
 
0 1 * * 6 /home/banyut/.crono_back/sabado.sh &gt;&gt;/media/sdb5/backup/logcrono.log
 
0 1 * * 0 /home/banyut/.crono_back/domingo.sh &gt;&gt;/media/sdb5/backup/logcrono.log</pre>
<br> La ruta /mitjana/sdb5/backup/sistema/ ha d’existir i en el seu interior ha d’haver-hi 7 directoris cridats dilluns, dimarts, etc.<br>Per a poder revisar la nostra programació executarem:<br>
<pre>crontab -l</pre>
He donat per fet que el dimoni cron esta activat, per a comprovar açò podem executar.
<pre>ps -ef | grep crontab</pre>
En cas que no este en marxa ho iniciarem de la manera següent
<pre>sudo /etc/init.d/cron start</pre>
Finalment per a veure si s’ha executat bé podem mirar el log que hem creat en /mitja/sdb5/backup/logcrono.log podem mirar els logs del dia en concret dins de la carpeta /mitjana/sdb5/backup/*****.log,també podem veure quan s’ha executat el nostre crontab consultant el log del sistema.
<pre>cat /var/log/syslog |grep crontab</pre>
<br>
 
<br>Basat en: http://banyut.obolog.com/copias-seguridad-ubuntu-crontab-rsync-dd-65952
Usuari anònim

Menú de navegació