Shell Scripts for Dreamhost
Example shell scripts (bash or sh) that automate and easyate tasks from within the dreamhost ssh env
Backup Site Directory
Place this script backup.sh in your DOCROOT for each of your sites.
MYSITES : /web/username/sites/askapache.com MYSITE : askapache.com MYSITEBK: askapachecom MYUSER : username MYGROUP : groupname MYGROUPS: MYFNAME : askapachecom-01x16x07.tgz MYFNAMEX: askapachecom-01x16x07-08x43.tgz MYBNAME : /web/username/backups/SITES/askapache.com/askapachecom-01x16x07.tgz MYBNAMEX: /web/username/backups/SITES/askapache.com/askapachecom-01x16x07-08x43.tgz MYBDIR : sites/askapache.com/
The Script
#!/bin/sh # SETTINGS export MYSITES=`pwd -L` export MYSITE=`basename ${MYSITES}` export MYSITEBK=${MYSITE%%.*}${MYSITE#*.} export MYUSER=`whoami` export MYGROUP=`groups` #====================== GLOBAL VARIABLES ================================= # FILES # export MYFNAME=${MYSITEBK}-`date +%mx%dx%y.tgz` export MYFNAMEX=${MYSITEBK}-`date +%mx%dx%y-%Hx%M.tgz` export MYBNAME=${HOME}/backups/SITES/${MYSITE}/${MYFNAME}; export MYBNAMEX=${HOME}/backups/SITES/${MYSITE}/${MYFNAMEX}; export MYBDIR=sites/${MYSITE}/ # COLORS # cR='E[31;1m' cG='E[32;1m' cY='E[33;1m' #====================== GLOBAL FUNCTIONS ================================= # pheader # function pheader { cd ${HOME} clear tput sgr0 echo -e "$cGnn" echo ' _____________________________________________________________________ ' echo ' | |' echo ' | |' echo ' | |' echo " | SiteBack v.1.1 ${MYSITE}" echo ' | |' echo ' | |' echo ' | |' echo ' _____________________________________________________________________ ' echo -e "$cGnn" tput sgr0 sleep 3 } # pfooter # function pfooter { tput sgr0 echo -e "$cG" echo ' _____________________________________________________________________ ' echo ' | |' echo ' | SiteBack COMPLETED SUCCESSFULLY |' echo ' _____________________________________________________________________ ' echo -e "nnn" tput sgr0 cd ${OLDPWD} } #====================== MAIN ================================= pheader echo -e "$cYn @@@ CHECK FOR PRESENCE OF BACKUP FILE" if [ -e $MYBNAME ] ; then echo -e "$cR !!! FILE FOUND.. CHANGING DESTINATION" MYBNAME=${MYBNAMEX} else tput sgr0 fi echo -e "$cGn [ DONE ]nn" echo -e "$cYn @@@ CHANGING FILES TO CORRECT GROUP AND USER PERMISSIONS... " echo -e "$cGn [ DONE ]nn" sleep 2 echo -e "$cYn @@@ BACKUP IN PROGRESS... " sleep 5 tput sgr0 tar -czf ${MYBNAME} ${MYBDIR} echo -e "$cGn [ DONE ]nn" pfooter exit 0;
Comments