LinuxParty

Ratio:  / 2
MaloBueno 

Iba a escribir un artículo sobre cómo hacer una copia de seguridad, pero resulta que ya hay artículos similares en la web, así que decidí, que lo mejor que se podía hacer, era un script para que realizará todo el trabajo por nosotros, él solito, sin tener que hacer nada, sólo editando aquellas cosas que quieres que el script copie o no.

Yo al script lo he llamado "copiacompleta.sh", y tras editarlo, se le asignan los permisos de ejecución:

chmod a+x copiacompleta.sh

Bien puedes crearte una carpeta "bin", --si no existe-- en tu propio $HOME creando, copiando o moviendo allí al mismo el fichero, y si lo pierdes, pues vuelves a éste artículo y lo creas nuevamente.

 

#!/bin/bash
#
# Script 2.21 creado por ExtreHost.com para LinuxParty por Javier Orovengua 
# Fecha de la creación Diciembre de 2016, autoadaptable al nombre de usuario.
# Última actualización: Noviembre de 2017.
# clear echo "Preparando..." echo "---------------------------------------------------" echo "Este script sólo creará un backup del HOME del usuario que lo ejecute, y deberá" echo "editarse el código fuente del mismo para excluir explícitamente los directorios" echo "que NO se añadirán a la copia." echo " " echo "Si es novato, vea el Tutorial de Linux, en la sección de archivos para ampliar" echo "documentación y conocimientos: http://www.linux-party.com/TutorialLinux/" echo " " # Con ésta variable forzaremos que la copia se guarde allí donde estemos, de esta forma # si llamamos al script desde un disco duro extraible externo, la copia se quedará en dicho # disco duro extraible externo. ActualPath=`pwd` TheUser=$HOME echo "---------------------------------------------------" sleep 2 # Obtenemos la fecha de hoy en la variable "suffix" suffix=$(date +%Y-%m-%d) # Cambiamos al HOME del usuario y mostramos su contenido. cd $HOME ls -lshF --color $HOME pwd echo "Comienza la copia..." sleep 2 # Hará copia de todo, excepto de lo que explícitamente se excluye. tar cvfz $ActualPath/All-$USER-$suffix.tgz \ --exclude="$HOME/.A*" --exclude="$HOME/.b*" --exclude="$HOME/.c*" --exclude="$HOME/.d*" --exclude="$HOME/.e*" --exclude="$HOME/.f*" \ --exclude="$HOME/.g*" --exclude="$HOME/.i*" --exclude="$HOME/.j*" --exclude="$HOME/.l*" --exclude="$HOME/.L*" --exclude="$HOME/.o*" \ --exclude="$HOME/.p*" --exclude="$HOME/.q*" --exclude="$HOME/.s*" --exclude="$HOME/.t*" --exclude="$HOME/.v*" --exclude="$HOME/.w*" \ --exclude="$HOME/.x*" --exclude="$HOME/Descargas/Música" --exclude="$HOME/Descargas/Torrents" --exclude="$HOME/DiscosVM" --exclude="$HOME/Dropbox" \ --exclude="$HOME/f14" --exclude="$HOME/dwhelper" \ --exclude="$HOME/encript" --exclude="$HOME/temp" --exclude="$HOME/html" --exclude="$HOME/Media" \ --exclude="$HOME/Música" --exclude="$HOME/Vídeos" --exclude="$HOME/VirtualBox VMs" --exclude="$HOME/workspace" \ --exclude="$HOME/android-sdk-linux_86-09-Oct-2016.tgz" --exclude=$HOME/All-$USER-$suffix.tgz $HOME echo "---------------------------------------------------" echo "Copia completada." echo "---------------------------------------------------"

Hemos realizado una versión mejorada del script, para hacerlo desde el modo gráfico, hay algunos "bugs" que todavía no funcionan, si los detectáis y corregís, por favor, los ponéis en los comentarios.


 

