linux全网备份项目之项目实操(下)

1,677 阅读1分钟

「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战

脚本第一个问题:需要进行不同服务器备份数据的区分管理 实现方式:分别创建不同的目录,备份不同服务器的数据信息

mkdir /backup/$ip_info -p
tar zchf /backup/$ip_info/www_backup_${date_info}.tar.gz ./var/html/www/

脚本第二个问题:需要保留每周一的数据信息 实现方式:将每周一的数据显示出来

$(date +%F_week%w -d -1day)

脚本第三个问题:需要验证数据完整性

    [root@backup 172.16.1.8]# md5sum -c finger.txt 
    /backup/172.16.1.8/sysconfig_iptables_2020-10-31_week6.tar.gz: OK
    /backup/172.16.1.8/sysconfig_spool_2020-10-31_week6.tar.gz: OK
    /backup/172.16.1.8/www_backup_2020-10-31_week6.tar.gz: OK
    /backup/172.16.1.8/sysconfig_scripts_2020-10-31_week6.tar.gz: OK
    /backup/172.16.1.8/sysconfig_local_2020-10-31_week6.tar.gz: OK
    #第一步:读取指纹文件信息
    #第二步:根据已知的文件信息,对每一个文件生成MD5数值信息
    #第三步:用本地生成md5数值信息和指纹文件中的md5数值信息进行比对
    #第四步:比对结果一致,表示文件完整验证成功,否则,验证失败
    
	find /backup/172.16.1.7/ -type f -name ".tar.gz"|xargs md5sum >/backup/172.16.1.7/finger.txt 

脚本第四个问题:如何发送邮件告知相关运维人员

ps:在备份服务端进行操作
	vim /etc/mail.rc
	set form=邮箱地址@163.com smtp=smtp.163.com <- 邮件发送邮件服务器域名,此处为163邮箱的发送服务器域名
	set smtp-auth-user=邮箱账号 smtp-auth-password=邮箱授权密码 smtp-auth=login
	说明:设置发送邮件是从哪个公共邮箱地址发送,采用的发送邮件服务器域名,公共邮箱账号和密码
	
	设置完成样子
	set form=fby1725052115@163.com smtp=smtp.163.com
        set smtp-auth-user=fby1725052115@163.com smtp-auth-password=AHPYEWCFLZDOXSPK smtp-auth=login
    
	/etc/init.d/postfix start   开启邮件服务
	
        邮件发送的方法:
	echo "系统有异常问题,请检查系统"|mail -s"异常告警" fby1725052115@163.com
	说明:echo后面接上要发送的邮件信息,mail -s后面接上邮件标题,最后表示要将邮件发给谁
	
	mail -s "异常警告" fby1725052115@163.com </etc/hosts

客户端脚本信息:

#!/bin/bash
    date_info=$(date +%F_week%w -d -1day)
    ip_info=$(hostname -i)
    
    mkdir /backup/$ip_info -p
    
    cd /
    #tar zchf /backup/sysconfigfile_backup_${date_info}tar.gz ./var/spool/cron/root ./etc/rc.local ./etc/sysconfig/iptables ./server/scripts/
    #    -h  打包链接文件指定的源文件信息,不会打包源文件信息
    tar zchf /backup/$ip_info/sysconfig_spool_${date_info}.tar.gz ./var/spool/cron/root
    tar zchf /backup/$ip_info/sysconfig_local_${date_info}.tar.gz ./etc/rc.local
    tar zchf /backup/$ip_info/sysconfig_iptables_${date_info}.tar.gz ./etc/sysconfig/iptables
    tar zchf /backup/$ip_info/sysconfig_scripts_${date_info}.tar.gz ./server/scripts/
    mkdir /var/htmL/www /app/Logs -p
    tar zchf /backup/$ip_info/www_backup_${date_info}.tar.gz ./var/html/www/
    tar zchf /backup/$ip_info/www_backup_${date_info}.tar.gz ./app/log/
    
    find /backup/172.16.1.8/ -type f -name ".tar.gz"|xargs md5sum >/backup/$ip_info/finger.txt  
    
    rsync -az /backup/$ip_info rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
    
    find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm &>/dev/null

    [root@web01 ~]# cd /server/scripts/   cd到备份目录下
    [root@web01 scripts]# ll /backup      查看备份目录
    [root@web01 scripts]# sh backup_data.sh  执行脚本文件
    [root@web01 scripts]# vim backup_data.sh  编写脚本文件