rsync crontab Gitlab 服务器传输 文件 到目标服务器

Rsync

实验环境:
Rsync 服务器 : 192.168.199.130
client 客户端 : 192.168.199.131

mkdir /root/abc
vim /root/abc/1.sh
rsync crontab Gitlab 服务器传输 文件 到目标服务器

先去安装Gitlab 源码包安装 不要docker 没有备份到本地的命令

rsync crontab Gitlab 服务器传输 文件 到目标服务器

创建一个项目 上传代码

rsync crontab Gitlab 服务器传输 文件 到目标服务器

在服务器上

chmod -R 777 /var/opt/gitlab/backups

gitlab提供的备份命令为gitlab-rake,备份命令使用如下:
gitlab-rake gitlab:backup:create

还是写一个执行脚本吧
vim back.sh

#!bin/bash
gitlab-rake gitlab:backup:create

定时任务 当开发把代码上传到Gitlab上 每天中午 12:30 晚上11:00 备份

crontab -e
30 12-23/11 * * * sh back.sh

中午12:30执行一次 晚上11:30执行一次 感觉差不多了

Rsync服务器端:
yum -y install rsync

mkdir /root/abc

mv /root/abc /var/opt/gitlab/backups

vim /etc/rsyncd.conf

修改rsync配置文件 (直接复制上去 改一下地址 address hosts allow path)

uid = nobody
gid = nobody
use chroot = yes #禁锢在源目录
address = 192.168.199.130 #监听地址
port 873 #监听端口号
log file = /var/log/rsyncd.log #日志文件位置
pid file = /var/run/rsyncd.pid #存放进程ID的文件位置
hosts allow = 192.168.199.0/24 #允许访问的客户机地址
[wwwroot] #共享模块名称
path = /var/opt/gitlab/backups #源目录的实际路径
comment = Document Root of www.51xit.top
read only =no #是否只读
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z #同步时不在压缩的文件类型
auth users =backuper #授权账户
secrets file = /etc/rsyncd_users.db #存放账户信息的数据文件

创建授权的账号和密码
vi /etc/rsyncd_users.db
backuper:pwd123 ###账号backuper密码pwd123
chmod 600 /etc/rsyncd_users.db ###修改权限

关闭防火墙,启动rsync服务
systemctl stop firewalld
rsync --daemon ###启动服务
netstat -anpt |grep rsync ##检查873端口是否开启

客户端client:

yum -y install rsync

关闭防火墙
systemctl stop firewalld
setenforce 0

mkdir /root/abc
chmod 777 /root/abc

添加免交互
vi /etc/server.pass
pwd123
chmod 600 /etc/server.pass ##修改文件权限

测试
在client上执行远程同步,获取rsync共享模块[wwwroot]中的文件到abc文件夹中
rsync -az --password-file=/etc/server.pass [email protected]::wwwroot /root/abc

rsync crontab Gitlab 服务器传输 文件 到目标服务器

crontab -e 写入定时任务

rsync crontab Gitlab 服务器传输 文件 到目标服务器

静等一分钟… 在 /root/abc目录下查看

rsync crontab Gitlab 服务器传输 文件 到目标服务器