![备份远程Linux服务器到Windows](https://linux22.com/image/147597/%E5%A4%87%E4%BB%BD%E8%BF%9C%E7%A8%8BLinux%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%B0Windows.png)
我想将远程 Linux 服务器备份到 Windows 工作站中。
我正在寻找与此类似的方法,但在 Windows 中:从远程服务器备份
是否有我可以使用的 Windows rsync 客户端,或者任何在底层使用 rsync 的 GUI 应用程序?我需要能够使用 SSH 密钥进行连接,并让它每天运行以将远程文件同步到 Windows 计算机中。
答案1
Cygwin 具有 openssh(客户端和服务器)和 rsync,因此您当然可以使用它来创建 rsync 目标,就像在 Linux 上一样。
我主要担心的是文件系统问题。 Rsync 尝试同步元数据,而不是在单独的位置捕获它(就像tar
或zip
将做的那样)。这意味着如果元数据与目标文件系统不兼容,您就会遇到问题。
- 两台机器上的用户可能不相同
- NTFS 文件名比大多数 Linux 文件系统有更多限制。
- 我不知道如果 rsync 请求 NTFS 上的设备特殊文件会发生什么。
如果您尝试在没有任何奇怪名称的 Web 文件夹上进行同步,并且所有权/权限不是什么大问题,那么它应该可以很好地工作。如果您尝试同步 Linux 根文件系统并希望保留所有设备和权限,我认为 rsync 到 Windows 上可能会是一个更大的问题。
另一种方法是在 Windows 服务器内运行 Linux 虚拟机。然后您可以根据需要配置虚拟机。如果它唯一做的事情就是一些非工作时间的文件传输,并且您有足够的 RAM,那么它根本不会对 Windows 服务器的性能产生太大影响。
答案2
rsnapshot.conf
#################################################
# rsnapshot.conf - rsnapshot configuration file #
#################################################
config_version 1.2
# All snapshots will be stored under this root directory.
#
# what ron uses
snapshot_root /bkup/private/
# If no_create_root is enabled, rsnapshot will not automatically create the
# snapshot_root directory. This is particularly useful if you are backing
# up to removable media, such as a FireWire or USB drive.
#
no_create_root 1
#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################
# LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp /bin/cp
# uncomment this to use the rm program instead of the built-in perl routine.
#
cmd_rm /bin/rm
# rsync must be enabled for anything to work. This is the only command that
# must be enabled.
#
cmd_rsync /usr/bin/rsync
# Uncomment this to enable remote ssh backups over rsync.
#
#cmd_ssh /usr/bin/ssh
# Comment this out to disable syslog support.
#
cmd_logger /bin/logger
# Uncomment this...
# Uncomment that...
#########################################
# BACKUP LEVELS / INTERVALS #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc. #
#########################################
# retain alpha 6
# retain beta 7
# retain gamma 4
# retain delta 3
# what ron uses, daily non-incremental backup via cron at 2am,
# crontab entry: * 2 * * * /usr/local/bin/rsnapshot daily
retain daily 1
############################################
# GLOBAL OPTIONS #
# All are optional, with sensible defaults #
############################################
# Verbose level, 1 through 5.
# 1 Quiet Print fatal errors only
# 2 Default Print errors and warnings only
# 3 Verbose Show equivalent shell commands being executed
# 4 Extra Verbose Show extra verbose information
# 5 Debug mode Everything
#
verbose 2
# Same as "verbose" above, but controls the amount of data sent to the
# logfile, if one is being used. The default is 3.
#
loglevel 3
# If you enable this, data will be written to the file you specify. The
# amount of data written is controlled by the "loglevel" parameter.
#
logfile /var/log/rsnapshot
[... bunch of stuff removed to post on stackexchange easier...]
###############################
### BACKUP POINTS / SCRIPTS ###
###############################
# LOCALHOST
# backup /home/ localhost/
# backup /etc/ localhost/
# backup /usr/local/ localhost/
# backup /var/log/rsnapshot localhost/
# backup /etc/passwd localhost/
# backup /home/foo/My Documents/ localhost/
# backup /foo/bar/ localhost/ one_fs=1, rsync_short_args=-urltvpog
# backup_script /usr/local/bin/backup_pgsql.sh localhost/postgres/
# You must set linux_lvm_* parameters below before using lvm snapshots
# backup lvm://vg0/xen-home/ lvm-vg0/xen-home/
# EXAMPLE.COM
# backup_exec /bin/date "+ backup of example.com started at %c"
# backup [email protected]:/home/ example.com/ +rsync_long_args=--bwlimit=16,exclude=core
# backup [email protected]:/etc/ example.com/ exclude=mtab,exclude=core
# backup_exec ssh [email protected] "mysqldump -A > /var/db/dump/mysql.sql"
# backup [email protected]:/var/db/dump/ example.com/
# backup_exec /bin/date "+ backup of example.com ended at %c"
# CVS.SOURCEFORGE.NET
# backup_script /usr/local/bin/backup_rsnapshot_cvsroot.sh rsnapshot.cvs.sourceforge.net/
# RSYNC.SAMBA.ORG
# backup rsync://rsync.samba.org/rsyncftp/ rsync.samba.org/rsyncftp/
# what ron uses, very simple, local disks
# /data is /dev/sdb1 an N tb drive
# snapshot root folder /bkup is /dev/sdc1 an n tb volume
# this will copy everything under /data to /bkup/private/mybackup/
backup /data mybackup/
如果您设置了一项服务,并且我认为 SSH 是首选,但也可能是 RSH 或其他服务,那么就像通过定制 rsnapshot.conf 文件从源复制到目标一样简单。
https://wiki.archlinux.org/index.php/Rsnapshot
http://www.mikerubel.org/computers/rsync_snapshots/
rsnapshot 是一个基于 rsync 的文件系统快照实用程序。 rsnapshot 可以轻松地为本地计算机和通过 ssh 的远程计算机制作定期快照。该代码尽可能广泛使用硬链接,以大大减少所需的磁盘空间。 Rsnapshot 完全用 perl 编写没有模块依赖性,并已通过版本 5.004 到 5.16.3 进行测试。它应该可以在任何相当现代的 UNIX 兼容操作系统上运行。
如果安装在 Linux 上并且从以下位置备份,rsnapshot 会非常有用来源到目的地来源基本上是任何东西安装在linux上。实现在linux上挂载不需要是本地磁盘。