将一台服务器上的所有数据备份到另一台服务器上。由于数据量比较大,需要长时间传输。
为了防止登录远程服务器可能中途断开连接,考虑使用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环境。