Skip to content

Instantly share code, notes, and snippets.

@zoparga
Created December 17, 2020 05:21
Show Gist options
  • Save zoparga/c8ea7f2b9e39d8088dcc65815ea674d2 to your computer and use it in GitHub Desktop.
Save zoparga/c8ea7f2b9e39d8088dcc65815ea674d2 to your computer and use it in GitHub Desktop.
simple FTP file upload script
#!/bin/bash
############### Infos - Edit them accordingly ########################
DATE=`date +%Y-%m-%d_%H%M`
LOCAL_BACKUP_DIR="/home/username/path/to/db-backups"
#DB_NAME="$MYSQL_DATABASE"
#DB_USER="$MYSQL_USER"
#DB_PASSWORD="$MYSQL_PASSWORD"
FILE_NAME=db-$DATE.sql.gz
FTP_SERVER="ftp-address.com"
FTP_USERNAME="ftp-username"
FTP_PASSWORD="ftp-password"
FTP_UPLOAD_DIR="/"
LOG_FILE="/home/username/path/to/db-backups/backup-DATE.log"
############### Local Backup ########################
#mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME | gzip > $LOCAL_BACKUP_DIR/$DATE-$DB_NAME.sql.gz
docker exec docker_database sh -c 'exec mysqldump "$MYSQL_DATABASE" -u "$MYSQL_USER" -p"$MYSQL_PASSWORD"' | gzip -9 > $LOCAL_BACKUP_DIR/$FILE_NAME
############### UPLOAD to FTP Server ################
ftp -nv $FTP_SERVER << EndFTP
user "$FTP_USERNAME" "$FTP_PASSWORD"
binary
cd $FTP_UPLOAD_DIR
lcd $LOCAL_BACKUP_DIR
put $FILE_NAME
bye
EndFTP
############### Check and save log, also send an email ################
if test $? = 0
then
echo "$DATE - Database Successfully Uploaded to the Ftp Server!" >> $LOG_FILE
# echo -e "Database Successfully created and uploaded to the FTP Server!" | mail -s "Backup from $DATE" email@address.com
else
echo "$DATE - ERROR in database Upload to Ftp Server" >> $LOG_FILE
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment