以下是一个基本的Linux Shell脚本示例,用于通过rsync实现增量同步。假设我们想要从本地目录/path/to/local/source
同步到远程主机remote_host
上的/path/to/remote/destination
:
#!/bin/bash
# 定义源路径和目标路径
src="/path/to/local/source"
dst="user@remote_host:/path/to/remote/destination"
# rsync命令行参数:
# -a 以归档模式传输,保留文件属性
# -v 显示详细输出
# -z 压缩数据传输
# --delete 删除目标目录中已不存在于源目录中的文件
# --exclude 排除不需要同步的文件或目录(这里仅作示例,根据需要修改)
# --progress 显示进度信息
# --rsh 使用ssh作为通信协议
rsync_opts="-avz --delete --exclude='*.log' --progress --rsh=ssh"
# 执行rsync命令
rsync $rsync_opts $src $dst
# 如果你想让脚本在出错时返回错误状态码(非0),可以添加如下检查:
if [ $? -ne 0 ]; then
echo "Rsync failed."
exit 1
else
echo "Rsync completed successfully."
fi
请确保将上述脚本中的源路径、目标路径以及用户替换为你实际要使用的值,并根据实际情况调整--exclude
参数以及其他rsync选项。
为了定期执行此脚本,您可以将其设置为cron job,在Linux系统中定时自动运行。例如,如果您希望每天凌晨1点执行该脚本,可以在crontab中添加以下条目:
0 1 * * * /path/to/your/script.sh
记得赋予脚本执行权限:
chmod +x /path/to/your/script.sh
标签:脚本,rsync,remote,--,exclude,path
From: https://blog.51cto.com/u_16161880/9078713