This is a rather fun problem.  I just want someone to help check my  
work, mostly.  Here goes.

I'm switching web hosts because my current VPS provider is worse than  
another one I found.  I keep my domain registered with a third party  
so I can switch around as much as I want.  So I'm writing a shell  
script I can run on my machine to back up relevant files and to then  
save them to my OS X laptop.  I will use these files when populating  
the new VPS image.  I have set up RSA key authentication so that SSH  
won't prompt for my password approximately a billion times.

As I am a rather BSD-ish kind of fellow, feel absolutely free to take  
this script and modify and use it to your heart's delight.  If you  
know of any better commands/methods to do this, also do tell!

Here's my script.  If you see any problems, syntax errors, etc. please  
let me know!  It's not something I feel safe about just running as it  
could leave annoying files all over my webserver - which wouldn't be  
too much fun.

#!/bin/sh
# backup script for the whole FSDEV system

BACKUPDIR=/Users/cmiller/fsdev_backup
MHOST=localhost
MUSER=********
MPASS=********
NOW=`date +"%s"`

mkdir ${BACKUPDIR}

# home directories
mkdir ${BACKUPDIR}/home
scp -r [email protected]:/home ${BACKUPDIR}/home

# /var
mkdir ${BACKUPDIR}/var

# /var/svn
mkdir ${BACKUPDIR}/var/svn
scp -r [email protected]:/var/svn ${BACKUPDIR}/var/svn

# /var/git
mkdir ${BACKUPDIR}/var/git
scp -r [email protected]:/var/git ${BACKUPDIR}/var/git

# /opt
mkdir ${BACKUPDIR}/opt

# /opt/redmine
mkdir ${BACKUPDIR}/opt/redmine
scp -r [email protected]:/opt/redmine ${BACKUPDIR}/opt/redmine

# /root
mkdir ${BACKUPDIR}/root
scp -r [email protected]:/root ${BACKUPDIR}/root

# /etc
mkdir ${BACKUPDIR}/etc

# /etc/apache2
mkdir ${BACKUPDIR}/etc/apache2

# /etc/apache2/sites-available
mkdir ${BACKUPDIR}/etc/apache2/sites-available
scp -r [email protected]:/etc/apache2/sites-available ${BACKUPDIR}/etc/ 
apache2/sites-available

# /etc/cron.d
mkdir ${BACKUPDIR}/etc/cron.d
scp -r [email protected]:/etc/cron.d ${BACKUPDIR}/etc/cron.d

# /etc/cron.hourly
mkdir ${BACKUPDIR}/etc/cron.hourly
scp -r [email protected]:/etc/cron.hourly ${BACKUPDIR}/etc/cron.hourly

# /etc/cron.daily
mkdir ${BACKUPDIR}/etc/cron.daily
scp -r [email protected]:/etc/cron.daily ${BACKUPDIR}/etc/cron.daily

# /etc/cron.weekly
mkdir ${BACKUPDIR}/etc/cron.weekly
scp -r [email protected]:/etc/cron.weekly ${BACKUPDIR}/etc/cron.weekly

# /etc/cron.monthly
mkdir ${BACKUPDIR}/etc/cron.monthly
scp -r [email protected]:/etc/cron.monthly ${BACKUPDIR}/etc/cron.monthly

# backup mysql
DBS=ssh [email protected] "mysql -u $MUSER -h $MHOST -p$MPASS -Bse 'show  
databases'"
for db in $DBS do
        REMOTEFILE=/root/mysql-$db.$NOW-$(date +"%T").gz
        FILE=$BACKUPDIR/mysql-$db.$NOW-$(date +"%T").gz
        ssh [email protected] "mysqldump -u $MUSER -h $MHOST -p$MPASS $db | gzip  
-9 > $REMOTEFILE"
        scp [email protected]:$REMOTEFILE $FILE
        ssh [email protected] "rm -f $REMOTEFILE"
done

Registered Linux Addict #431495
For Faith and Family! | John 3:16!
http://www.fsdev.net/


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Linux Users Group.
To post a message, send email to [email protected]
To unsubscribe, send email to [email protected]
For more options, visit our group at 
http://groups.google.com/group/linuxusersgroup
-~----------~----~----~----~------~----~------~--~---

Reply via email to