在windows和Linux系统之间进行数据备份

1. 数据备份目的

我希望将一些重要的文本数据保存在我的多台windows电脑和服务器中。这样实现数据的安全的同时,能随时在不同的windows电脑上对这些文件进行访问和实时修改。

为了实现这样的功能,我的操作方法是:以Linux服务器上的数据为主,每当开启我的某台windows系统后,我会点击桌面上的一个程序,开始和服务器上的数据进行同步;每当对数据文件进行修改后,再次点击桌面上的程序,再次进行和服务器的数据同步。具体备份机制则是使用rsync命令进行数据文件夹的同步,能检测各个文件的时间戳,从而对整个文件夹进行快速更新,而不是全部重新拷贝。

2. Windows系统下安装Cygwinapt-cyg软件

由于windows系统下没有后Linux系统的rsync命令,则推荐在windows系统下安装Cygwin软件。使用该软件能在windows系统下体验Linux应用的运行。下载最新版本的Cygwin软件,然后在windows系统下进行安装。需要注意的是,安装的时候要选择或填写可用的镜像站点网址(例如,http://mirrors.163.com/cygwin/)才能进行联网下载和安装。安装完毕后,双击windows系统桌面上的软件图标,则打开了一个Linux系统的终端,用于Linux系统命令的直接运行。此外,Cygwin软件在Windows目录C:\cygwin64\bin下生成了各个Linux命令的exe文件,可以用于windows下CMD中运行相应的命令。

Cygwin其实是在Windows系统上安装了一个可以在Windows系统中直接运行Linux命令的特殊的小型虚拟机。为了能在该虚拟的Linux系统中安装软件,还需要安装其包管理器软件apt-cyg。双击桌面上的Cygwin64 Terminal软件图标,打开终端,输入如下命令安装apt-cyg软件,再安装rsync命令:

# 从官网下载apt-cyg软件,其实是一个bash脚本程序
curl https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
chmod 755 apt-cyg
mv apt-cyg /usr/bin

# 设置apt-cyg的源
apt-cyg mirror http://mirrors.163.com/cygwin
# 下载并安装rsync和oenssh软件
apt-cyg install rsync openssh 
# 若报错没有wget和lynx命令,则重新双击Cygwin安装软件再次安装,搜索并选中wget和lynx命令,额外安装这两个命令后,则可以让apt-cyg顺利运行。

3. 在Cygwin终端中运行rsync命令备份数据

# 从服务器上下载ssh密钥
scp -r chenlianfu@47.104.224.181:~/.ssh ./

# 利用密钥将D盘上的一个文件夹备份到服务器上
rsync -a -v -P --delete -e 'ssh -i /home/ChenLianfu/.ssh/id_rsa' /cygdrive/d/ChenLianfu_Data chenlianfu@47.104.224.181:~/
# 使用-a参数能保留文件的时间戳和权限信息;使用-v参数输出程序运行日志信息;使用-P参数支持断点续传和进度信息;使用--delete参数则先在目的端删除本地没有的文件,再进行数据备份;使用-e参数设置ssh参数信息。

# 利用密钥将服务器上的数据下载到本地
rsync -a -v -P -e 'ssh -i /home/ChenLianfu/.ssh/id_rsa' chenlianfu@47.104.224.181:~/ChenLianfu_Data /cygdrive/d/