标签: VPS备份

  • Linux VPS每天异地备份

    一、首先需要找一枚FTP帐号,当然由于是用作备份,稳定和低价是第一位。大小完全根据你自己的网站大小选择。由于是V在PS直接远程上传,所以本地连接速度完全可以忽略。

    二、在本地从一下地址下载备份脚本

    http://soft.kwx.gd/tools/AutoBackupToFtp.sh

    三、用EditPlus编辑文件

    #!/bin/bash

    #你要修改的地方从这里开始

    MYSQL_USER=root #mysql用户名

    MYSQL_PASS=123456 #mysql密码

    MAIL_TO=admin@ilovecn.com #数据库发送到的邮箱 由于不选择邮件形似发送,这边随便填写即可

    FTP_USER=admin #ftp用户名

    FTP_PASS=123456 #ftp密码

    FTP_IP=ilovecn.in #ftp地址

    FTP_backup=backup #ftp上存放备份文件的目录,自己新建

    WEB_DATA=/home/wwwroot #要备份的网站数据

    #你要修改的地方从这里结束

    修改完后保存文件。

    四、将其上传到VPS的root目录下

    五、在home文件夹下新建backup文件夹。SSH代码如下

    cd /home

    mkdir backup

    六、运行以下代码在FTP中查看脚本是否起作用。

    七、如果以上步骤都没问题的话,我们只需要添加定时任务让VPS定时执行该基本即可。操作如下

    给脚本755权限

    chmod +x /root/AutoBackupToFtp.sh

    设置定时任务

    crontab -e

    在键盘中按下“i”后回车,输入以下内容

    00 00 * * * /root/AutoBackupToFtp.sh

    之后按Esc退出,然后shift+“;”组合键, 再输入wq,回车保存即可。

  • DROPBOX 定时备份VPS数据方案

    首先介绍下这里的主角–Dropbox,DropBox是一款非常好用的免费网络文件同步工具或者说是服务,类似于国内的金山快盘,可以让你轻松备份你电脑上的文件,或者是同步到另外一台电脑。不赘述,直接进入正题:

    一、安装配置Dropbox:

    Dropbox提供了不同操作系统的客服端,win下的话直接安装设置比较简单,而我们大部分的VPS都是linux操作系统,所以首先我们得在我们的VPS上安装dropbox,根据vps的系统位数选择下列命令下载dropbox:

    32位:

     

    wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86

     

    64位:

     

    wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86_64

     

    然后解压:

     

    tar xzvf dropbox.tar.gz

     

    解压完成后通过以下命令运行dropbox:

     

    ~/.dropbox-dist/dropboxd &

     

    一般情况下因为我们是第一次运行,vps未与你的dropbox账户关联,所以并不会进行同步而是会出现如下提示:

    This client is not linked to any account…

     

    Please visit https://www.dropbox.com/cli_link?host_id=XXXXXXXXXX&cl=en_US to link this machine.

     

    这里dropbox已经为你的vps生成的一个host_id,复制上述提示中https://www.dropbox.com/cli_link?host_id=XXXXXXXXXX&cl=en_US这个网址在浏览器打开,然后输入你的帐号密码,dropbox就自动帮你的账户绑定到你的VPS了.

     

    二、建立备份

     

    首先进入dropbox目录:

     

    cd ~/Dropbox

     

    在开始备份之前,我们首先要通过ln软链接你所有要备份的目录,例如:

     

    ln -s /home/wwwroot/abc

     

    ln -s /home/wwwroot/bcd

     

    具体目录可以根据自己的实际情况选择添加。

    好了,运行下列命令,dropbox便开始同步了:

     

    ~/.dropbox-dist/dropboxd &

     

    三、建立定时备份脚本

     

    dropbox默认是进行实时同步的,这肯定非常耗资源,而我们的vps总是越能节省资源越好,所以我们要设置下dropbox只间隔性的一次性同步然后关闭程序节省资源。

    首先关掉同步:

     

    killall dropbox

     

    建立并编写定时同步脚本:

     

    vi backup.sh

     

    将以下代码写入脚本:

    #!/bin/sh

    start() {

    echo starting dropbox

    /root/.dropbox-dist/dropboxd &

    }

    stop() {

    echo stoping dropbox

    pkill dropbox

    }

    case “$1″ in

    start)

    start

    ;;

    stop)

    stop

    ;;

    restart)

    stop

    start

    ;;

    esac

     

    保存后我们要给backup.sh添加执行权限:

     

    chmod +x backup.sh

     

    然后在var\spool\cron目录下建立root文件或直接运行crontab -e命令添加定时运行:

    0 2 * * * sh /root/backup.sh restart

    0 3 * * * sh /root/backup.sh stop

    这里指的是2点开始同步,3点结束同步,具体运行时间可以根据直接的实际情况调整。而间隔时间也可以根据直接要同步的数据量来进行更改。

     

    四、添加数据库备份

     

    首先建立并编辑备份命令:

     

    vi backupdb.sh

     

    将以下脚本写入,具体需要更改的脚本中已经注释得很清楚了:

     

    #!/bin/bash

    DBName=修改为数据库名

    DBUser=修改为数据库用户名

    DBPasswd=修改为数据库密码

    BackupPath=/root/Dropbox/

    LogFile=/root/db.log

    DBPath=/usr/local/mysql/var/ #备份的数据库目录

    #BackupMethod=mysqldump

    #BackupMethod=mysqlhotcopy

    #BackupMethod=tar

     

    NewFile=”$BackupPath”db$(date +%y%m%d).tgz

    DumpFile=”$BackupPath”db$(date +%y%m%d)

    OldFile=”$BackupPath”db$(date +%y%m%d –date=’5 days ago’).tgz #自动删除5天前的备份

    echo “——————————————-” >> $LogFile

    echo $(date +”%y-%m-%d %H:%M:%S”) >> $LogFile

    echo “————————–” >> $LogFile

    #Delete Old File

    if [ -f $OldFile ]

    then

    rm -f $OldFile >> $LogFile 2>&1

    echo “[$OldFile]Delete Old File Success!” >> $LogFile

    else

    echo “[$OldFile]No Old Backup File!” >> $LogFile

    fi

    if [ -f $NewFile ]

    then

    echo “[$NewFile]The Backup File is exists,Can’t Backup!” >> $LogFile

    else

    case $BackupMethod in

    mysqldump)

    if [ -z $DBPasswd ]

    then

    mysqldump -u $DBUser –opt $DBName > $DumpFile

    else

    mysqldump -u $DBUser -p$DBPasswd –opt $DBName > $DumpFile

    fi

    tar czvf $NewFile $DumpFile >> $LogFile 2>&1

    echo “[$NewFile]Backup Success!” >> $LogFile

    rm -rf $DumpFile

    ;;

    mysqlhotcopy)

    rm -rf $DumpFile

    mkdir $DumpFile

    if [ -z $DBPasswd ]

    then

    mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1

    else

    mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1

    fi

    tar czvf $NewFile $DumpFile >> $LogFile 2>&1

    echo “[$NewFile]Backup Success!” >> $LogFile

    rm -rf $DumpFile

    ;;

    *)

    service mysql stop >/dev/null 2>&1

    tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1

    service mysql start >/dev/null 2>&1

    echo “[$NewFile]Backup Success!” >> $LogFile

    ;;

    esac

    fi

    echo “——————————————-” >> $LogFile

    保存后同样要先给backupdb.sh添加执行权限:

    chmod +x backupdb.sh

    然后在var\spool\cron目录下的root文件或直接运行crontab -e命令添加定时运行:

    0 1 * * * sh /root/backupdb.sh

    一般我喜欢在dropbox运行前建立数据库备份,而具体时间可以自己调整。

     

    最后附上删除卸载dropbox的方法:

    killall dropbox

    rm -rf .dropbox .dropbox-dist Dropbox dropbox.tar.gz dbmakefakelib.py dbreadconfig.py