Advertisement
mlodszy

backupscript

Sep 6th, 2012
566
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.22 KB | None | 0 0
  1. BACKUP CONFIG
  2. #########################
  3. ####Backup confing ######
  4. #########################
  5.  
  6. # Witch directory to backup
  7. DIR=/root/test
  8.  
  9. # Local backup directory
  10. BACKUPDIR=/root/backup
  11.  
  12. # Remote FTP Server
  13. FTPSERVER=ftp.server.com
  14. FTPUSER=user
  15. FTPPASS=password
  16. FTPDIR=/backupdir
  17.  
  18. # SQL Server, User, Pass, Databases
  19. MYSQLSERV=localhost
  20. SQLUSER=user
  21. SQLPASS=pass
  22. SQLDBS=base1,base2
  23.  
  24. # Password for backup encryption
  25. SALTPASS=
  26.  
  27. # Select No (0), local (1), remote (2) backup
  28. BACKUP=0
  29. # Select No (0), MySQL (1) backup
  30. SQLBACKUP=0
  31.  
  32.  
  33.  
  34.  
  35. BACKUP SCRIPT
  36.  
  37. #!/bin/bash
  38.  
  39. # Backup Script v1.0
  40. # Created by Michal Mewald
  41. # Date 05/09/2012
  42.  
  43. #############################################
  44. ############### Main Config #################
  45. #############################################
  46.  
  47. # Temp directory for backup create
  48. GLOBALTEMPDIR=/tmp/backup
  49.  
  50. BACKUPFILE=backup.`date +%d-%m-%y.%k:%M`.tgz
  51. BACKUPFILESALT=backup.`date +%d-%m-%y.%k:%M`.file
  52. TEMPDIR=$GLOBALTEMPDIR/$(whoami)
  53.  
  54. #############################################
  55. #### Check if script is run as good user ####
  56. #############################################
  57.  
  58. if [ "$(whoami)" != "$(id -un)" ]; then
  59.     echo -e "Script must be run as $(whoami), exiting"
  60.     exit 1;
  61. fi
  62.  
  63. #############################################
  64. ############### Backup Script ###############
  65. #############################################
  66.  
  67. ### Loading user config
  68. source $HOME/backup.conf
  69.  
  70. ### Loading main config
  71. # source
  72.  
  73. ### Data backup
  74.  
  75. if [ $BACKUP = 0 ] && [ $SQLBACKUP = 0 ]; then
  76.     echo -e "Check config file, no backup set"
  77.     exit 1;
  78. fi
  79.  
  80. if [ $BACKUP = 0 ]; then
  81.     echo -e "No directory backup"
  82. else
  83.     if [ ! -d $DIR ]; then
  84.         echo -e "Directory to backup do not exist. Abort<br />"
  85.     elif [ ! -d $TEMPDIR ]; then
  86.         echo -e "No temp directory, creating"
  87.         mkdir -p $TEMPDIR
  88.         cp -R $DIR $TEMPDIR
  89.     else
  90.         cp -R $DIR $TEMPDIR
  91.     fi
  92. fi
  93.  
  94. ### SQL Backup
  95.  
  96. if [ $SQLBACKUP = 0 ]; then
  97.     echo -e "No databases backup"
  98. elif [ $SQLBACKUP = 1 ]; then
  99.     echo -e "Creating MySQL Databases<br \>"
  100.     bases=$(echo $SQLDBS | tr "," "\n")
  101.     for b in $bases
  102.         do
  103.             mysqldump -u$SQLUSER -p$SQLPASS --opt $b > $TEMPDIR/$b.sql
  104.         done
  105. fi
  106.  
  107. ### Creating backup file
  108.  
  109. echo -e "Creating backup file $BACKUPFILE"
  110. tar -zcvf $GLOBALTEMPDIR/$BACKUPFILE $TEMPDIR
  111.  
  112. if [ $BACKUP = 1 ]; then
  113.     if [ ! -d $BACKUPDIR ]; then
  114.     echo -e "No backup dir, creating"
  115.     mkdir -p $BACKUPDIR
  116.     fi;
  117. fi;
  118.  
  119. ### Puting backup in the right place
  120.  
  121. if [ $BACKUP = 1 ]; then
  122.     if [ $SALTPASS != "" ]; then
  123.         openssl enc -des3 -salt -k $SALTPASS -in $GLOBALTEMPDIR/$BACKUPFILE -out $BACKUPDIR/$BACKUPFILESALT
  124.     else
  125.         mv $GLOBALTEMPDIR/$BACKUPFILE $BACKUPDIR
  126.     fi;
  127. else
  128.     if [ $SALTPASS != "" ]; then
  129.         openssl enc -des3 -salt -k $SALTPASS -in $GLOBALTEMPDIR/$BACKUPFILE -out $GLOBALTEMPDIR/$BACKUPFILESALT
  130.         ncftpput -u $FTPUSER -p $FTPPASS $FTPSERVER $FTPDIR $GLOBALTEMPDIR/$BACKUPFILESALT
  131.     else
  132.         ncftpput -u $FTPUSER -p $FTPPASS $FTPSERVER $FTPDIR $GLOBALTEMPDIR/$BACKUPFILE
  133.     fi;
  134. fi;
  135.  
  136. ### Clear temp
  137.  
  138. if [ $BACKUP != 0 ]; then
  139.     if [ $SALTPASS != "" ] && [ $BACKUP = 2 ]; then
  140.         rm -f $GLOBALTEMPDIR/$BACKUPFILE
  141.         rm -f $GLOBALTEMPDIR/$BACKUPFILESALT
  142.     else
  143.         rm -f $GLOBALTEMPDIR/$BACKUPFILE
  144.     fi;
  145.     rm -rf $TEMPDIR/*
  146. fi;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement