Bienvenido(a) a Alcance Libre 05/09/2025, 22:11
|
![]() |
Índice del foro > Todo acerca de Linux > Programas y Aplicaciones |
![]() ![]() |
![]() |
javsolis3 |
|
|||||||
![]() ![]() ![]() ![]() ![]() Nuevo Estado: desconectado ![]() Identificado: 30/08/12 Mensajes: 7 |
bueno antes que todo quiro darle las gracias a tdos los miembros de este foro soy un usuario linux más y en mi agradecimiento me gustaria aportar este script para hacer backup de una forma sencilla ahora para que el script tenga mejor forma me gustaria hacerle algunas mejoras les explico:
BASH Formatted Code #!/bin/bashecho "Empesar el Backup" BUS='/home/javier/javier/javier/Cursos/*' COL='/tmp/Backups/' FECH=xxx_$(date +%d%b%y).tgz tar -czvf $COL$FECH $BUS echo "Terminado el Backup con exito" este script lo guarde en el /bin para llamarlo desde cualquier parte ahora amigos hay algo y me gustaria mejorarlo cuando en guarda o hace el backup guardar todas las carpetas por ejemplo '/home/javier/javier/javier/Cursos/*' y yo solamente quiero que guarde la ultima ejemplo cursos. Por otro lado corro el script y me envia el siguiente mensaje tar: Eliminando la `/' inicial de los nombres bueno pero hace el backup me gustaria ver la forma de quitarlo por mi parte sigo googleando. |
|||||||
|
||||||||
Will Lpz Jimnz |
|
|||||||
![]() ![]() ![]() ![]() ![]() Admin ![]() Estado: desconectado ![]() Identificado: 19/02/07 Mensajes: 181 Localización:Mexico |
Quote by: javsolis3
Prueba con ... BASH Formatted Code #!/bin/bashecho "Empesar el Backup" BUS='/home/javier/javier/javier' COL='/tmp/Backups' FECH=xxx_$(date +%d%b%y).tgz cd $BUS tar -czvf $COL/$FECH Cursos echo "Terminado el Backup con exito" Saludos !! .. ![]() .:: Cuando el Alumno esta listo, el maestro aparece ::. [[http://koalasoft.wordpress.com ::BLog::]] |
|||||||
|
||||||||
John J. Toro A. |
|
|||||||
![]() ![]() ![]() ![]() ![]() Moderador ![]() Estado: desconectado ![]() Identificado: 19/02/07 Mensajes: 119 Localización:Medellín - Colombia |
Cordial saludo,
Aunque el requerimiento del post puede ser simple, quiero dar un ejemplo que puede ser practico para una red local. Tener un backup dentro de la misma maquina es un riesgo alto, igualmente el contar con solo una única opción de recuperación. Qué pasa si falla el disco? Que pasa si necesito recuperar un archivo dañado que ya fue respaldado ? Que pasa si hay un incendio/terremoto/robo/etc. que afecte los equipos de tu red ? Con esto se aclara que existen múltiples posibilidades de contingencias antes las cuales deberíamos estar preparados y contar con una forma de recuperación. Por esto se debe establecer una política de copias de seguridad que nos de la posibilidad de recuperar copias de diferentes periodos de tiempo, que sean externas a la maquina y contar con lo menos con una copia almacenada en una ubicación diferente... por decir lo menos. Aclarando que existen herramientas que facilitan esta tarea, así como hardware especializado para esto, puedo decir que también podemos valernos de los recursos disponibles para lograrlo. Actualmente las estaciones de la red cuentan con buenas capacidades de disco, que nos pueden servir para almacenar múltiples copias de seguridad. Discos externos USB son un buena opción para tener copias externas. En este ejemplo se seleccionaron 6 estaciones de la red para hacer un respaldo diario (lunes a Sábado) y una maquina remota accesible desde Internet, a las cuales se tiene acceso desde el servidor mediante ssh (ademas de otras copias). El respaldo se realza automáticamente mediante un script ejecutado mediante cron. /etc/crontab: PHP Formatted Code SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed # !!!! Lineas Adicionadas por NewRoute # M H D M DS # Todos los Dias cada seis horas a los 30 minutos 30 */6 * * * root /root/cron/backup-mail.sh > /var/www/intranet/sistemas/log/back_sm.html 2>&1 # De Lunes a Viernes de 8 AM a 5 PM cada hora 0 8-17 * * 1-5 root /root/cron/backup.sh > /var/www/intranet/sistemas/log/back_sd.html 2>&1 # Sabados de 8 AM a 12 M cada hora 0 8-12 * * 6 root /root/cron/backup.sh > /var/www/intranet/sistemas/log/back_sd.html 2>&1 # Todos los Lunes a las 6 PM 0 18 * * 1 root /root/cron/dbackup.sh 1 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los Martes a las 6 PM 0 18 * * 2 root /root/cron/dbackup.sh 2 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los Miercoles a las 6 PM 0 18 * * 3 root /root/cron/dbackup.sh 3 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los Jueves a las 6 PM 0 18 * * 4 root /root/cron/dbackup.sh 4 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los Viernes a las 6 PM 0 18 * * 5 root /root/cron/dbackup.sh 5 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los Sabado a las 12 M 0 12 * * 6 root /root/cron/dbackup.sh 6 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los dias (Lunes-Sabado) a las 9:45 AM 45 9 * * 1-6 root /root/cron/dbackup.sh E > /var/www/intranet/sistemas/log/back_e.html 2>&1 # Todos los 1 de cada Mes a las 8:15 AM 15 8 1 * * root /root/cron/dbackup.sh M > /var/www/intranet/sistemas/log/back_m.html 2>&1 # !!!! Fin Lineas Adicionadas por NewRoute La salida de los scripts son almacenados en archivos HTML, que son accesibles desde una intanet. /root/cron/dbackup.sh PHP Formatted Code #!/bin/shSPRM=\-e" " SKEY='ssh -i /root/cron/servidor-rsync-key' BUSR="root@" BPTH="/share/backup" BSPC=' ' BEXC=' ' case $1 in 1) BDSC="Lunes"; BCMP="estacion-1:" ;; 2) BDSC="Martes"; BCMP="estacion-2:"; # BEXC="--exclude .recycle " ;; 3) BDSC="Miercoles"; BCMP="estacion-3:" ;; 4) BDSC="Jueves"; BCMP="estacion-4:" BEXC="--exclude .recycle " ;; 5) BDSC="Viernes" BCMP="estacion-5:" ;; 6) BDSC="Sabado"; BCMP="estacion-6:" ;; E) BDSC="Externo"; BCMP="estacion-7:" BEXC="--exclude .recycle " ;; M) BDSC="Mensual"; BCMP="estacion-8:" ;; O) SPRM=''; SKEY=''; BUSR=''; BPTH='/backup'; BDSC='Removible'; BCMP='/media/O' BEXC="--exclude .recycle " ;; P) SPRM='' SKEY='' BUSR='' BPTH="/backup" BDSC="Removible"; BCMP="/media/P"; BEXC="--exclude .recycle " ;; *) exit ;; esac echo \<table\> echo \<caption\>Backup: $BDSC - En: $BCMP\</caption\> echo \<tr\>\<th\>Inicio:\</th\>\<td\>`date`\</td\>\</tr\> echo \<tr\>\<th\>Mensajes:\</th\>\<td\>\<pre\> echo \<b\>Informacion Corporativa\</b\> echo - Empresa rsync -az --delete --force --exclude '.~lock.*' $BEXC $SPRM"$SKEY"$BSPC/share/empresa $BUSR$BCMP$BPTH/ echo - Otra rsync -az --delete --force --exclude '.~lock.*' $BEXC $SPRM"$SKEY"$BSPC/share/otro $BCMP$BPTH/ echo \<b\>"Base de Datos (MySQL)"\</b\> echo - Local rsync -az --delete $SPRM"$SKEY"$BSPC/var/lib/mysql $BCMP$BPTH/ echo \<b\>Sitios Web\</b\> # rsync -az $SPRM"$SKEY"$BSPC/etc/php.ini $BCMP/etc/ rsync -az --delete $SPRM"$SKEY"$BSPC/var/www $BCMP$BPTH/ echo \<b\>Unidad de red\</b\> rsync -az --delete $SPRM"$SKEY"$BSPC/share/g $BCMP$BPTH/ echo \</pre\>\</td\>\</tr\> echo \<tr\>\<th\>Termino:\</th\>\<td\>`date`\</td\>\</tr\> echo \</table\> echo \<br /\> Este script también puede ser ejecutado manualmente para las copias en unidades removibles (parametros O,P) La copia es exacta (Se copian solo los archivos que hayan cambiado y se borran los eliminados)... la información es comprimida para la transmisión en la red, pero no es almacenda comprimida (man rsync) La configuración de la conexión mediante ssh, SAMBA, SAMBA con papelera de reciclaje, ACL's, etc. pueden ser consultadas en los manuales locales. Espero que sea de utilidad. JohnToro |
|||||||
|
||||||||
Anónimo: : ajdm |
|
|||||||
![]() |
Quote by: John J. Toro A. Cordial saludo, PHP Formatted Code SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed # !!!! Lineas Adicionadas por NewRoute # M H D M DS # Todos los Dias cada seis horas a los 30 minutos 30 */6 * * * root /root/cron/backup-mail.sh > /var/www/intranet/sistemas/log/back_sm.html 2>&1 # De Lunes a Viernes de 8 AM a 5 PM cada hora 0 8-17 * * 1-5 root /root/cron/backup.sh > /var/www/intranet/sistemas/log/back_sd.html 2>&1 # Sabados de 8 AM a 12 M cada hora 0 8-12 * * 6 root /root/cron/backup.sh > /var/www/intranet/sistemas/log/back_sd.html 2>&1 # Todos los Lunes a las 6 PM 0 18 * * 1 root /root/cron/dbackup.sh 1 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los Martes a las 6 PM 0 18 * * 2 root /root/cron/dbackup.sh 2 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los Miercoles a las 6 PM 0 18 * * 3 root /root/cron/dbackup.sh 3 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los Jueves a las 6 PM 0 18 * * 4 root /root/cron/dbackup.sh 4 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los Viernes a las 6 PM 0 18 * * 5 root /root/cron/dbackup.sh 5 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los Sabado a las 12 M 0 12 * * 6 root /root/cron/dbackup.sh 6 >> /var/www/intranet/sistemas/log/back_d.html 2>&1 # Todos los dias (Lunes-Sabado) a las 9:45 AM 45 9 * * 1-6 root /root/cron/dbackup.sh E > /var/www/intranet/sistemas/log/back_e.html 2>&1 # Todos los 1 de cada Mes a las 8:15 AM 15 8 1 * * root /root/cron/dbackup.sh M > /var/www/intranet/sistemas/log/back_m.html 2>&1 # !!!! Fin Lineas Adicionadas por NewRoute La salida de los scripts son almacenados en archivos HTML, que son accesibles desde una intanet. /root/cron/dbackup.sh PHP Formatted Code #!/bin/shSPRM=-e" " SKEY='ssh -i /root/cron/servidor-rsync-key' BUSR="root@" BPTH="/share/backup" BSPC=' ' BEXC=' ' case $1 in 1) BDSC="Lunes"; BCMP="estacion-1:" ;; 2) BDSC="Martes"; BCMP="estacion-2:"; # BEXC="--exclude .recycle " ;; 3) BDSC="Miercoles"; BCMP="estacion-3:" ;; 4) BDSC="Jueves"; BCMP="estacion-4:" BEXC="--exclude .recycle " ;; 5) BDSC="Viernes" BCMP="estacion-5:" ;; 6) BDSC="Sabado"; BCMP="estacion-6:" ;; E) BDSC="Externo"; BCMP="estacion-7:" BEXC="--exclude .recycle " ;; M) BDSC="Mensual"; BCMP="estacion-8:" ;; O) SPRM=''; SKEY=''; BUSR=''; BPTH='/backup'; BDSC='Removible'; BCMP='/media/O' BEXC="--exclude .recycle " ;; P) SPRM='' SKEY='' BUSR='' BPTH="/backup" BDSC="Removible"; BCMP="/media/P"; BEXC="--exclude .recycle " ;; *) exit ;; esac echo <table> echo <caption>Backup: $BDSC - En: $BCMP</caption> echo <tr><th>Inicio:</th><td>`date`</td></tr> echo <tr><th>Mensajes:</th><td><pre> echo <b>Informacion Corporativa</b> echo - Empresa rsync -az --delete --force --exclude '.~lock.*' $BEXC $SPRM"$SKEY"$BSPC/share/empresa $BUSR$BCMP$BPTH/ echo - Otra rsync -az --delete --force --exclude '.~lock.*' $BEXC $SPRM"$SKEY"$BSPC/share/otro $BCMP$BPTH/ echo <b>"Base de Datos (MySQL)"</b> echo - Local rsync -az --delete $SPRM"$SKEY"$BSPC/var/lib/mysql $BCMP$BPTH/ echo <b>Sitios Web</b> # rsync -az $SPRM"$SKEY"$BSPC/etc/php.ini $BCMP/etc/ rsync -az --delete $SPRM"$SKEY"$BSPC/var/www $BCMP$BPTH/ echo <b>Unidad de red</b> rsync -az --delete $SPRM"$SKEY"$BSPC/share/g $BCMP$BPTH/ echo </pre></td></tr> echo <tr><th>Termino:</th><td>`date`</td></tr> echo </table> echo <br /> Este script también puede ser ejecutado manualmente para las copias en unidades removibles (parametros O,P) La copia es exacta (Se copian solo los archivos que hayan cambiado y se borran los eliminados)... la información es comprimida para la transmisión en la red, pero no es almacenda comprimida (man rsync) La configuración de la conexión mediante ssh, SAMBA, SAMBA con papelera de reciclaje, ACL's, etc. pueden ser consultadas en los manuales locales. Espero que sea de utilidad. Te felicito amigo, muy practica e interesante tu exposición. Quisiera saber si es posible hacer algo parecido pero en vez de utilizar rsync, usar tar. A ver te explico, yo soy administrador de infraestructura y en este momento hago respaldos diariamente tanto del portal como de la base de datos. Entonces para una hora especifica hago base de datos pero para el portal hago respaldo una vez a la semana. Ahora bien me gustaría saber (si es posible) si puedes ayudarme a contruir un SH que ejecute el respaldo y luego haga un sftp hacia el servidor remoto donde debo colocar los archivos TAR que se generen. Puedo contar contigo? Desde ya mil gracias... |
|||||||
|
||||||||
Contenido generado en: 0.23 segundos |
![]() ![]() |
Todas las horas son CST. Hora actual 10:11 . |
|
|