rsync
是一个用于文件同步和备份的高效工具。它可以用于在本地和远程服务器之间同步文件和目录,支持增量备份、压缩传输和加密等功能。下面是 rsync
在新加坡服务器(或其他位置)中的基本用法,包括常见的场景和命令示例。
1. 基本用法
同步本地文件或目录
将本地目录 /source
同步到 /destination
目录:
bash复制代码rsync -av /source/ /destination/
-a
:归档模式,保留文件权限、时间戳、符号链接等。-v
:详细输出。
从本地同步到远程服务器
将本地目录 /local_dir
同步到远程服务器上的 /remote_dir
目录:
bash复制代码rsync -av /local_dir/ username@remote_server:/remote_dir/
username
:远程服务器上的用户名。remote_server
:远程服务器的IP地址或主机名。
从远程服务器同步到本地
将远程服务器上的 /remote_dir
目录同步到本地 /local_dir
目录:
bash复制代码rsync -av username@remote_server:/remote_dir/ /local_dir/
2. 常见选项和参数
-r
:递归复制目录。-z
:启用压缩传输,以减少数据量。-e ssh
:通过SSH协议传输数据,确保安全。--delete
:删除目标目录中在源目录中不存在的文件(同步删除)。
示例:将本地目录 /local_dir
同步到远程服务器,并删除目标目录中在源目录中不存在的文件:
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
文件中,以便无密码登录:
bash复制代码ssh-copy-id username@remote_server
4. 使用rsync进行备份
你可以使用 rsync
进行增量备份,仅同步更改过的文件:
bash复制代码rsync -av --link-dest=/previous_backup /source/ /current_backup/
--link-dest
:用于创建增量备份,通过链接到以前的备份来节省空间。
5. 排除特定文件或目录
使用 --exclude
选项排除特定文件或目录:
bash复制代码rsync -av --exclude 'ignore_this/' /source/ /destination/
6. 测试同步
在实际同步之前,你可以使用 --dry-run
选项来模拟同步过程,查看将要进行的操作,而不会实际执行:
bash复制代码rsync -av --dry-run /source/ /destination/
7. 设置计划任务(Cron Job)
你可以将 rsync
命令添加到计划任务中,定期自动同步:
bash复制代码crontab -e
添加以下行以每天凌晨2点执行同步:
代码语言:javascript复制bash复制代码0 2 * * * rsync -avz /local_dir/ username@remote_server:/remote_dir/
总结
rsync
是一个强大且灵活的工具,用于在本地和远程服务器之间同步文件和目录。通过了解其常用选项和参数,你可以根据实际需求配置和管理文件同步。无论是进行常规备份还是实时同步,rsync
都能有效地帮助你管理数据。
如果你有特定的使用场景或遇到任何问题,欢迎继续提问!