首页 > 系统相关 >CentOS7-实现全网备份脚本

CentOS7-实现全网备份脚本

时间:2023-04-08 18:56:04浏览次数:56  
标签:rsync root 备份 全网 CentOS7 etc file rsyncd backup

一、应用场景

备份公司的重要的文件或者日志文件,系统配置文件等

二、脚本思路

1、本地打包备份
2、同步服务推送至备份服务器
3、同步成功发送邮件提醒管理员
4、编写计划任务
5、本地备份文件保留时间,服务器备份文件保留时间

三、项目实施

1、服端配置rsync服务

步骤一:安装rsync服务

[root@node01 ~]# yum install rsync.x86_64 -y

步骤二:修改配置文件

uid= rsync
gid= rsync
usechroot = no
maxconnections = 200
timeout= 300
pidfile = /var/run/rsyncd.pid
lockfile = /var/run/rsync.lock
logfile = /var/log/rsyncd.log
[data]
comment= It's my test data!
path= /data/
ignoreerrors
readonly = false
list= false
hostsallow = 192.168.11.0/24
hostsdeny = 0.0.0.0/32
authusers = rsync_backup
secretsfile = /etc/rsyncd.passwd

步骤三:准备用户授权

[root@node01 ~]# mkdir /data
[root@node01 ~]# useradd rsync -s /sbin/nologin -M
[root@node01 ~]# chown -R rsync.rsync /data/

步骤四:配置用于同步的密码文件

[root@node01 ~]# echo "rsync_backup:123456" >> /etc/rsyncd.passwd
[root@node01 ~]# cat /etc/rsyncd.passwd
rsync_backup:123456
[root@node01 ~]# chmod 600 /etc/rsyncd.passwd
[root@node01 ~]# ll /etc/rsyncd.passwd
-rw------- 1 root root 20 Apr  8 18:30 /etc/rsyncd.passwd

步骤五:启动服务并设置为开机自启动

[root@node01 ~]# systemctl enable --now  rsyncd

2、客户端配置rsync服务

步骤一:安装rsync服务

[root@node01 ~]# yum install rsync -y

步骤二:写入密码文件

[root@node02 ~]# echo "123456" >> /etc/rsyncd.passwd
[root@node02 ~]# cat /etc/rsyncd.passwd
123456
[root@node02 ~]# chmod 600 /etc/rsyncd.passwd

3、编写脚本

示例代码:

[root@node01 ~]# cat web_bak.sh 
#!/bin/bash
#define var

# 取IP地址,这里用的VMware做的,网卡会和服务器网卡不一样
IP=`ifconfig  ens32 | awk -F '[ :]+' 'NR==2 {print $3}'`

# 接收当前系统时间
Today=$(date +%F)

# 定义备份路径
Path=/backup/$IP

# 配置文件 定时任务服务 开机自启动 防火墙iptables
COFING_data="var/spool/cron/root etc/rc.local etc/sysconfig/iptablesServer/Scripts/"

# web服务器数据
WEB_data=var/www/html

# 日志
WEB_log=var/log/httpd

# 备份后的名称
BAK_CONFIG_NAME=config.$Today.tar.gz
BAK_WEB_DATA_NAME=web_data.$Today.tar.gz
BAK_WEB_LOG_NAME=web_log.$Today.tar.gz

# 备份服务器地址
BAK_Server=192.168.11.111
Flag_file=flag.$Today.txt


#backup
[ -d $Path ] || mkdir -p $Path
cd / && \
tar czf $Path/${BAK_CONFIG_NAME} ${COFING_data} && \
tar czf $Path/${BAK_WEB_DATA_NAME} ${WEB_data} && \
tar czf /$Path/${BAK_WEB_LOG_NAME} ${WEB_log}


#check backup && make Flag_file
if [ $? == 0 ]
then
	find $Path -type f -name "*$Today.tar.gz" | xargs md5sum >> $Path/${Flag_file}
else
	echo "backup Failure" >> $Path/${Flag_file}
	exit 1
fi


#to backup server
rsync -az /backup/ rsync_backup@${BAK_Server}::backup --passwordfile=/etc/rsyncd.passwd


#del local backup file,Keep a week data
find $Path -type f -name "*.tar.gz" -mtime +7 | xargs rm -f

4、服务器端检查邮件告警脚本在服务端完成

[root@node01 ~]# cat check_web.sh
#!/bin/bash
#define var
Today=$(date +%F)
Flag_file=/backup/192.168.11.111/flag.$Today.txt
Mail_file=/opt/mail_bak_${Today}.txt

