rsync crontab Gitlab 服务器传输 文件 到目标服务器
Rsync
实验环境:
Rsync 服务器 : 192.168.199.130
client 客户端 : 192.168.199.131
mkdir /root/abc
vim /root/abc/1.sh
先去安装Gitlab 源码包安装 不要docker 没有备份到本地的命令
创建一个项目 上传代码
在服务器上
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
crontab -e 写入定时任务
静等一分钟… 在 /root/abc目录下查看