linux服务器目录定时备份

linux服务器目录定时备份

需备份服务器:124.70.194.152 同步服务器: 150.158.169.154

安装rsync

两台服务器均需安装并且开启873端口

#安装
yum -y install rsync
#服务启动
systemctl start rsyncd

配置文件介绍说明(/etc/rsyncd.conf)

#配置文件
uid = root #运行进程的身份
gid = root #运行进程的组
address =150.158.169.154 #监听 IP
port =873 #监听端口
hosts allow =* #用*表示所 有
use chroot = yes #是否囚牢,锁定家目录,rsync 被黑之后,黑客无法再 rsync 运行的家目录之外创建文件,选项设置为 yes
max connections =5 #最大连接数
pid file =/var/run/rsyncd.pid #进程 PID,自动生成
lock file =/var/run/rsync.lock #指 max connectios 参数的锁文件
log file =/var/log/rsyncd.log #日志文件位置
motd file =/etc/rsyncd.motd #客户端登陆之后弹出的消息,需要创建
[demo01] #共享模块名称
path =/web-back/ #路径
comment = used for web-data root #描述
read only = false #只读权限为假
list = yes #是否允许查看模块信息
auth users = rsyncuser #备份的用户,和系统用户无关
secrets file =/etc/rsync.passwd #存放用户的密码文件,格式是 用户名:密码

需备份服务器端

  1. 编辑配置文件/etc/exports vim /etc/exports /opt/shell 150.158.169.154(rw,async,no_root_squash)
  2. 编辑配置文件/etc/rsyncd.conf vim /etc/rsyncd.conf 内容:
#密码文件位置
secrets file = /etc/rsyncd.secrets  
#rsync共享模块名称
[rsync_test]
#待同步目录路径
path = /opt/shell/ 
#授权用户 本地用户
auth users = root
  1. 编辑配置文件/etc/rsyncd.secrets vim /etc/rsyncd.secrets 内容: #格式: 授权用户名:密码 root:passowrd
  2. 修改密码配置文件权限(权限必须是600) chmod 600 /etc/rsyncd.secrets

同步服务器端

  1. 编辑配置文件 vim /etc/rsyncd.secrets 内容: password
  2. 修改密码配置文件权限(权限必须是600) chmod 600 /etc/rsyncd.secrets
  3. 编辑执行脚本 vim rsync-backup.sh 内容:
#!/bin/bash
#Author:Huang
#Time:2022-12-29 11:52:01
#Name:rsync-backup.sh
#Description:
#LOG_PATH变量为日志文件绝对路径
#root@124.70.194.152需配置需备份服务器端rsync配置文件中的授权用户和需备份服务器端的ip
#rsync_test为需备份服务器端配置的共享模块名称
#/opt/bak_shell_data为同步服务器端需同步到的绝对路径
#/etc/rsyncd.secrets为同步服务器端密码文件存放的绝对路径
LOG_PATH=/opt/rsync-log/rsync_$(date +%Y-%m-%d).log
if [ ! -d `dirname $LOG_PATH` ];then
    mkdir -p `dirname $LOG_PATH`
fi
echo -e "
$(date +%F %H:%M:%S)" >> $LOG_PATH
rsync --delete -arzvtopgu root@124.70.194.152::rsync_test /opt/bak_shell_data --password-file=/etc/rsyncd.secrets >> $LOG_PATH 2>&1

保存后给脚本添加执行权限 chmod +x rsync-backup.sh

  1. 配置定时任务 crontab -e
    新增配置(每天早上6点执行一次) 0 6 * * * /opt/shell/rsync-backup.sh 其中/opt/shell/rsync-backup.sh为上述脚本绝对路径 0 6 * * * 为cron表达式可根据实际情况进行调整
经验分享 程序员 微信小程序 职场和发展