Jtti:新加坡服务器中rsync的用法

2024-08-12 16:48:52 浏览数 (2)

rsync 是一个用于文件同步和备份的高效工具。它可以用于在本地和远程服务器之间同步文件和目录,支持增量备份、压缩传输和加密等功能。下面是 rsync 在新加坡服务器(或其他位置)中的基本用法,包括常见的场景和命令示例。

1. 基本用法

同步本地文件或目录

将本地目录 /source 同步到 /destination 目录:

代码语言:javascript复制
bash复制代码rsync -av /source/ /destination/
  • -a:归档模式,保留文件权限、时间戳、符号链接等。
  • -v:详细输出。
从本地同步到远程服务器

将本地目录 /local_dir 同步到远程服务器上的 /remote_dir 目录:

代码语言:javascript复制
bash复制代码rsync -av /local_dir/ username@remote_server:/remote_dir/
  • username:远程服务器上的用户名。
  • remote_server:远程服务器的IP地址或主机名。
从远程服务器同步到本地

将远程服务器上的 /remote_dir 目录同步到本地 /local_dir 目录:

代码语言:javascript复制
bash复制代码rsync -av username@remote_server:/remote_dir/ /local_dir/

2. 常见选项和参数

  • -r:递归复制目录。
  • -z:启用压缩传输,以减少数据量。
  • -e ssh:通过SSH协议传输数据,确保安全。
  • --delete:删除目标目录中在源目录中不存在的文件(同步删除)。

示例:将本地目录 /local_dir 同步到远程服务器,并删除目标目录中在源目录中不存在的文件:

代码语言:javascript复制
bash复制代码rsync -avz --delete -e ssh /local_dir/ username@remote_server:/remote_dir/

3. 设置和使用SSH

rsync 通常使用SSH进行安全数据传输。确保你的SSH连接正常工作,并且你可以使用SSH密钥进行身份验证,以避免每次都输入密码。

生成SSH密钥对(如果尚未生成)
代码语言:javascript复制
bash复制代码ssh-keygen -t rsa

将生成的公钥添加到远程服务器的 ~/.ssh/authorized_keys 文件中,以便无密码登录:

代码语言:javascript复制
bash复制代码ssh-copy-id username@remote_server

4. 使用rsync进行备份

你可以使用 rsync 进行增量备份,仅同步更改过的文件:

代码语言:javascript复制
bash复制代码rsync -av --link-dest=/previous_backup /source/ /current_backup/
  • --link-dest:用于创建增量备份,通过链接到以前的备份来节省空间。

5. 排除特定文件或目录

使用 --exclude 选项排除特定文件或目录:

代码语言:javascript复制
bash复制代码rsync -av --exclude 'ignore_this/' /source/ /destination/

6. 测试同步

在实际同步之前,你可以使用 --dry-run 选项来模拟同步过程,查看将要进行的操作,而不会实际执行:

代码语言:javascript复制
bash复制代码rsync -av --dry-run /source/ /destination/

7. 设置计划任务(Cron Job)

你可以将 rsync 命令添加到计划任务中,定期自动同步:

代码语言:javascript复制
bash复制代码crontab -e

添加以下行以每天凌晨2点执行同步:

代码语言:javascript复制
bash复制代码0 2 * * * rsync -avz /local_dir/ username@remote_server:/remote_dir/

总结

rsync 是一个强大且灵活的工具,用于在本地和远程服务器之间同步文件和目录。通过了解其常用选项和参数,你可以根据实际需求配置和管理文件同步。无论是进行常规备份还是实时同步,rsync 都能有效地帮助你管理数据。

如果你有特定的使用场景或遇到任何问题,欢迎继续提问!

0 人点赞