rsync ssh备份文件
时间: 2023-08-19 09:06:28 浏览: 65
在使用rsync进行ssh备份文件时,可以通过以下命令实现:
rsync -e ssh <source_directory> <username>@<remote_host>:<destination_directory>
其中,<source_directory>是要备份的本地目录,<username>是远程主机的用户名,<remote_host>是远程主机的IP地址或主机名,<destination_directory>是备份文件存储的目标目录。通过指定-e选项为ssh协议,可以确保使用ssh进行远程登录和数据传输。
相关问题
rsync远程备份
rsync 是一种可以在本地或远程系统之间同步、备份和恢复文件的工具。使用 rsync 进行远程备份通常需要在源和目标系统之间建立 SSH 连接,因为 rsync 默认使用 SSH 来进行加密通信。
以下是一个使用 rsync 进行远程备份的示例:
```
rsync -avz -e ssh /path/to/local/folder/ user@remote:/path/to/remote/folder/
```
其中,`-a` 表示进行归档(archive)模式,即保留原始文件的所有属性和权限;`-v` 表示输出详细信息;`-z` 表示启用压缩传输以减少网络带宽的使用;`-e ssh` 表示使用 SSH 连接;`/path/to/local/folder/` 表示要备份的本地文件夹路径;`user@remote:/path/to/remote/folder/` 表示远程备份目标的用户名、主机名和备份路径。
如果要定期执行 rsync 远程备份,可以将上述命令添加到 cron 任务中。例如,要每天晚上 10 点定期执行备份,可以使用以下命令编辑 crontab:
```
crontab -e
```
然后添加以下行:
```
0 22 * * * rsync -avz -e ssh /path/to/local/folder/ user@remote:/path/to/remote/folder/
```
保存并退出 crontab 编辑器即可。
rsync定时备份脚本
以下是一个使用rsync进行定时备份的脚本示例:
```shell
#!/bin/sh
# 检测进程锁是否存在,如果存在则退出脚本
if [ -f /var/lock/rsync.lock ]; then
echo "Another rsync process is running. Exiting..."
exit 1
fi
# 创建进程锁文件
touch /var/lock/rsync.lock
# 从源主机拉取同步数据到本地
rsync -av -e 'ssh -p22' root@192.168.0.100:/home/rsbak/ /home/bak/
# 将源主机同步至备份主机
rsync -av /home/rsbak/ root@192.168.0.252:/home/bak/
# 本地备份: bak同步到bakbak
rsync -r /home/bak/ /home/bakbak/
# 同步到目的主机bak目录下,注意使用--delete参数会删除目标主机上不存在的文件,慎重使用
rsync -av --delete /home/rsbak/*.txt root@192.xx.xx.xx:/home/bak/
# 删除进程锁文件
rm /var/lock/rsync.lock
```
这个脚本会在执行之前检测是否存在进程锁文件`/var/lock/rsync.lock`,如果存在,则表示已经有另一个rsync进程正在运行,并退出脚本。接着,脚本会创建进程锁文件,然后使用rsync命令将数据从源主机同步到本地、将源主机同步到备份主机、进行本地备份以及将文件同步到目标主机。最后,脚本会删除进程锁文件,以便下次执行备份任务。请注意,这只是一个脚本示例,你需要根据自己的实际情况进行修改和调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>