Advertisement
Guest User

Untitled

a guest
May 5th, 2017
561
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.67 KB | None | 0 0
  1. #!/bin/bash
  2. #
  3. WINDOMINIO="dbserver" ; USUARIO="administrador@ccgroup" ; PASSWORD="kljhgvh" ;
  4. DIR_RAIZ_BACKUP="*" ; CINTA="/dev/st0" ; COLOR_OK="#008000" ; COLOR_ERROR="#FF0000" ;
  5. AHORA=$(date -d yesterday +"%a") ; SHARES=(Usuarios Fotos) ;
  6. conectar_samba(){
  7. echo "" ; (( i=0 )) ;
  8. mount -t cifs -o username=$USUARIO,password=$PASSWORD,iocharset=utf8,codepage=cp850 //$WINDOMINIO/$1 /mnt/$1 > /dev/null
  9. if [ $? -eq 0 ] ; then MNT[$2]="OK" ; echo " [ Se ha logrado montar $1 en el primer intento ]" ; fi
  10. while [ $? -ne 0 ] && (( i<=3 )) ; do
  11.     (( i++ )) ; sleep 600 ;
  12.     mount -t cifs -o username=$USUARIO,password=$PASSWORD,iocharset=utf8,codepage=cp850 //$WINDOMINIO/$1 /mnt/$1 > /dev/null
  13.     if [ $? -eq 0 ] ; then MNT[$2]="OK" ; echo " [ Se ha logrado montar $1 en el reintento nro $i ]" ; fi
  14. done
  15. if [ $? -ne 0 ] ; then MNT[$2]="ERROR" ; echo " [ No se pudo montar $1 luego de $i reintentos ]" ; fi
  16. }
  17. full_backup(){
  18. local antes=$(pwd)
  19. echo "" ; echo " [ Copiando archivos de $1 ]" ; echo "" ;
  20. du -s -h /mnt/$1 ; cd /mnt/$1 ;
  21. case "$1" in
  22. Usuarios )
  23. tar --exclude=RECYCLER* --exclude=\$RECYCLE.BIN* --exclude="Mis archivos recibidos*" --exclude="Mi música*" --exclude="Mis imágenes*" --exclude=*.mp3 --exclude=*.avi --exclude=*.wma -b 2048 -cvzf $CINTA $DIR_RAIZ_BACKUP
  24. ;;
  25. Fotos )
  26. tar --exclude=2007* --exclude=2008* -b 2048 -cvzf $CINTA $DIR_RAIZ_BACKUP
  27. ;;
  28. esac
  29. if [ $? -eq 0 ] ; then BKP[$2]="OK" ; else BKP[$2]="ERROR" ; fi
  30. echo "" ; echo " [ $1 finalizado ]" ; echo "" ;
  31. cd $antes ; sleep 2 ; umount /mnt/$1 ;
  32. if [ $? -eq 0 ] ; then UMNT[$2]="OK" ; else UMNT[$2]="ERROR" ; fi
  33. }
  34. crear_mountpoint(){
  35. [ ! -d /mnt/$1 ] && mkdir -p /mnt/$1
  36. }
  37. do_backup (){
  38. crear_mountpoint $1
  39. conectar_samba $1 $2
  40. full_backup $1 $2
  41. }
  42. mail_content(){
  43. echo "Subject: Backup lnx-vm01 DBSERVER"
  44. echo "Content-Type:text/html; charset=utf-8"
  45. echo ""
  46. echo ""
  47. echo "<HTML><HEAD><META content=\"text/html; charset=utf-8\" http-equiv=Content-Type><META name=GENERATOR content=\"MSHTML 8.00.7600.16490\"></HEAD><BODY>"
  48. echo "<P align=center><FONT size=3 face=Arial><U>Backup en $WINDOMINIO de: ${SHARES[*]} </U></FONT></P>"
  49. for k in ${!SHARES[@]}; do
  50.     echo "<P align=center><FONT face=Arial><A href=\"file://dbserver/Sistemas/logs/$AHORA.${SHARES[k]}.backup.log\"><STRONG><FONT color=#000080 size=2>Log completo para ${SHARES[k]}</FONT></STRONG></A></FONT></P>"
  51.     echo "<CENTER><TABLE border=0 align=center><TBODY>"
  52.     echo "<TR><TD width=250><P>Montando unidad</P></TD>"
  53.         if [ ${MNT[k]} == "OK" ] ; then COLOR=$COLOR_OK ; else COLOR=$COLOR_ERROR ; fi
  54.         echo "<TD><P><STRONG><FONT color=$COLOR>[ ${MNT[k]} ]</FONT></STRONG></P></TD></TR>"
  55.     echo "<TR><TD width=250><P>Copiando archivos</P></TD>"
  56.         if [ ${BKP[k]} == "OK" ] ; then COLOR=$COLOR_OK ; else COLOR=$COLOR_ERROR ; fi
  57.         echo "<TD><P><STRONG><FONT color=$COLOR>[ ${BKP[k]} ]</FONT></STRONG></P></TD></TR>"
  58.     echo "<TR><TD width=250><P>Desmontando unidad</P></TD>"
  59.         if [ ${UMNT[k]} == "OK" ] ; then COLOR=$COLOR_OK ; else COLOR=$COLOR_ERROR ; fi
  60.         echo "<TD><P><STRONG><FONT color=$COLOR>[ ${UMNT[k]} ]</FONT></STRONG></P></TD></TR>"
  61. done
  62. echo "</TBODY></TABLE></CENTER><P align=left><FONT size=3 face=Arial></FONT>&nbsp;</P></BODY>"
  63. }
  64. crear_mountpoint Sistemas > /dev/null
  65. conectar_samba Sistemas > /dev/null
  66. BASE_DE_LOGS=/mnt/Sistemas/logs
  67. [ ! -d $BASE_DE_LOGS ] && mkdir -p $BASE_DE_LOGS
  68. for j in ${!SHARES[@]}; do
  69.     do_backup ${SHARES[j]} $j > $BASE_DE_LOGS/$AHORA.${SHARES[j]}.backup.log 2>&1
  70.     todos $BASE_DE_LOGS/$AHORA.${SHARES[j]}.backup.log
  71.     if (( $j < ${#SHARES[@]}-1 )) ; then mt -f /dev/nst0 fsf 1 ; else mt -f /dev/st0 offline ; fi
  72. done
  73. cd ~/ ; umount /mnt/Sistemas ; sleep 2
  74. mail_content | /usr/lib/sendmail -F lnx-vm01 -t sistemas@capitancortes.com
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement