本地服务器如何增量备份远程主机文件
1. 安装sshpass
有可能机器上没安装命令,需要先进行安装。
apt install -y sshpass
2. 编写脚本
创建目录和脚本文件:
mkdir -p /usr/local/backup && \
touch /usr/local/backup/backup.sh && \
chmod +x /usr/local/backup/backup.sh
添加脚本文件内容 vim backup.sh
:
#!/bin/bash
shell_dir=$(cd $(dirname $0); pwd)
# 定义远程主机的用户名、IP地址和要备份的目录
remote_user="root"
remote_ip="1.1.1.1"
remote_dir="/home/xxx"
# 定义本地备份目录和要排除的文件/目录
local_dir="/usr/local/backup/xxx"
exclude_file=".git/"
# 定义日志文件
log_file="${shell_dir}/file.log"
# 定义SSH密码
ssh_pass="123456"
echo "备份开始执行于:$(date)" >> "$log_file"
# 使用sshpass命令进行SSH连接和增量备份
sshpass -p "$ssh_pass" rsync -avz --delete --exclude "$exclude_file" "$remote_user@$remote_ip:$remote_dir/" "$local_dir/" >> "$log_file" 2>&1
echo "备份执行完成于:$(date)" >> "$log_file"
3. 创建定时任务
比如我需要每天凌晨 2 点备份一次,只需要使用 crontab -e
命令,追加以下内容即可。
0 2 * * * /usr/local/backup/backup.sh
阅读剩余
THE END