备份远程Linux服务器到Windows

备份远程Linux服务器到Windows

我想将远程 Linux 服务器备份到 Windows 工作站中。

我正在寻找与此类似的方法,但在 Windows 中:从远程服务器备份

是否有我可以使用的 Windows rsync 客户端,或者任何在底层使用 rsync 的 GUI 应用程序?我需要能够使用 SSH 密钥进行连接,并让它每天运行以将远程文件同步到 Windows 计算机中。

答案1

Cygwin 具有 openssh(客户端和服务器)和 rsync,因此您当然可以使用它来创建 rsync 目标,就像在 Linux 上一样。

我主要担心的是文件系统问题。 Rsync 尝试同步元数据,而不是在单独的位置捕获它(就像tarzip将做的那样)。这意味着如果元数据与目标文件系统不兼容,您就会遇到问题。

  • 两台机器上的用户可能不相同
  • 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

https://rsnapshot.org/

http://www.mikerubel.org/computers/rsync_snapshots/

rsnapshot 是一个基于 rsync 的文件系统快照实用程序。 rsnapshot 可以轻松地为本地计算机和通过 ssh 的远程计算机制作定期快照。该代码尽可能广泛使用硬链接,以大大减少所需的磁盘空间。 Rsnapshot 完全用 perl 编写没有模块依赖性,并已通过版本 5.004 到 5.16.3 进行测试。它应该可以在任何相当现代的 UNIX 兼容操作系统上运行。

如果安装在 Linux 上并且从以下位置备份,rsnapshot 会非常有用来源目的地来源基本上是任何东西安装在linux上。实现在linux上挂载不需要是本地磁盘。

相关内容