Linux下数据备份命令scp、rsync和后台运行

Linux下数据备份命令scp、rsync和后台运行,第1张

scp和rsync 均可实现文件的复制,但相比较,scp占用系统资源较小,rsync速度较快。当小文件众多时,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。可根据需要这俩选其一实现文件复制。

scp 是secure copy的缩写,scp是Linux系统下基于ssh登录进行安全的远程文件拷贝命令。

可以实现本地文件复制到远程服务器,也可以将远程文件复制到本地。

rsync 是remote sync的缩写。使用rsync备份数据时,不会直接覆盖以前的数据(如果数据已经存在),而是先判断已存在的数据和新数据的差异(默认规则是文件大小或修改时间有差异),只有数据不相同时才会把不相同的部分覆盖。在仅作增量数据的copy时比scp灵活。

一般CentOS默认安装rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安装。

单个冒号和双冒号的区别 :使用rsync在远程传输数据前,是需要进行登陆认证的,这个过程可使用ssh协议也可以使用rsync协议完成。单冒号(:)使用的是ssh协议;双冒号(::)使用的是rsync协议。

默认情况下,rsync只确保源文件的所有内容(明确排除的文件除外)都复制到目标目录。它不会使两个目录保持不同,并且不会删除文件。如果要使目标目录成为源目录的镜像副本,则使用--delete选项。可删除只存在目标目录,不存在于源目录的文件。

增量备份算是一个经常使用的场景了。两台服务器之间进行文件定期备份,无需所有文件都copy一遍,仅复制有变动的文件。

具体做法是,第一次同步是全量备份,所有文件在基准目录里面同步一份。以后每一次同步都是增量备份,只同步源目录与基准目录之间有变动的部分,将这部分保存在一个新的目标目录。这个新的目标目录之中,也是包含所有文件,但实际上,只有那些变动过的文件是存在于该目录,其他没有变动的文件都是指向基准目录文件的硬链接。

--link-dest 参数用来指定同步时的基准目录。

上面命令中, --link-dest 参数指定基准目录 /compare/path ,然后源目录 /source/path 跟基准目录进行比较,找出变动的文件,将它们拷贝到目标目录 /target/path 。那些没变动的文件则会生成硬链接。这个命令的第一次备份时是全量备份,后面就都是增量备份了。

一般服务器之间复制文件都比较大,为防止误操作,最好在后台运行。但因为需要和远程服务器之间的ssh通讯多是需要密码的,所以不能直接使用nohup 放置于后台。无论是scp还是rsync都可操作如下:

后台和前台任务的切换

scp不支持断点续传,挂起scp进程可能导致数据缺失。倾向于使用rsync。

如果有其他任务需要使用nohup后台运行,但执行时却忘记了使用nohup,也可参照此方法进行设置。

参考:1 Linux之scp命令及后台运行scp

  为了解决文件增多导致rsync变慢的问题,方案是很多的。

  1、使源目录保存较少文件

  这是一个传统优化办法,因为rsync虽然是同步所有文件,但和同步最近更新的文件是一个道理,因此将源服务器上的目录删除,仅仅保持最近更新的文件,文件数量就变得不但很少,而且是稳定的,随着时间推移,这数量也不会涨得很快。但这样做有个缺点,就是rsync不能使用删除模式,如果有文件要删除,可以将其弄成空文件,假如有更严格要求,可以另一个程序来删除。

  2、使用/dev/shm内存分区

  在源目录保持较少文件的前提下,将文件不存在硬盘上而放入内存,就可以避免系统IO带来的问题,但是这个内存分区在系统reboot后会丢掉所有数据,虽然并不常常需要reboot,但是其中的风险也需要计算清楚。

  3、使用推送方式

  因为性能问题是出现在rsync的客户端,用生产服务器抓取源服务器的话,性能问题就会出现在生产服务器上,这当然不很妥当。假如在生产服务器上使用 rsync daemon,源服务器执行rsync命令将文件推送到生产服务器上,性能问题就转移到了源服务器上,这在一定程度可以保证生产服务器的稳定性。

  4、仅用一台作同步比较

  假如源服务器的文件要被同步到很多台生产服务器,那么会出现rsync并发。可以分析到这些生产服务器在同一时刻文件是一致的,因此每台机都和源服务器做一次比较就是浪费的。这时可以让源服务器和生产服务器同步一次,并且使用-v参数打印出log,其它生产服务器通过同步这个log记录的文件就可以避免数次比较过程。

  5、使用inotify

  inotify就不是rsync了,inotify是一个守护进程,它可以监控到文件目录下的文件变动情况,根据其输出然后用rsync做文件传输,就可以减掉文件比较这个环节。inotify使用并不复杂,对文件变更情况的监控是实时的,也不消耗很多性能。

  以上均是对rsync性能方面做优化,但是优化也会带来问题。在3、4、5号方案中,假如生产服务器有一台机器因为负载或其它问题reboot了,在 reboot过程中同步就失败了,这部分失败的文件假如没有其它处理,就永远不会再同步到生产服务器上。这时可以使用多一路rsync来处理,譬如使用 inotify,做到了实时同步,然后再每小时进行一次完整的rsync同步。这样就可以保证有很高的同步速度,又能使丢失文件的风险控制在一小时之内。

