Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3.  
  4. ## Backup prefix
  5. PREFIX="bu_"
  6.  
  7. ## Dirs which should be backed
  8. TOBACKUP="/home/ /var/www/"
  9.  
  10. ## MySQL login data
  11. MYSQLUSER="test"
  12. MYSQLPASS="test"
  13. MYSQLHOST="localhost"
  14.  
  15. ## Dir to save backup
  16. OUTDIR="/"
  17.  
  18. ## FTP login form the backup FTP server (optional)
  19. FTPHOST="test"
  20. FTPUSER="test"
  21. FTPPASS="test"
  22.  
  23. ## Backup password (optional)
  24. ## BACKUPPASS="Zip File mit PW schützen!"
  25.  
  26. ## Working dir
  27. WORKINGDIR="/tmp/"
  28.  
  29. ## Logfile
  30. LOGFILE="/var/log/${PREFIX}backup.log"
  31.  
  32. ##
  33. ## </Configuration>
  34. ##
  35.  
  36. if [ -n "$OUTDIR" ]; then
  37.  
  38. ## Set prozess priority
  39. renice -19 -p $$ 1> /dev/null 2>> $LOGFILE
  40.  
  41. ## Set I/O priority
  42. ionice -c2 -n1 -p $$ 1> /dev/null 2>> $LOGFILE
  43.  
  44. ## Date and time
  45. DATE=$(date +%Y-%m-%d-%H%M%S)
  46.  
  47. ## Create and enter working dir
  48. mkdir ${WORKINGDIR}${PREFIX}${DATE}
  49. cd ${WORKINGDIR}${PREFIX}${DATE}
  50.  
  51. ## Create a list with installed deb pakets
  52. dpkg --get-selections > "deb.list"
  53. TOBACKUP="${TOBACKUP} deb.list"
  54.  
  55. ## Create MySQL dump environment
  56. mkdir mysqldumps/
  57. TOBACKUP="${TOBACKUP} mysqldumps/"
  58.  
  59. ## Create MySQL dumps from all databases
  60. DBS="$(mysql -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS -Bse 'show databases' 2>> $LOGFILE)"
  61. if [ $? -ne 0 ]; then
  62.  
  63. ## Delete temporary files
  64. rm -r ${WORKINGDIR}${PREFIX}${DATE}
  65. exit 1
  66. fi
  67. for DB in $DBS; do
  68. mysqldump -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS $DB > "mysqldumps/${DB}.sql"
  69. done
  70.  
  71. ## Compress and / or decrypt files
  72. if [ -n "$BACKUPPASS" ]; then
  73.  
  74. VAR_EXTENSION=".tar.bz2.gpg"
  75. tar -cf - $TOBACKUP 2> /dev/null | gpg -c --symmetric --bzip2-compress-level 9 --passphrase ${BACKUPPASS} > "${PREFIX}${DATE}${VAR_EXTENSION}"
  76. else
  77.  
  78. VAR_EXTENSION=".tar.bz2"
  79. tar -cf - $TOBACKUP 2> /dev/null | bzip2 -c --best > "${PREFIX}${DATE}${VAR_EXTENSION}"
  80. fi
  81.  
  82. if [ -n "$FTPHOST" ] && [ -n "$FTPUSER" ] && [ -n "$FTPPASS" ]; then
  83.  
  84. ## Save backup on FTP server
  85. ncftpput -u $FTPUSER -p $FTPPASS $FTPHOST $OUTDIR "${PREFIX}${DATE}${VAR_EXTENSION}" 2>> $LOGFILE
  86.  
  87. else
  88.  
  89. ## Save backup lokal
  90. cp "${PREFIX}${DATE}${VAR_EXTENSION}" "$OUTDIR" 2>> $LOGFILE
  91. fi
  92.  
  93. ## Delete temporary files
  94. rm -r ${WORKINGDIR}${PREFIX}${DATE}
  95.  
  96. if [ $? -ne 0 ]; then
  97. exit 1
  98. else
  99. exit 0
  100. fi
  101. else
  102. echo "Error: Output dir is empty" >> $LOGFILE
  103. exit 1
  104. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement