If you are a Database Administrator and want to safe keep your business you need regular backups. Here is a small bash script I made to schedule MySQL databases and dump mysql database and compress the output file.
All you need to do is give values to USER, PASSWORD,DB_NAME,OUTPUT reflect your MySQL user, password, database name and folder where you want to put the dumps.
mysql_backup.sh
USER="db_user_name"
PASSWORD="db_password"
OUTPUT="/backup_folder_path"
DB_NAME="db_name"
databases=`mysql --user=$USER --password=$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
for db in $databases; do
if [ "$db" = "$DB_NAME" ]; then
FILE=$db"_"`date +%Y%m%d%H%M`.sql
echo "Dumping database: $db"
mysqldump --force --opt --user=$USER --password=$PASSWORD --databases $db > $OUTPUT/$FILE
gzip $OUTPUT/$FILE
fi
done
Now make mysql_backup.sh executable by setting permission
chmod 700 mysql_backup.sh
Now you are ready to schedule the job and run the backup script. Simply add to crontab so that it will run automatically
# m h dom mon dow command 00 4 * * * sh /path_to_your_script/mysql_backup.sh
The above crontab is scheduled to every morning at 4AM