网站镜像和多点部署操作详解

随着互联网和移动设备的快速发展,网站的访问量越来越大,如何保证网站的高可用性和稳定性成为了每个网站开发人员必须考虑的问题。网站的镜像和多点部署技术就是解决这个问题的一种有效方法。

什么是网站镜像?

网站镜像是指将一个网站的文件复制到另一个或多个服务器上,使用户可以通过多个地点访问同一个网站,从而提高网站的可用性和性能,同时也能更好地应对流量峰值的挑战。

网站镜像的好处

1提高网站的可用性和稳定性

当一个网站只有一个服务器时,如果服务器挂机了,用户就无法访问网站。而通过网站镜像,将网站复制到多个服务器上,就可以实现负载均衡,确保即使有一个服务器挂机,用户也能通过其他服务器继续访问网站。

2提高网站的访问速度

当用户远离服务器所在地区时,网站的访问速度就会变慢。而通过网站镜像,将网站复制到全球各地的服务器上,用户就可以通过离自己最近的服务器访问网站,从而大大提高访问速度。

3更好的应对流量峰值

当一个网站受到大量访问时,单个服务器可能无法承受如此大量的访问请求。而通过网站镜像,将网站复制到多个服务器上,就可以实现负载均衡,从而更好地应对流量峰值。

如何进行网站镜像?

网站镜像可以通过以下几种方式实现:

1手动复制文件

这是最简单的方式,只需将网站的文件复制到其他服务器上即可。但这种方式需要手动管理多个服务器,不仅效率低下,而且容易出错。

2文件同步工具

使用文件同步工具,可以在两个或多个服务器之间实现文件的同步。例如rsync就是一种常用的文件同步工具,它可以自动将一个服务器上的文件同步到其他服务器上,但需要专业人员进行配置。

3CDN

CDN是一种可以将网站复制到全球多个节点的云服务。使用CDN,用户可以通过离自己最近的节点访问网站,从而更快地访问网站。但需要付费,而且需要专业人员进行配置和维护。

什么是网站多点部署?

网站多点部署是指将网站的文件复制到多个不同的数据中心或区域的服务器上,来保证更好的可用性和确保在不同国家和地区访问网站的速度和体验。通常用于对可用性要求很高的企业或大型网站。

网站多点部署的好处

1提高网站的可用性和稳定性

当一个网站只有一个数据中心或区域的服务器时,可能会受到自然灾害、网络问题等影响而无法访问。而通过网站多点部署,可以将网站复制到多个数据中心或区域的服务器上,即使有一个数据中心或区域的服务器无法访问,其他数据中心或区域的服务器也可以正常工作,提高网站的可用性和稳定性。

2提高网站的访问速度

通过多点部署,可以让用户访问离自己最近的服务器,从而减少响应时间,提高访问速度。

3更好的应对流量峰值

当一个网站受到大量访问时,单个服务器可能无法承受如此大量的访问请求。而通过网站多点部署,将网站复制到多个数据中心或区域的服务器上,就可以实现负载均衡,从而更好地应对流量峰值。

如何进行网站多点部署?

网站多点部署可以通过以下几种方式实现:

1自建多点部署

自建多点部署需要在不同的数据中心或区域租用物理服务器,然后将网站的文件复制到这些服务器上。但这种方式需要人工管理多个服务器,成本较高。

2云服务

云服务是一种将网站复制到全球多个节点的云服务。使用云服务,用户可以通过离自己最近的节点访问网站,从而更快地访问网站。云服务还提供自动负载均衡和容灾功能。通常可以选择AWS、阿里云等厂商进行服务。

总结

无论是网站镜像还是多点部署,都是应对高流量、高可用性、更好的分发以及短下载时间等问题不可或缺的技术。选择何种方式取决于自身企业的实际需求以及特定行业的实际情况。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Linux下数据备份命令scp、rsync和后台运行

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情