linux 定时自动异地备份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 定时自动异地备份相关的知识,希望对你有一定的参考价值。

目的:每天将A服务器(192.168.0.23)上的文件复制到B服务器(192.168.0.25)上,如果已经存在则不复制。

思路:

  1. 首先统一服务器时间,避免出现莫名的错误或者管理上的混乱。用NTP

  2. 由于是跨服务器复制,涉及到密码自动录入的问题。需要解决。

  3. 用scp复制,会覆盖已经存在的文件,增加无用的工作。改用rsync。

  4. 由于要定时自动执行命令,需要用到crontab。


解决步骤:

  1. 解决时间同步问题

    用ntpdate 192.168.0.253将内部NTP服务器的时间同步过来。为了以后的自动执行的时间同步,在/etc/ntp.conf内,添加NTP服务器:

    vi /etc/ntp.conf

    server 192.168.0.253

    :x

  2. 解决密码自动录入问题

    参考网址:http://blog.sina.com.cn/s/blog_8ad7d4ca01014lft.htm

    有两种方法,一是用expect,需要安装。一是用密钥文件。这里用第二种密钥文件。

    在A服务器上执行如下命令来生成配对密钥:

    ssh-keygen -t rsa

    遇到提示回车默认即可,公钥被存到用户目录下.ssh目录,比如root存放在:/root/.ssh/id_rsa.pub

    将 .ssh 目录中的 id_rsa.pub 文件复制到 B 的 ~/.ssh/ 目录中,并改名为 authorized_keys。

  3. 用rsync复制:

     -avzu /root/.ssh/id_rsa 192.168.0.25:/backup/ncbackup

  4. 将此命令写入cron服务内:

    crontab -e

    00 09 * * * /usr/bin/rsync -avzu /root/.ssh/id_rsa 192.168.0.25:/backup/ncbackup

    参考:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html



以上是关于linux 定时自动异地备份的主要内容,如果未能解决你的问题,请参考以下文章

mysql自动备份脚本及异地定时FTP

Linux 系统定时拷贝(发送)文件到 windows 系统,实现异地备份

Linux 系统定时拷贝(发送)文件到 windows 系统,实现异地备份

如何自动批量异地备份压缩SQLSERVER数据库

[Linux]经典面试题

linux crontab mysql定时自动备份