A simple bash script to backup MariaDB.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

45 lignes
1.7KB

  1. #!/bin/bash
  2. export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  3. BAK_DIR=/var/backups/mysql
  4. LOG_DIR=/var/log/mysql
  5. echo "Starting Backup" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  6. echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  7. xtrabackup --backup --target-dir=$BAK_DIR >> \
  8. $LOG_DIR/mysql-bak-$(date +%F).log 2>&1 || \
  9. echo "Backup failed with exit value $?" >> \
  10. $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  11. echo "Backup Finished" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  12. echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  13. echo "" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  14. echo "Starting Prepare #1" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  15. echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  16. xtrabackup --prepare --target-dir=$BAK_DIR >> \
  17. $LOG_DIR/mysql-bak-$(date +%F).log 2>&1 || \
  18. echo "Prepare #1 failed with exit value $?" >> \
  19. $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  20. echo "Prepare #1 Finished" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  21. echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  22. echo "" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  23. echo "Starting Prepare #2" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  24. echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  25. xtrabackup --prepare --target-dir=$BAK_DIR >> \
  26. $LOG_DIR/mysql-bak-$(date +%F).log 2>&1 || \
  27. echo "Prepare #1 failed with exit value $?" >> \
  28. $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  29. echo "Prepare #2 Finished" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  30. echo "---------" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  31. echo "" >> $LOG_DIR/mysql-bak-$(date +%F).log 2>&1
  32. # Delete logs older than 30 days
  33. find $LOG_DIR -name "mysql-bak-*" -mtime +30 -delete