• Home
  • Ubuntu 18.04
    • Whats New?
    • Upgrade Ubuntu
    • Install Java
    • Install Node.js
    • Install Docker
    • Install Git
    • Install LAMP Stack
  • Tutorials
    • AWS
    • Shell Scripting
    • Docker
    • Git
    • MongoDB
  • Funny Tools
  • FeedBack
  • Submit Article
  • About Us
TecAdmin
Menu
  • Home
  • Ubuntu 18.04
    • Whats New?
    • Upgrade Ubuntu
    • Install Java
    • Install Node.js
    • Install Docker
    • Install Git
    • Install LAMP Stack
  • Tutorials
    • AWS
    • Shell Scripting
    • Docker
    • Git
    • MongoDB
  • Funny Tools
  • FeedBack
  • Submit Article
  • About Us

MySQL Database Backup to FTP Server – Shell Script

Written by Rahul, Updated on October 26, 2017

As a system administrator, you need to take backup on daily basis. Backups are very useful to recover data from any crashes or corruption. I have written a simple script to take database backup from MySQL server and upload to FTP server. Being a system administrator, I recommend keeping a remote copy of your every backup. You can also try our new advance script for MySQL databases backup and upload to remote locations.

Create a shell script file and copy the below script. Then update all the required values and execute.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
 
######################################################
#  Script Written by : Rahul Kumar
#  Date: Feb 21, 2013
######################################################
 
DATE=`date +%d%b%y`
LOCAL_BACKUP_DIR="/backup/"
DB_NAME="test"
DB_USER="root"
DB_PASSWORD="your password"
FTP_SERVER="ftp.tecadmin.net"
FTP_USERNAME="ftp user name"
FTP_PASSWORD="ftp user password"
FTP_UPLOAD_DIR="/backup/"
LOG_FILE=/backup/backup-DATE.log
 
############### Local Backup  ########################
 
mysqldump -u $DB_USER  -p$DB_PASSWORD $DB_NAME | gzip  > $LOCAL_BACKUP_DIR/$DB_NAME-$DATE.sql.gz
 
############### UPLOAD to FTP Server  ################
 
ftp -n $FTP_SERVER << EndFTP
user "$FTP_USERNAME" "$FTP_PASSWORD"
binary
hash
cd $FTP_UPLOAD_DIR
#pwd
lcd $LOCAL_BACKUP_DIR
put "$DB_NAME-$DATE.sql.gz"
bye
EndFTP
 
if test $? = 0
then
    echo "Database Successfully Uploaded to Ftp Server
        File Name $DB_NAME-$DATE.sql.gz " > $LOG_FILE
else
    echo "Error in database Upload to Ftp Server" > $LOG_FILE
fi

Setup Details – Edit the above script for the following variable as per your system environment. Place all the values correctly to make script working properly.

  • LOCAL_BACKUP_DIR => Local direction path to store backup
  • DB_NAME => database name
  • DB_USER => database adminitrator user name
  • DB_PASSWORD => database administrator password
  • FTP_SERVER => ftp server ip for hostname
  • FTP_USERNAME => ftp username
  • FTP_PASSWORD => ftp password
  • FTP_UPLOAD_DIR => ftp server backup path
  • LOG_FILE => log file name and location

I hope this script will help you for taking database backup over FTP server.

Share it!
Share on Facebook
Share on Twitter
Share on LinkedIn
Share on Reddit
Share on Tumblr
Share on Whatsapp
Rahul
Rahul
Connect on Facebook Connect on Twitter

I, Rahul Kumar am the founder and chief editor of TecAdmin.net. I am a Red Hat Certified Engineer (RHCE) and working as an IT professional since 2009..

3 Comments

  1. Avatar Umar Reply
    August 5, 2020 at 7:01 am

    Hello,

    How can we delete remote ftp backups older than X days to keep storage costs low.

  2. Avatar Olek Reply
    July 14, 2016 at 10:00 am

    Nice script, thanks. But why not use MySQLBackupFTP (http://mysqlbackupftp.com/). This tool makes MySQL database backups according to your schedule and sends them to FTP Server automatically. By the way, it has a free plan.

  3. Avatar Sobhan Reply
    July 7, 2016 at 5:30 pm

    Thanks for the great script, saved my time.

Leave a Reply Cancel reply

Popular Posts

  • How To Install Python 3.9 on Ubuntu 20.04 5
  • How To Install Python 3.9 on Ubuntu 18.04 0
  • How to Use AppImage on Linux (Beginner Guide) 2
  • How to Install Python 3.9 on CentOS/RHEL 7 & Fedora 32/31 0
  • How To Install VNC Server on Ubuntu 20.04 1
© 2013-2020 Tecadmin.net. All Rights Reserved | Terms  | Privacy Policy