Diferència entre revisions de la pàgina «Backup utilitzant crontab»
Línia 1: | Línia 1: | ||
L’objectiu d'aquest article és muntar backups de fitxers i directoris automics. visca el barça som els putos amus vale!! | 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) | Horas (de 0 a 23) |
Revisió del 18:44, 14 feb 2011
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
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.
En realitat és un poc mas complex però de moment ja ens val així.
Com funcionen estes columnes.
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
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ó.
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.
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.
Finalment un exemple més complex.
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.
Sabent açò, ara podrem aconseguir que els nostres backups s’executen de manera automàtica.
Després de teclejar crontab -e afegirem les següents esbosses.
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
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.
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.
Començarem creant els directoris necessaris.
mkdir ~/.crono_bak cd ~/.crono_bak
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.
!/bin/bash pathLog="/media/sdb5/backup/logLunes.log" echo ----------------------------------------------------------------------- >> $pathLog echo ---INICI COPIA SEGURETAT LUNES >> $pathLog date >> $pathLog echo ----------------------------------------------------------------------- >> $pathLog echo -- Iniciem Sincronització directori /home/monti >> $pathLog rsync -altgvb /home/monti /media/sdb5/backup/sistema/lunes >> $pathLog echo ----------------------------------------------------------------------- >> $pathLog echo -- Sincronització Finalitzada >> $pathLog date >> $pathLog echo ----------------------------------------------------------------------- >> $pathLog
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.
El script executa la instrucció rsync, la resta de les esbosses el que fan és generar un fitxer log.
Una vegada creats els set fitxers, haurem de donar-los permís per a poder executar-los.
chmod +x *.sh
Perquè s’execute tots els dies a l’1 del matí, el nostre crontab quedarà així.
m h dom mon dow command 0 1 * * 1 /home/banyut/.crono_back/lunes.sh >>/media/sdb5/backup/logcrono.log 0 1 * * 2 /home/banyut/.crono_back/martes.sh >>/media/sdb5/backup/logcrono.log 0 1 * * 3 /home/banyut/.crono_back/miercoles.sh >>/media/sdb5/backup/logcrono.log 0 1 * * 4 /home/banyut/.crono_back/jueves.sh >>/media/sdb5/backup/logcrono.log 0 1 * * 5 /home/banyut/.crono_back/viernes.sh >>/media/sdb5/backup/logcrono.log 0 1 * * 6 /home/banyut/.crono_back/sabado.sh >>/media/sdb5/backup/logcrono.log 0 1 * * 0 /home/banyut/.crono_back/domingo.sh >>/media/sdb5/backup/logcrono.log
La ruta /mitjana/sdb5/backup/sistema/ ha d’existir i en el seu interior ha d’haver-hi 7 directoris cridats dilluns, dimarts, etc.
Per a poder revisar la nostra programació executarem:
crontab -l
He donat per fet que el dimoni cron esta activat, per a comprovar açò podem executar.
ps -ef | grep crontab
En cas que no este en marxa ho iniciarem de la manera següent
sudo /etc/init.d/cron start
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.
cat /var/log/syslog |grep crontab
Basat en: http://banyut.obolog.com/copias-seguridad-ubuntu-crontab-rsync-dd-65952