#check flag
if [ ! -f ${Flag_file} ]
then
        echo "backup is error,pls view back server" > ${Mail_file}
else
        find /backup -type f -name "flag.$(date +%F)*" | xargs md5sum -c | grep FAILED > ${Mail_file}
fi

#check Mail_file
if [ -s ${Mail_file} ]
then
        mail -s "$(date +%F-%T) back" [email protected] <${Mail_file}
else
        echo "backup is success!"
fi

#del remote bak file,30 days keep data
find /backup -type f -name "*.tar.gz" -mtime +30 | xargs rm -f

标签:rsync,root,备份,全网,CentOS7,etc,file,rsyncd,backup
From: https://www.cnblogs.com/sre-chan/p/17298854.html

相关文章

  • Centos7 时间显示不对
    修改系统时区timedatectlset-timezoneAsia/Shanghai安装NTPyum-yinstallntp使用ntpdate更新系统时间ntpdatepool.ntp.org使用date查看时区是否正确date启动ntpddaemon,持续校准时间 systemctlstartntpd ......
  • RMAN删除过期备份或非过期备份
    (一)删除备份--DELETE命令用于删除RMAN备份记录及相应的物理文件。当使用RMAN执行备份操作时,会在RMAN资料库(RMANRepository)中生成RMAN备份记录,默认情况下RMAN备份记录会被存放在目标数据库的控制文件中,如果配置了恢复目录(RecoveryCatalog),那么该备份记录也会被存放到恢复目录中。R......
  • KVM--虚拟机备份还原
    随着云计算,虚拟化在生产业务中的大规模推广,虚拟机的备份恢复显的尤为重要。面对勒索病毒,数据误删等事件,最重要的就是有“备份数据”可供恢复,从而解决数据丢失业务中断的问题。kvm虚拟机基础备份方式虚拟机克隆备份虚拟机文件复制备份快照备份1,虚拟机克隆备份克隆设备必须暂......
  • centos7 mongodb4.4分片集群部署
    #创建mongo相应的目录mkdir-pv/data/app/mongodb/confmkdir-pv/data/app/mongodb/{configset,shared1,shared2,shared3}/logmkdir-pv/data/mongodb/{configset,shared1,shared2,shared3}/data #创建于用户,给权限useradd-s/sbin/nologin-Mmongodchown-Rmong......
  • Centos7 安装 maven3.6.3
    1.下载maven3.6.3安装包wgethttps://mirrors.ocf.berkeley.edu/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz--no-check-certificate2.创建一个安装maven的目录mkdir/usr/local/maven3.解压下载的软件包tar-zxvfapache-maven-3.6.3-bi......
  • CentOS7安装zabbix-agent
    一:系统要求1.centos72.zabbix服务器端5.0版本 二:安转和配置zabbix1.安装zabbix存储库#rpm-Uvhhttps://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm#yumcleanall2.安装zabbix代理#yuminstallzabbix-agent3.启动zabb......
  • Centos7 安装配置FTP服务
    1、FTP简介ftp(FileTransferProtocol文件传输协议)是基于TCP/IP协议的应用层协议,用于文件的传输,包括ftp服务器(或服务端)和ftp客户端2、关闭防火墙设置selinuxsystemcltstopfirewalld.service&&systemcltdisablefirewalld.serviceSELINUX=disabledsetenforce0使修改立......
  • Centos7使用systemctl管理mysql8服务开机启动
    centos7下开机默认不执行原来配置启动命令的/etc/rc.local文件,建议使用systemctl管理自启动服务,如果要使用/etc/rc.local进行自启动,需要给文件/etc/rc.d/rc.local添加可执行权限。    systemctl常用命令如下:1.列出所有启动项命令systemctllist-unit-files开启的和未开启的......
  • Linux(CentOS7) c语言编程, 多线程入栈出栈,错误:expected ‘while’ before ‘int’
    在Centos7里,编写多线程的入栈出栈时,出现这样错误提示:图片版: 文字版:[root@CentOs705-xitongbiancheng]#gcc05-24-01.pthread-cancel-pop-push.c-pthread05-24-01.pthread-cancel-pop-push.c:在函数‘func’中:05-24-01.pthread-cancel-pop-push.c:47:1:错误:expected......
  • 无备份情况下恢复MySQL truncate table
    近期陆续有客户遇到MySQL的数据库问题,最近正好开始研究MySQL的一些技术。大家都知道我之前是擅长Oracle恢复,如果不会MySQL数据库恢复,总感觉却少一点什么。既然如此,就顺道研究一下吧。幸运的是,Google能够发现一些针对MySQL的恢复文章以及一些工具。我们都知道,MySQLServer都很多存......