Linux文件自动备份和监控

本文介绍如何使用Cronsun、rsync及BT面板实现Linux文件自动备份与监控,涵盖部署步骤及脚本示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux文件自动备份和监控


目录

一、概述

二、功能

三、准备工作

四、部署Cronsun

4.1 安装mongodb数据库

4.1.1 解压mongodb

4.1.2 mongodb配置

4.1.3 启动mongodb服务

4.1.4 配置mongodb服务开机自启

4.2 安装etcd

4.2.1 解压etcd

4.2.2 etcd配置

4.2.3 启动etcd服务

4.2.4 etcd服务测试

4.3 安装cronsun

4.3.1 解压cronsun

4.3.2 启动cronsun服务

4.4 cronsun节点服务安装

4.4.1 解压cronsun

4.4.2 cronsun配置

4.4.3 启动cronsun节点服务

4.5 部署cronsun结束

五、部署BT面板


一、概述

Linux文件自动备份和监控,更好统一监控管理,使用cronsun+rsync+BT面板,适用于多节点统一管理。

二、功能

  • Cronsun:统一调度,功能类似crontab
  • rsync:用于同步文件(可以是其它命令scp,ftp等工具)
  • bt面板:用于硬件资源监控和文件管理,在备份服务器上部署

三、准备工作

  1. 生产环境建议Cronsun和BT面板分开部署,系统版本Centos7.6 或者Centos7以上版本
  2. cronsun相关下载https://pan.baidu.com/s/1BxPbJxQHB_xDU-P4LzcqjQ 提取码: 89mu

四、部署Cronsun

部署Cronsun时,按以下安装顺序

4.1 安装mongodb数据库

4.1.1 解压mongodb

# 解压mongodb-linux-x86_64-4.0.2.tgz到/usr/local/目录下
tar -zxvf mongodb-linux-x86_64-4.0.2.tgz -C /usr/local/

4.1.2 mongodb配置

# 创建数据目录和日志目录
mkdir /usr/local/mongodb/{data,log}

# 创建配置文件
vim /etc/mongodb.conf (添加以下内容)
# mongodb config
dbpath=/usr/local/mongodb/data/db
logpath=/usr/local/mongodb/logs/mongo.log  
bind_ip=0.0.0.0
logappend=true
fork=true

4.1.3 启动mongodb服务

nohup  /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf  > /dev/null 2>&1 &

执行netstat -antp |grep mongod 显示如下图,表示mongodb服务启动成功

4.1.4 配置mongodb服务开机自启

# 给rc.local 加执行权限
chmod +x /etc/rc.local

# 添加mongodb服务启动
vim /etc/rc.local
nohup  /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf  > /dev/null 2>&1 &

4.2 安装etcd

4.2.1 解压etcd

# 解压etcd-v3.3.13-linux-amd64.tar.gz到/usr/local/目录下
tar -zxvf etcd-v3.3.13-linux-amd64.tar.gz -C /usr/local/

4.2.2 etcd配置

# 复制etcd目录下两个可执行文件etcd和etcdctl到/usr/bin/目录下
cp /usr/local/etcd/etcd /usr/bin/
cp /usr/local/etcd/etcdctl /usr/bin/

# 创建工作目录
mkdir -p /var/lib/etcd
mkdir -p /etc/etcd

vim /etc/etcd/etcd.conf     (添加以下内容)
#[member]
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"

4.2.3 启动etcd服务

# 配置服务
vim /usr/lib/systemd/system/etcd.service    (添加以下内容)
[Unit]
Description=Etcd Server
After=network.target

[Service]
Type=simple
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=/etc/etcd/etcd.conf
ExecStart=/usr/bin/etcd

[Install]
WantedBy=multi-user.target

# 启动服务
systemctl daemon-reload
systemctl enable etcd.service
systemctl start etcd.service

4.2.4 etcd服务测试

etcdctl cluster-health

出现如下结果,表示成功

4.3 安装cronsun

4.3.1 解压cronsun

# 解压cronsun-v0.3.5-linux-amd64.zip到/usr/local/目录下
unzip -d /usr/local/cronsun-v0.3.5-linux-amd64.zip

4.3.2 启动cronsun服务

# 启动cronsun web 服务
nohup /usr/local/cronsun/cronweb -conf /usr/local/cronsun/conf/base.json > /dev/null 2>&1 &

# 启动cronsun web 服务
nohup /usr/local/cronsun/cronnode -conf /usr/local/cronsun/conf/base.json > /dev/null 2>&1 &

显示如下结果,表示服务启动成功

http://x.x.x.x:7079/ui/  默认用户密码: admin@admin.com / admin 

4.4 cronsun节点服务安装

在需要被管理的服务器上执行如下操作

4.4.1 解压cronsun

# 解压cronsun-v0.3.5-linux-amd64.zip到/usr/local/目录下
unzip -d /usr/local/cronsun-v0.3.5-linux-amd64.zip

4.4.2 cronsun配置

# 配置db.json
vim /usr/local/cronsun/conf/db.json
    "Hosts": [
       "192.168.0.119:27017"  # 改为mongodb监听的ip和端口

# 配置etcd.json
    "Endpoints":[
        "http://192.168.0.119:2379" # 改为etcd监听的ip和端口
    ],

4.4.3 启动cronsun节点服务

nohup /usr/local/cronsun/cronnode -conf /usr/local/cronsun/conf/base.json > /dev/null 2>&1 &

4.5 部署cronsun结束

后期再写cronsun的管理

五、部署BT面板

部署说明:https://www.bt.cn/bbs/thread-19376-1-1.html

六、参考备份脚本

#!/bin/bash
#
#--------------------------------------------------------
# Filename: test-data-backup.sh
# Date: 2020-10-20
# Fun:  backup test data
#--------------------------------------------------------
#
work_dir="/storage/test"
log_dir="${work_dir}/script/logs"
src_ip1="192.168.1.3"
#jenkins
src_ip2="192.168.1.2"
src_user="root"
savenum=2

# rsync svn 
function rsyncd-svn(){
	src_dir="/opt/backup/svn/"
	dst_dir="${work_dir}/svn/"
	log="${log_dir}/svn-rsync.log"
	__echo_info "start rsync svn data." >>$log
	rsync -auzv --delete -e ssh  root@$src_ip1:$src_dir $dst_dir  >>$log || __echo_fail "rsync svn failed!"
	__echo_info "end rsync svn data." >>$log
}
# rsync gitlab
function rsyncd-gitlab(){
	src_dir="/backup/gitlab/"
	dst_dir="${work_dir}/gitlab/"
	log="${log_dir}/gitlab-rsync.log"
	__echo_info "start rsync gitlab data." >>$log
	rsync -auzv --delete -e ssh  root@$src_ip1:$src_dir $dst_dir  >>$log || __echo_fail "rsync gitlab failed!"
	__echo_info "end rsync gitlab data." >>$log
}

#fun echo log
function __echo_fail(){
	echo "`date +'%F %T'` - [fail]: $*"
	exit 1
}
function __echo_warn(){
	echo "`date +'%F %T'` - [warn]: $*"
}
function __echo_info(){
	echo "`date +'%F %T'` - [info]: $*"
}
# main
function main(){
	case "$1" in
    rsvn)
       rsyncd-svn
       ;;
    rgitlab)
       rsyncd-gitlab
       ;;
    all)
       rsyncd-svn
       sleep 3
       rsyncd-gitlab
       ;;
   *)
       echo $"Usage: $0 {rsvn|rgitlab|all}"
       exit 1
       ;;
    esac
}
#
main $@

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值