当前位置: 首页 > 编程笔记 >

服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?

申浩广
2023-03-14
本文向大家介绍服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?,包括了服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?的使用技巧和注意事项,需要的朋友参考一下

很多单位都有文件服务器备份的需求,并且常常是把一个服务器的文件自动备份到另外一台文件服务器 。如何实现呢?

一、Windows文件服务器自动备份的方法

Windows文件服务器自动备份的最简单方法是安装专门的服务器文件自动备份软件,目前国内有一些专门用于备份服务器文件的软件。例如有一款“大势至服务器文件自动备份系统”(下载地址:http://www.grabsun.com/filebackup.html),只需要在服务器上安装之后,就可以对服务器的文件进行增量备份和全量备份,也就是可以把服务器的文件夹自动、定时备份到服务器的其他磁盘分区、外接移动硬盘、其他文件服务器或NAS存储空间等,从而有效保护服务器文件安全,防止服务器文件丢失。如下图所示:


图:大势至服务器文件自动备份软件

同时,通过大势至服务器文件自动备份系统还可以实现只让将一个服务器上的文件或文件夹以及对应的账号,全部迁移到另外一个服务器,从而避免了重新设置账户和文件访问权限的麻烦。如下图:


图:服务器文件迁移

当然,你也可以通过脚本命令来实现。具体如下:

项目有些文件上传到windows系统临时文件,需要定期进行备份。例如我要将D/information/images文件夹及其下所有文件复制到F/Archives文件夹下,方法如下: 

1、新建txt文件,输入以下内容 

参数解释:

  • /e:拷贝所有子目录,包括空子目录;
  • /I: 如果目标文件或目录不存在且拷贝的文件数多于一,则假设目标为目录;
  • /d:只拷贝文件日期与在目标文件后的文件(即修改过的源文件)
  • /h:同时拷贝隐藏文件和系统文件
  • /r:拷贝并覆盖只读文件
  • /y: 复制文件审核设置(不显示已有文件覆盖确认) 

2、保存文本文件后,通过重命名将文件改为".bat"文件 

3、win10系统中 

开始处右键--> 计算机管理 --> 系统工具 --> 任务计划程序 --> 任务计划程序库 --> 创建任务

win7系统中

附件 --> 系统工具 --> 任务计划程序 -- 创建任务

此处创建的是每天早上9点整执行一次,创建完成后,参考图3选中 该条任务,点击可选项中的“运行”按钮,查看运行效果。

如果需要每隔N分钟触发一次,需要如下设置触发器(以每10分钟一次为例)

二、linux文件服务器自动备份的方法

1、提前说明:

以在两台服务器之间建立定时同步为例,将服务器A /home/jack 路径下的内容备份到服务器B /home/test 路径下 

设置定时同步时间为5分钟

 2、配置过程:

服务端(即服务器A):

安装rsync:yum -y install rsync

ln -s /etc/rsyncd.conf

编写rsync的配置文件:vim rsyncd.conf

解析如下:  

 uid = root      #root用户访问(我这里用ROOT用户,也可以用其他新建的用户)
  gid = root      #root组用户访问
  port=871      #通过端口873
  use chroot = yes   #可以使用chroot
  read only = no    #可读写
  max connections = 4 #最大连接数
  list = no      #不列出文件清单
  pid file = /var/run/rsyncd.pid    #此步可没有此文件
  timeout = 900
  lock file = /var/run/rsyncd.lock   #此步可没有此文件
  log file = /var/log/rsyncd.log     #此步可没有此文件
 
  [backup]          #发布项(注意这个命名) 
   comment = this is module for backup  #模块介绍,可删去
   path = /home/jack/     #发布的路径
   ignore errors
   auth users = root      #认证用户为root
     secrets file = /etc/rsyncd.pass  #密码文件

4.编写用户密码文件:echo “root:111” > /etc/rsyncd.pass

(root:上一步设置的登录用户名;111:文件的密码自己随意设,但要记住,接下来需要用到;此步创建了rsyncd.pass文件) 

修改密码文件的权限(此步很重要,且只能是600):chmod 600 /etc/rsyncd.pass

启动rsyncd服务

service rsyncd start

查看进程占用端口:netstat -tunlp

(启动rsyncd服务后会显示873端口被rsync占用) 

客户端(即服务器B):

1.yum -y install rsync

2.echo “root:123” > /etc/rsyncd/rsyncd.pass

(root:用户名可不写,如果写,必须要和服务端设置的第3步中设置的用户名一致; 111:密码,必写,要和服务端设置的第4步中的密码一致)

 3.chmod 600 /etc/rsyncd.pass

4.创建存放备份文件的路径:mkdir /home/backups

(路径自己随意设)

5.每隔5分钟将服务器A中的backup模块目录下的文件(我们设置的是/home/jack)同步到本地下(我们设置的是/home/backups)

1> ssh-keygen -t dsa -b 1024

2> 将id_dsa.pub里面的内容添加到B机的authorized_keys文件中cat /root/.ssh/id_dsa.pub >> authorized_keys1

3> 创建一个需要定时执行的脚本文件,如:rsyncd.sh脚本:vi /etc/rsyncd.sh(路径自己设置的),在此脚本中添加如下内容:(命令的每条含义文档最后有解释)

rsync -auv --password-file=/etc/rsyncd.pass
root@192.168.22.99::backup /home/test/ 

4> 设置脚本执行的时间:crontab –e,添加如下内容

*/5 * * * * sh /etc/rsyncd.sh #第5分钟执行一次同步;

到此,同步配置基本完成,正常情况下每5分钟就会同步一次 

也可直接输入同步命令检查是否能够同步,命令格式为: 

rsync命令格式:rsync [option] 源路径 目标路径 

例如: 将服务器A backup模块下要备份的文件同步到本地/home/test目录下: 

rsync -auv --password-file=/etc/rsyncd.pass
root@192.168.22.99::backup /home/test/ 

正常情况下,同步成功会显示以上信息。

 类似资料:
  • 本文向大家介绍Windows服务器文件备份到本地的方法、Windows服务器数据备份方案,包括了Windows服务器文件备份到本地的方法、Windows服务器数据备份方案的使用技巧和注意事项,需要的朋友参考一下 重要的数据必须备份,并且必须实时备份,否则一旦出现意外情况,将会给服务器文件安全带来巨大灾难。那么,如何备份服务器文件呢?本文以Windows为例说明服务器文件备份的方法 方法一、通过专门

  • 我已经通过Composer下载并安装了谷歌云存储PHP库,下载了JSON密钥文件,但我无法使用该库做任何事情。当我严格按照指示去做时,我只得到错误。不管怎样,这是我试图做任何事情的文件中的代码,比如列表桶文件,或者上传文件,等等...谁能告诉我我做错了什么?我真的很想在我的服务器上使用谷歌云存储来备份文件。 如果这有助于澄清,我正在使用DreamHost VPS作为我的服务器。它支持PHP7.0。

  • 问题内容: 我需要将Jenkins 2.32版从服务器A移至Jenkins 2.72.1服务器B。两台服务器均具有ubuntu 16.04.3,由于内存问题,我无法安装任何插件,也无法在服务器A中使用该插件。有什么办法可以实现这一目标? 问题答案: 将目录中的所有文件复制到新服务器。 将新服务器指向新目录。 将Jenkins war文件(或servlet容器设置,如果有的话)复制到新机器上并启动它

  • 在我们公司的一个场景中,我们有两个web应用程序发布在不同的IIS服务器上。其中一个是加入公司域的,承载内部用户的web应用程序;另一个不加入公司域的,承载外部用户的web应用程序。在一个特殊的场景中,外部用户需要上载一个文件到服务器,内部用户需要访问该文件。存储这些文件并同步它们的最佳方法是什么? 我认为第三个服务器是一个文件服务器,它承载这些文件?但是,我们怎么做呢? 安全小组施加了几个限制:

  • 本文向大家介绍一键备份gitolite服务器的Shell脚本,包括了一键备份gitolite服务器的Shell脚本的使用技巧和注意事项,需要的朋友参考一下 运行一次就能够把gitolite服务器上的仓库备份到本地. 第一次运行会创建远程仓库的本地镜像, 以后每次运行会把本地镜像更新. 本程序只支持 ssh方式 其他的git server貌似不会在 ssh git@xxx 的时候返回repo列表,

  • 我正在使用spring boot/Angular 6应用程序,我想将文件上载到服务器,我按照本教程上载了一个多部分文件:https://grokonez.com/spring-framework/spring-boot/angular-5-upload-get-multipartfile-to-from-spring-boot-server“。文件上载在应用程序的文件夹中,但现在我想使用URL将文