Created
February 11, 2011 00:53
-
-
Save ticean/821726 to your computer and use it in GitHub Desktop.
Creates snapshot of Magento db & media.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#/bin/sh | |
#################################################################################### | |
# Magento Auto Snapshot | |
# | |
# This script has been integrated into Magento Shell Tools. | |
# Please see https://github.com/guidance/magento-shell-tools/blob/master/shell/snapshot.php | |
# | |
# Shell script that makes a backup of Magento's database and media directories. | |
# Intended for use on development environments. Bring new developers up to speed | |
# quickly. | |
# Makes some assumptions regarding Capistrano style deploy path. | |
# | |
# You are responsible for your own security!!!!! | |
# | |
# Author: Ticean Bennett | |
# | |
##################################################################################### | |
#Define params. | |
site_name_flag= | |
deploy_to_flag= | |
while getopts 's:d:m:-help' OPTION | |
do | |
case $OPTION in | |
s) site_name_flag=1 | |
site_name="$OPTARG" | |
;; | |
d) deploy_to_flag=1 | |
deploy_to="$OPTARG" | |
;; | |
m) mysql_dbname_flag=1 | |
mysql_dbname="$OPTARG" | |
;; | |
?) printf "Usage: %s: [-s value] [-d value] args\n" $(basename $0) >&2 | |
exit 2 | |
;; | |
esac | |
done | |
shift $(($OPTIND -1)) | |
#Require -s site_name. | |
if [ ${site_name_flag} ] | |
then | |
printf 'Option -s "%s" specified\n' "$site_name" | |
else | |
printf 'Option -s specifies the site name, and is required.\n' >&2 | |
exit 2 | |
fi | |
#Require -d deploy_to. | |
if [ ${deploy_to_flag} ] | |
then | |
printf 'Option -d "%s" specified\n' "$deploy_to" | |
else | |
deploy_to="/var/www/${site_name}" | |
printf 'Option -d not specified. Using "%s"\n' "$deploy_to" | |
fi | |
#Require -m mysql_dbname | |
if [ ${mysql_dbname_flag} ] | |
then | |
printf 'Option -m "%s" specified\n' "$mysql_dbname" | |
else | |
printf 'Option -m specifies the mysql database name, and is required.\n' >&2 | |
exit 2 | |
fi | |
##################################################################################### | |
#Do the work. | |
##################################################################################### | |
#Create snapshot directory. | |
#snapshot_dir="$deploy_to"/shared/snapshot | |
snapshot_dir="/home/tbenn" | |
if [ ! -d "$snapshot_dir" ] | |
then | |
mkdir "$snapshot_dir" | |
printf 'Creating snapshot directory: "%s"\n' "$snapshot_dir" | |
fi | |
#Media directory backup. | |
if [ -f "$snapshot_dir"/media.tgz ] | |
then | |
rm "$snapshot_dir"/media.tgz | |
printf 'Removed existing media snapshot.\n' | |
fi | |
#cd "$deploy_to"/shared | |
printf 'Creating media archive: "%s"\n' "$snapshot_dir"/media.tgz | |
tar -czvf "$snapshot_dir"/media.tgz "$deploy_to"/shared/media/ > /dev/null | |
#Database backup. | |
printf 'Creating database snapshot: "%s"\n' "$snapshot_dir"/$mysql_dbname.sql | |
mysqldump -uroot -pMy-SQL-DB "$mysql_dbname" | gzip > "$snapshot_dir"/$mysql_dbname.sql.gz |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment