rsync、ssh备份

Linux系统需求

  为了实现这个备份程序,需要准备一个外部驱动器。您可以将备份写到一个外部USB磁盘,但这样做效率不高。因此,我假设您将备份写到位于网络某处的服务器中。这台服务器要为带有SSH和rsync的一台Linux服务器(任何Linux发行版都可以)。

  除了一个备份介质,您还需要rsync。这个多用途的同步工具是所有Linux发行版上的一个默认组件。正如其名称所示,它会帮助您进行文件的远程同步。但是,它不执行增量或者差异备份。为了防止本地硬件驱动器崩溃,而想将数据存到别处时,这个工具就可以发挥作用。您也可以调整备份步骤,去进行增量和差异备份,但这不是本文的目的。

  现在,就很容易对我们备份方案的基本内容进行理解了。Rsync需要与远程服务器进行通讯并将数据写入该服务器。Rsync实现这一点所采用的默认机制是SSH。您可以不这么做,但是几乎在所有的Linux机器上,SSH都可用,所以您可以正好使用这个工具。下面的命令给出了rsync命令的一个例子:

  rsync -rau --progress /data 192.168.1.98:/data

  通过这个命令,rsync开始对本地目录/data和服务器192.168.1.98上目录/data上的内容进行同步。到服务器的连接是通过当前用户账户来建立的。这意味着,如果您是本地工作站上一个叫linda的用户,那么您就会以linda这个账户来连接远程机器。而如果您是root用户,那么您就会作为root用户进行连接。不过要确保您有足够的权限去读源目录的内容,并对服务器上的目标目录进行写入。其次,rsync命令使用了一些参数。--progress参数会显示rsync命令的进度,-rau参数会确保对一切的同步,包括文件里的元数据。

  在发出该命令之后,您本地目录/data里面的内容会跟服务器上/data目录的内容进行同步。但是,这个命令的缺点是您必须进行手动输入,而手动输入则意味着您可能会忘记。所以我们需要通过创建一个cron任务来让其自动工作。cron的问题在于建立与服务器的连接,已经连接到了服务器上的SSH守护进程,而该进程会要求提供一个密码。可选的解决办法之一,是使用公私钥对SSH进行配置来让过程自动化。

  配置自动SSH登录

  使用公/私钥的思路是,在您的工作站上,创建一个密钥对,一个公钥和一个私钥。接下来,将公钥拷贝到服务器的~/.ssh/authorized_keys文件中(~指的是当前用户的主目录)。下次,当您在工作站上启动一个SSH命令时,它会首先自动尝试通过您的公或私钥对进行连接。工作站使用私钥生成一个加密包,如果服务器可以进行解密,工作站就可以100%的确认您的身份,而您就可以不输入密码而得到认证。要创建此配置,应该执行以下过程:

  1. 在工作站上,使用ssh-keygen –t dsa命令,并只按Enter,以接受所有的默认回答。这样,系统会产生一个名为~/.ssh/id_dsa的文件,该文件为您的私钥,以及一个~/.ssh/id_dsa.pub文件,作为您的公钥。
  2. 现在,使用ssh-copy-id命令将公钥拷贝到您服务器的主目录中。下面的命令会帮助您实现这个目的:

  ssh-copy-id -i ~/.ssh/id_dsa.pub 192.168.1.98

  通过使用这个命令,在服务器上创建了一个.ssh/authorized_keys文件,并允许您通过公/私钥对进行登陆。

  在执行这些步骤之后,您现在可以通过下列的命令登陆到远程服务器:

  ssh 192.168.1.98

  可以看到,现在您能不输入密码就进行登陆了。

  使用cron安排备份计划

  现在,您知道您必须要使用什么命令,SSH也已经被设置好,以让您自动登录,您需要告诉计算机每天都去自动同步数据。为了帮助您做到这一点,可以在您的工作站上使用cron,该工具是另外一个在所有的Linux发行版中都使用的默认组件。为了给您的当前账户创建一个cron任务,您可以使用crontab –e命令。开启vi或者joe这样的crontab编辑器。在编辑器中,输入下列命令:

  0 10 * * * rsync -rau /data 192.168.1.98:/data

  正如您所看到的,在crontab文件中,输入的命令与我们之前使用过的rsync命令是一样的。唯一的不同是:--progress参数被省略了。因为cron是作为一个背景任务来运行的,没有连接到计算机上的任何终端,所以没法向您展示进度。

  在实际的命令运行之前,您需要告诉cron什么时候去执行该命令。为了做到这一点,在例子命令行里,我使用了0 10 ***。在cron中,当一个任务需要去执行时,会使用5个位置去指示时间。通过使用上面的命令,会在每天的上午10运行该任务。切记,在第1个位置使用0去指定任务要运行的确切分钟数。如果忘了,从10:00到10:59,该任务会一直在运行。

  到这里,我们已经对如何去建立一个基本但有效的备份程序进行了全部的介绍。虽然还有许多其它的解决方案,但本文介绍的方案是其中少有的几个简单而有效的方案之一。而且相对于一人公司和家庭用户最普遍的备份程序:完全没有备份而言,它永远是更有效的。

http://blog.csdn.net/kl222/article/details/5401163

时间: 2024-08-28 15:33:59

rsync、ssh备份的相关文章

LinuxShell脚本之利用rsync+ssh实现Linux文件系统远程备份

