需求

笔者需要将一台服务器上的所有数据备份到另一台服务器上。由于数据量比较大,需要长时间传输。

为了防止登录远程服务器可能中途断开连接,考虑使用tmux + rsync组合进行数据备份迁移。

用法

  • 首先确保备份服务器空间足够,避免传输过程将服务器存储空间用满情况。
  • 启动tmux
$ tmux new -s backup 

创建一个backup的tmux会话,并进入会话中。

  • 执行rsync备份

在backup会话环境中执行以下命令

$ mkdir BACKUP_DIR   # 创建备份目录
$ rsync -avz --exclude={'*.o','*.mod','p4/*'} remote_user@remote_ip:/path/to/need/backup/dir/ BACKUP_DIR
# 输入remote服务器用户密码

其中rsync命令选项意义:

  • -a 存档模式
  • -v  命令执行详细信息
  • -z 在传输过程中压缩数据
  • --exclude 排除匹配模式文件/目录传输,以上设置不传输*.o*.mod编译临时生成文件以及p4目录,根据自己需要进行设置。

使用SSH协议传输数据,remote_user@remote_ip:/patch/to/need/backup/ BACKUP_DIR

  • 恢复tmux环境

如果tmux会话突然断开了,不用紧张,rsync命令仍在后台执行。执行以下命令再次进入tmux会话

$ tmux attach -t backup
  • 退出TMUX环境

如果需要退出tmux会话,执行ctrl-b d(先按Ctrl与b键,再按d键)退出tmux环境。

作者 admin

发表评论

您的电子邮箱地址不会被公开。