Well, unfortunately I recently had to blow away one of my linux boxen. While I had backups of the important stuff, my backup scripts had slipped my mind. So here I am, rewriting them. Got the important one done, upload it to the box, and no dice. Here is what it returns:
backup.sh: line 17: MYSQL_DB: command not found
backup.sh: line 18: MYSQL_USER: command not found
backup.sh: line 19: MYSQL_PASS: command not found
backup.sh: line 20: MYSQL_SAVE_DIR: command not found
backup.sh: line 21: DATE: command not found
backup.sh: line 24: FTP_HOST: command not found
backup.sh: line 25: FTP_USER: command not found
backup.sh: line 26: FTP_PASS: command not found
backup.sh: line 27: FTP_DIR: command not found
backup.sh: line 40: ftp: command not found
All of those (except for the last one, ftp) are variables. My first thought was that I had forgotten or put a typo in the shabang, but thats all fine and good. Im really quite baffled--I had almost this identical script running on this box earlier, and now nothing is working.
By the way, the box is running Debian testing. Bare essentials--No X, just a clean install plus apache/php/mysql.
Here is the offending code (with my passwords and such deleted
). I cant guarantee there arent other errors in it, because I cant get it to run to test it
#!/bin/bash
# SQL Dump Config
MYSQL_DB = 'all' # the database to dump
MYSQL_USER = '' # the user to login to mysql as
MYSQL_PASS = '' # mysql user password
MYSQL_SAVE_DIR = '/root/webdump/sql/' # directory to save the dump into
DATE = `date -I` # date formatting to be used to name the dump
# FTP Config
FTP_HOST = '' # the ftp host to upload to
FTP_USER = '' # the ftp user to login as
FTP_PASS = '' # the password for the FTP user
FTP_DIR = 'BACKUP' # the directory to put the uploaded file into
#
# BEGIN SCRIPT
#
# Do the dump...
cd $MYSQL_SAVE_DIR
mysqldump --user=$MYSQL_USER --password=$MYSQL_PASS --opt $MYSQL_DB > $MYSQL_SAVE_DIR/$date.sql
# Upload it all...
ftp -n $FTP_HOST <<END
quote USER $FTP_USER
quote PASS $FTP_PASS
cd $FTP_DIR
put $DATE.sql
bye
END
exit 0