功能介绍: 该脚本用于定期(结合crontab一起使用)将本地目录通过rsync+ssh传输到远程服务器,每次执行都生成一个带有以时间命名的目录,并且当前最新版本的数据链接到一个名字叫current的符号链接上,便于查找和恢复.在数据传输完成前,会传输到临时目录下,这个临时目录被命名为"时间-incomplete".超过10天的备份将被删除,超过10天的日志文件也将被删除. 运行原理: 脚本运行的核心就在于ssh的互信和rsync命令.利用rsync能实现压缩传输,节省传输时间. 感谢

开源服务专题之-------rsync数据备份

RSYNC是Remote Sync 远程同步的简称,与SCP的比较,SCP= 无法备份大量数据,类似windows的复制,而rsync=边复制 ,边统计,边比较,可以备份大量数据.可以镜像保存整个目录树和文件系统.可以很容易做到保持原来文件的权限.时间.软硬链接等等.无须特殊权限即可安装.快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件.压缩传输:rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽.安全:可以使用scp.ssh等方式来传输文

FreeBSD系统下rsync + SSH增量备份文件——自己制作

rsync + SSH增量备份文件--自己制作 --简体--推荐OK http://troy.jdmz.net/rsync/index.html 研究了这篇文章,里面写得满详细的:我的这篇文章只是把我实际操作的过程记录下来而已.内容有误或是您有更好的方案,欢迎您在下方的 comments 中给我建议 :) 有两台机器,姑且一台叫服务器,一台叫备份机.要怎么样才能每天或是定期地,把服务器的数据整个复制到备份机呢?这里就要用到 rsync (详: 维基百科) 的强大功能了. rsync 在每次传输的

Centos6.5 rsync同步备份

前言:本章主要讲解实现快速.安全.高效的异地备份 实验环境:服务端A 192.168.1.10   客户端B 192.168.1.20 一,安装rsync    yum  -y  install  rsync*   新建配置文件 vi /etc/rsyncd.conf uid = nobody gid = nobody use chroot = yes address = 192.168.1.10 port 873 log file = /var/log/rsyncd.log pid file

rsync数据备份方案

最近整理了下公司的数据备份情况.以下是部分操作的过程 1.rsync数据备份,具体备份过程就不详细介绍.数据都备份在/bakup目录下 2.删除过期数据及空目录 公司的备份数据量比较大,必须及时清除过期数据. echo "日期:$(date +%Y-%m-%d):以下是以过期31天的文件:" > /var/log/delete.log find /bakup -mtime +31 -name "*" >> /var/log/delete.log f

rsync+crontab备份方案

一.准备工作 1.1.安装Rsync 检查系统是否安装rsync 客户端NFS: [[email protected] ~]# rpm -qa rsync rsync-3.0.6-12.el6.x86_64 服务端rsync: [[email protected] ~]# rpm -qa rsync rsync-3.0.6-12.el6.x86_64 如果没有安装rsync服务 [[email protected] ~]# yum install rsync -y 1.2.配置rsync服务端:

【运维小实验】数据镜像备份实验inotify+rsync实时备份

数据镜像备份实验inotify+rsync实时备份 本文是基于VM搭建的虚拟集群环境,全部虚拟机网卡模式为NAT方式相连,处于同一网段. 搭建环境: 使用redhead 2.6.32-431.el6.x86_64版本的linux,创建两台,配置相关网络信息,确保同一网段下. 安装配置rsync+inotify Rsync一般系统默认安装了,如果没有安装的去相关网站下载安装包解压安装即可 Inotify登陆https://github.com/rvoicilas/inotify-tools/wik

rsync 全网备份

rsync全网备份 1.首先检查服务器中是否有rsync服务 查看方式使用rpm -qa|grep "rsync" 进行查看是否已存在, 如果不存在就是用yum install rsync -y 进行下载安装 2.将备份服务器端的rsync进程启动. 启动方式:rsync --daemon 然后进行查看进程是否开启 ps -ef |grep "rsync" 3.创建虚拟用户reync,并不指定家目录 创建方式 useradd -s /sbin/nologin/ -M

expect与rsync 异步并行备份数据脚本

expect与rsync 异步并行备份数据脚本 #!/bin/bash #author:qunying.liu #2014.08.02 #脚本用途:通过rsync从远程机器备份数据到本机机器对应目录 #脚本目录:/usr/local/scripts/,expect脚本目录:/usr/local/scripts/dsfilersync, #备注:一个机器对应一个exp脚本,该脚本中包含该机器所有rsync同步目录. #初始化目录 cd   /usr/local/scripts/ grep "rsy

Service系统服务(六):rsync基本用法、rsync+SSH同步、配置rsync服务端、访问rsync共享资源、使用inotifywait工具、配置Web镜像同步、配置并验证Split分离解析

一.rsync基本用法 目标: 本例要求掌握远程同步的基本操作,使用rsync命令完成下列任务: 1> 将目录 /boot 同步到目录 /todir 下   2> 将目录 /boot 下的文档同步到目录 /todir 下   3> 在目录 /boot 下新增文件 a.txt,删除 /todir 下的子目录 grub2,再次同步使 /todir 与 /boot 一致   4> 验证 -a.-n.-v.--delete 选项的含义 方案: 本地同步操作: rsync [选项...] 本