Thursday, August 25, 2011

Smart Backup


ssh Remote sever Backup (without smart backup)

Go backup server 47.68

create a user use /sbin/useradd sglx2
add password use passwd sglx2 123123123
cd /home/sglx2/
mkdir .ssh
cd /.ssh
vi authorized_keys (new file), copy all the contain inside

check backup script how it run, then
check the file at /home/sglx2 (normallly is symbolic link), create the folder accordigly and link them.
after create folder, remember check the folder owner right.
  -mkdir sglx2 (at data1, data2,data3 and data4)
  -chown sglx2:sglx2 sglx2
  -ln -s /data1/sglx2 /home/sglx2/backup1


go current server,
cd /root/.ssh
vi id_dsa.pub
(paste authorized_keys copy from backup server)




With smart backup

go backup server 47.68
vi ips1/createBackupRepo
cd /disks/sdaa1/
/ips1/createBackupRepo
vi /etc/rsyncd.secrets ( ket in password [a])

Go new server
cd /ips1
vi rsync.login (put in password [a])


fwup changes(folo ns56) *allow backup:
1. copy to new server

Copy smartbackup script to new server. test run, if backup server got file then success!


########################
Smart Backup ns56
#########################
#!/bin/bash
set -x


DEST_SERVER="210.5.47.68"
DEST_LOGIN="ns56"
DEST_FOLDER="ns56_backup"
TODAY=$(date +"%a")

NOW=$(date +"%d-%m-%Y")
i=$(date +"%Hh%Mm%Ss")
FILE="i.$NOW-$i.tar.gz"
zdate=$(date +"%F")

chmod 600 /ips1/rsync.login

#---------------------------------------------
# folder check
#---------------------------------------------
if [ ! -d "/ips1/tar.data" ]; then
    mkdir /ips1/tar.data
fi


if [ ! -d "/ips1/tar.data/home" ]; then
    mkdir /ips1/tar.data/home
fi


#---------------------------------------------
full_backup() {
#---------------------------------------------

case $TODAY in
        Sun)    DATA_PATH="backup_week";;
    Mon)    DATA_PATH="backup1";;
    Tue)    DATA_PATH="backup2";;
    Wed)    DATA_PATH="backup3";;
    Thu)    DATA_PATH="backup1";;
    Fri)    DATA_PATH="backup2";;
    Sat)    DATA_PATH="backup3";;
        *) ;;
esac

#create coin file
date "+%F" > /home/zzdate.txt
date "+%F" > /root/zzdate.txt
date "+%F" > /etc/zzdate.txt
date "+%F" > /var/lib/mysql/zzdate.txt
date "+%F" > /var/named/zzdate.txt
date "+%F" > /usr/local/directadmin/zzdate.txt
date "+%F" > /var/www/html/webmail/zzdate.txt


# --------------------------------------
# backup home
# --------------------------------------

cd /home
for u in *; do
    #rsync --password-file=/ips1/rsync.login -r --owner --group -v --progress --delete $u rsync://$DEST_LOGIN@$DEST_SERVER:/$DEST_FOLDER/$DATA_PATH/home/
    rsync --compress --password-file=/ips1/rsync.login -r --times --perms --links --owner --group -v --progress --delete --exclude *.tar.gz --exclude *.iso $u rsync://$DEST_LOGIN@$DEST_SERVER:/$DEST_LOGIN\_$DATA_PATH/home
done


# --------------------------------------
# backup etc
# --------------------------------------
        rsync --compress --password-file=/ips1/rsync.login -r --times --perms --links --owner --group -v --progress --delete /etc rsync://$DEST_LOGIN@$DEST_SERVER:/$DEST_LOGIN\_$DATA_PATH/
        rsync --compress --password-file=/ips1/rsync.login -r --times --perms --links --owner --group -v --progress --delete /var/named rsync://$DEST_LOGIN@$DEST_SERVER:/$DEST_LOGIN\_$DATA_PATH/
        rsync --compress --password-file=/ips1/rsync.login -r --times --perms --links --owner --group -v --progress --delete /usr/local/directadmin rsync://$DEST_LOGIN@$DEST_SERVER:/$DEST_LOGIN\_$DATA_PATH/directadmin
        rsync --compress --password-file=/ips1/rsync.login -r --times --perms --links --owner --group -v --progress --delete /var/spool/cron rsync://$DEST_LOGIN@$DEST_SERVER:/$DEST_LOGIN\_$DATA_PATH/cron

        rsync --compress --password-file=/ips1/rsync.login -r --times --perms --links --owner --group -v --progress --delete /var/lib/mysql rsync://$DEST_LOGIN@$DEST_SERVER:/$DEST_LOGIN\_$DATA_PATH/mysql

        rsync --compress --password-file=/ips1/rsync.login -r --times --perms --links --owner --group -v --progress --delete /var/www/html/squirrelmail rsync://$DEST_LOGIN@$DEST_SERVER:/$DEST_LOGIN\_$DATA_PATH/

#monitor rsync_backup
/usr/bin/curl http://210.48.154.215/ips1/update_db.php?zzdate=$zdate\&zzhost=$DEST_LOGIN\&zzpath=$DATA_PATH


}
#---------------------------------------------
# MAIN()
#---------------------------------------------


full_backup

No comments:

Post a Comment