• 使用Rsync自动实现网站增量备份


    使用Rsync自动实现网站增量备份

    MoeWah 已经在网站上发布了多篇备份相关的文章,希望大家在其中已经获得了自己想要的东西,现在,MoWah再补充一下Rsync备份的相关内容,提到Rsync,很多熟识Linux的朋友都不会陌生,很多Linux的镜像都是采用这种方式进行同步的。网络上更是有很多人采用了Rsync配合DNS,为网站架设多个镜像站点的案例。本文仅粗浅的介绍一个使用Rsync进行网站备份的方法,也欢迎大家补充更多内容。

    Rsync1.jpg

    Rsync1.jpg

    首先,我们假定网站所在的服务器为A服务器,备份服务器为B服务器。安装rsync的方法就不说了,Linux直接yum/apt-get install rsync 就可以了

    1.用ssh-key-gen命令在A服务器上创建公钥和密钥(目的是免密码登录B服务器)

    ssh-keygen -t rsa

    2.在A服务器上运行 ssh-copy-id 命令把公钥复制到B服务器(.ssh/authorized_key)上,期间需要输入B服务器的密码

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@B服务器的ip

    如果出现形如如下错误

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that the RSA host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    xxxxxxxx
    Please contact your system administrator.
    Add correct host key in /home/conbar/.ssh/known_hosts to get rid of this message.
    Offending key in /home/conbar/.ssh/known_hosts:10
    RSA host key for xxxxxx has changed and you have requested strict checking.
    Host key verification failed.

    在A服务器下运行如下命令

    ssh-keygen -R B服务器的ip

    3.在A服务器上尝试登录B服务器

    ssh B服务器ip

    如果成功就没问题了

    4.A服务器建立备份脚本(本文示例是在/root下建立了backup.sh文件):

    示例1(先打包再同步):

    #!/bin/bash
    echo "Now packing your database..."
    mysqldump -uroot -p数据库密码 数据库名称> backup.sql
    echo "Now your files..."
    tar zcvfP backup.tar.gz 网站目录(如/home/wwwroot)
    echo "rsync start..."
    echo "Database file is under rsync..."
    rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/backup.sql B服务器ip:/home/
    echo "Now your files..."
    rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/backup.tar.gz B服务器ip:/home/
    echo "Complete!"

    示例2(直接同步网站目录,可实现增量备份):

    #!/bin/bash
    echo "Now packing your database..."
    mysqldump -uroot -p数据库密码 数据库名称> backup.sql
    echo "rsync start..."
    echo "Database file is under rsync..."
    rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/backup.sql B服务器ip:/home/
    echo "Now your files..."
    rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /home/wwwroot B服务器ip:/home/
    echo "Complete!"

    5.为备份脚本增加运行权限

    chmod +x backup.sh
    运行sh backup.sh进行备份尝试

    6.设置crontab(crontab -e命令)进行定期备份(每周二、周四凌晨4点开始备份)

    # m h  dom mon dow   command
    0 4 * * 1,4       /bin/bash /root/backup.sh
  • 相关阅读:
    win10 点击开始按钮无反应
    Server Error in '/' Application. IIS拒绝访问
    vs2017添加引用时报错未能正确加载“ReferenceManagerPackage”包。
    关于JavaScript中的this指向问题
    4p-在一张图片中根据矩形四个点的坐标计算两个矩形是否相交
    opencv使用
    [VMware]虚拟网络编辑器
    [所思所想]观《长津湖》有感
    [项目管理]失败的软件项目所具备的特点【待续】
    [软件过程/软件生命周期模型]软件过程的工具链【待续】
  • 原文地址:https://www.cnblogs.com/zkwarrior/p/13464027.html
Copyright © 2020-2023  润新知