#!/bin/bash
#
# Script 3.01 creado por ExtreHost.com para LinuxParty por Javier Orovengua 
# Fecha de la creación Diciembre de 2016, autoadaptable al nombre de usuario.
# Última actualización: Noviembre de 2017. # suffix=$(date +%Y-%m-%d) RUNAUTOMYSQLBACKUP="/usr/local/bin/automysqlbackup" BACKUPDEUSRLOCALBIN="tar cvfz bkp-usrlocalbin-$suffix.tgz /usr/local/bin" BACKUPDEVARWWWHTML="tar cvfz bkp-varwwwhtml-$suffix.tgz /var/www/html" clear echo "Preparando..." echo "---------------------------------------------------" echo "Este script sólo creará un backup del HOME del usuario que lo ejecute, y deberá" echo "editarse el código fuente del mismo para excluir explícitamente los directorios" echo "que NO se añadirán a la copia." echo " " echo "Si es novato, vea el Tutorial de Linux, en la sección de archivos para ampliar" echo "documentación y conocimientos: http://www.linux-party.com/TutorialLinux/" echo " " if [ "$DISPLAY" == "" ] ; then estamos="Estamos en Consola" ; MYRUN=0 ; else estamos="Estamos en modo gráfico" ; MYRUN=1 ; fi if [ $MYRUN==1 ] ; then kdialog --sorry "Para realizar algunas copias es necesario que el usuario sea un\nusuario administrador, para cual deberá introducir su clave.\n\n\nTrataremos de hacer copia de seguridad de las BBDD MySQL/MariaDB\ntratando de ejecutar:\n\n /usr/local/bin/automysqlbackup " echo "Asignando Askpass" echo $estamos sudo -k SUDO_ASKPASS="/usr/bin/ksshaskpass" sudo -A $RUNAUTOMYSQLBACKUP fi if [ $MYRUN==0 ] ; then echo $estamos sudo $RUNAUTOMYSQLBACKUP fi sleep 5 # Con ésta variable forzaremos que la copia se guarde allí donde estemos, de esta forma # si llamamos al script desde un disco duro extraible externo, la copia se quedará en dicho # disco duro extraible externo. ActualPath=`pwd` echo "---------------------------------------------------" sleep 2 # Obtenemos la fecha de hoy en la variable "suffix" suffix=$(date +%Y-%m-%d) # Cambiamos al HOME del usuario y mostramos su contenido. cd $HOME ls -lshF --color $HOME pwd echo "Comienza la copia..." sleep 2 echo "Copiando /usr/local/bin" sleep 2 $BACKUPDEUSRLOCALBIN echo "---------------------" echo "Copiando /var/www/html" sleep 2 $BACKUPDEVARWWWHTML echo "---------------------" echo "Comienza la copia..." sleep 2 # Hará copia de todo, excepto de lo que explícitamente se excluye.
# Algunos path del exclude, son sólo a modo de ejemplo. tar cvfz $ActualPath/All-$USER-$suffix.tgz \ --exclude="$HOME/.A*" --exclude="$HOME/.b*" --exclude="$HOME/.c*" --exclude="$HOME/.d*" --exclude="$HOME/.e*" \ --exclude="$HOME/.g*" --exclude="$HOME/.i*" --exclude="$HOME/.j*" --exclude="$HOME/.L*" --exclude="$HOME/.o*" \ --exclude="$HOME/.p*" --exclude="$HOME/.q*" --exclude="$HOME/.s*" --exclude="$HOME/.t*" --exclude="$HOME/.v*" \ --exclude="$HOME/.x*" --exclude="$HOME/Descargas/Música" --exclude="$HOME/Descargas/Torrents" --exclude="$HOME/DiscosVM" --exclude="$HOME/Dropbox" \ --exclude="$HOME/f14" --exclude="$HOME/dwhelper" \ --exclude="$HOME/encript" --exclude="$HOME/temp" --exclude="$HOME/html" --exclude="$HOME/Media" \ --exclude="$HOME/Música" --exclude="$HOME/Vídeos" --exclude="$HOME/VirtualBox VMs" --exclude="$HOME/workspace" \ --exclude="$HOME/android-sdk-linux_86-09-Oct-2016.tgz" --exclude=$HOME/All-$USER-$suffix.tgz $HOME echo "---------------------------------------------------" echo "Copia completada." echo "---------------------------------------------------"

 

Para hacer una copia de seguridad del Home de Linux, hemos tomado como referencia los siguientes artículos y posts como bibliografía, por si quieres ampliar.

Quedan fuera del script, por si eres desarrollador o admin, bases de datos y sitios web, que deberás de ampliar por tu propia cuenta.

Bibliografía:

 

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Encuesta de LinuxParty

Crees que la robotización traerá acarreada...

Que la gente abandonará las ciudades para vivir en los pueblos. - 16.4%
Que en los pueblos la robotización se frenará por los humanos - 13.1%
Que a la gente no les gustarán sus vecinos robots. - 3.3%
Que los negocios pequeños sufrirán la carencia de clientes humanos. - 9.8%
Que los humanos achacarán su desgracia a los robots y pasará algo grave. - 19.7%
Que los robots se levantarán contra los humanos y nos exterminarán. - 37.7%

Total votes: 61
The voting for this poll has ended on: 30 Sep 2017 - 00:00

Donar a LinuxParty

La mejor forma de darnos las gracias, es hacer una donación.


Tutorial de Linux

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política