首页 > 系统相关 >Linux+winds定时备份服务

Linux+winds定时备份服务

时间:2024-10-31 17:34:18浏览次数:7  
标签:rsync Windows 备份 echo etc Linux winds backup

系统文件定时备份

简介

数据备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据从应用主机的硬盘或阵列复制到其他存储介质的过程。
灾难备份是信息系统安全的关键基础设施。重要信息系统必须构建灾难备份和恢复系统,以防范和抵御灾难所带来的毁灭性打击。数据是极为宝贵的财富,要保证信息系统持续的运作和成功,就要保护基于计算机的信息。人为的错误、硬盘的损毁、电脑病毒、自然灾害等都有可能造成数据的丢失,造成无可估量的损失。系统数据丢失会导致系统文件、交易资料、用户资料、技术文件、财务账目的丢失,业务将难以正常进行。

备份环境介绍

本次备份为本备份+异地备份,主要备份应用系统部分文件内容:centos+Windows server2012,每天凌晨进行备份,备份保存为14天,Windows使用系统备份本地保存为1天,异地保存为14天。

系统环境介绍

服务端:centos 7.5	IP:10.0.0.61	rsync版本:rsync-3.0.9-18.el7.x86_64
客户端: centos 7x		10.0.0.62	rsync版本:rsync-3.0.9-18.el7.x86_64
		Windows server R2	10.0.0.66	rsync版本:cwrsync 4.0.5
		
系统之间的版本最好不要超过两个版本的跨度,否则有可能会出现问题

用到的服务

rsync shell脚本

Windows下rsync4.0.5软件包的地址

链接:https://pan.baidu.com/s/1vC0Iud6NcvOJfURm6odSzg 
提取码:2i1n 
复制这段内容后打开百度网盘手机App,操作更方便哦

Linux下备份的文件

操作系统本身需要备份的文件:
	/etc/ 整个目录:Linux默认的重要文件参数档都在/etc下面,比如/etc/passwd /etc/shadow等等,所以备份/etc/目录是最方便的。
	/home 整个目录:/home目录为普通用户的家目录,也是需要备份的。
	/boot 整个目录:如果修改过内核参数,自然是要备份的,如果不确定还是备份一下的好,以防万一
	/root 

软件需要备份的文件:
	/etc/整个目录
	/usr/local 整个目录
	/opt 目录

不需要备份的内容
	TAS的work文件

Windows下需要备份的文件

系统数据
	使用系统自带的 Windows server backup 进行备份,备份后,本地存储一份,通过rsync远端存储一份。

软件备份
	软件的安装路径下的配置文件。

安装rsync

服务端安装rsync

1.确认rsync软件是否安装

	rpm -qa rsync

2.安装rsync服务,yum安装的版本比较低,可以使用rpm安装新版本的rsync

	yum install rsync

3.更改rsync.conf的配置文件

vim /etc/rsyncd.conf

uid = rsync		#用户管理备份目录,默认是nobody,为虚拟用户
gid = rsync		#用户管理备份目录,默认是nobody,为虚拟用户
port = 873		#服务的默认端口号
fake super = yes	#提升rsync的安全性,修改文件的属组和属主
use chroot = no           
max connections = 200     
timeout = 300             
lock file = /var/run/rsync.lock
pid file = /var/run/rsyncd.pid   
log file = /var/log/rsyncd.log   
ignore errors                    
read only = false                
list = false            
hosts allow = *      
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]                          
comment = "backup"  
path = /backup                   

4.创建rsync用户信息

	useradd -s /sbin/nologin -M  rsync

5.创建备份目录,修改权限,并配置文件的保存时间

	mkdir -p /backup
	 chown rsync. /backup/ 

6.创建密码文件,实现免交互传输,并修改权限

echo "rsync_backup:123456" >/etc/rsync.password
chmod 600 /etc/rsync.password 

7.启动程序,设置开机自启动

 systemctl start  rsyncd.service 
 systemctl enable rsyncd.service 

Linux客户端安装

1.查看软件是否安装,未安装就进行安装

rpm -qa rsync
yum install rsync -y

2.配置密码文件

echo "123456" >/etc/rsync.password
chmod 600 /etc/rsync.password 

客户端上进行传输测试

 rsync -az /backup/1q [email protected]::backup --password-file=/etc/rsync.password

Linux客户端编写本地备份脚本

#!/bin/sh

mkdir -p /backup
file=/backup
time=`date +%F -d '-1 day'` 

#打包系统配置文件
cd /
tar -zchf ${file}/files.$time.tar.gz  ./var/spool/cron/root  ./etc ./root ./home ./boot

#打包站点
cd /
tar -zhcf ${file}/zhandian.$time.tar.gz ./opt  ./usr/local  --exclude ./usr/local/TAS/work/* 

#删除
rm -f $(find ${file} -type f -mtime +14)

#远程备份
rsync -az ${file}  [email protected]::backup/10.0.0.62 --password-file=/etc/rsync.password

添加定时任务

crontab -e
	添加下面内容
00 03  * * * /bin/bash /service/scripts/rsync.sh 2& >/dev/null

Windows端安装rsync

将下载的 cwrsync_4.0.5_installer 压缩包解压,双击运行里面的 cwrsync_4.0.5_installer 程序
建议安装目录改为一个没有控制的安装目录。 一直点击下一步。

cwrsync的默认安装位置:C:\Program Files (x86)\cwRsync

测试是否安装成功

使用 cmd 命令,执行下面改命令
	telnet 10.0.0.61 873
		//可以进入Telnet界面,表示安装成功。

防火墙放行

Windows服务器未开启防火墙,所以不确定rsync客户端需不需要防火墙放行,还是提示下好,在故障的时候,可以排除下

进行传输测试

E:\cwRsync>rsync.exe  ./ssh.exe [email protected]::backup
Password:
	//输入密码即可。

创建密码文件

//建议放在rsync的安装目录下面。方便识别也方便记忆。
创建一个后缀为passwd的文本,里面填写上密码123456

Windows server backup 定时备份
Windows Server Backup介绍

Windows Server Backup是系统自带的备份和恢复组件,和Windows Server 2003中的NTbackup类似。相对于其他第三方备份软件,Windows Server Backup由于是系统自带组件,不需要额外购买授权,从而减少IT开支。注意:Windows Server Backup不支持备份到磁带。

Windows Server Backup可以备份一个完整的服务器(所有卷),所选卷,系统状态,或特定的文件或文件夹,并创建一个备份,您可以使用裸机恢复。您可以恢复卷,文件夹,文件,某些应用程序和系统状态。而且,硬盘故障等灾害的情况下,您可以执行裸机恢复。

Windows Server 2012 中 Windows Server Backup功能更新:

   1.从Hyper-V主机备份和恢复单个虚拟机
   2.备份版本功能改进
   3.支持大于2TB的卷备份和4K扇区支持
   4.支持备份群集共享卷(CSV)

Windows Server Backup安装。

1.打开服务器管理器,点击“添加角色和功能”。

2.在向导中,连续点4次“下一步”,在功能页面勾选“Windows Server Backup”,然后点“下一步”进行安装即可完成安装。

3.文件定时备份

在 “本地备份” 右击 选择备份计划

选择备份配置 自定义

选择要备份的项目 添加项目

指定备份的时间

指定备份类型,就是备份的路径,我选择的是备份到共享文件夹,因为后面会使用rsync将每天的备份传输到远端一份。本地保留多分也没有意义。

创建一个共享文件夹,用于存放备份数据

按照提示填写即可。

测试定时备份(Windows server backup)是否生效

打开 管理工具 -- 任务计划程序(Windows的定时任务界面)--找到Windows server backup的任务 -- 右击运行(手动执行定时任务)

#需要勾选按需执行,看提示就可以明白什么意思。就不写了。


检测是否备份成功

1.查看备份的目录中是否有生成文件
2.在Windows server backup中点击右侧的恢复,查看是否有可以恢复的文件。

Windows备份传输脚本

注意:在测试的时候,可能由于我虚拟服务器的配置比较低,执行压缩Windows server backup备份文件的时候,会将CPU跑满,需要注意下。

//将该内容保存为以 .bat 为后缀的文件
@echo off 

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
set SrcDir=E:\backup //指定的路径
set DaysAgo=3 //1天前

echo 复制站点需要备份的文件
xcopy E:\"Program Files (x86)"\TAS   E:\backup\zhandian /e /Y /d /EXCLUDE:E:\backup\exclude.txt

echo 打包压缩windows server backup备份出来的文件
rar a -r -epl "E:\backup\WindowsImageBackup_%Ymd%.rar" "E:\backup\WindowsImageBackup"
rar a -r -epl "E:\backup\zhandian_%Ymd%.rar" "E:\backup\zhandian"

echo 将backup下面de数据同步到linux服务器的/backup/10.0.0.66目录下

E:\cwRsync\bin\rsync.exe  --port=873 -avzP  /cygdrive/e/backup/*_%Ymd%.rar [email protected]::backup/10.0.0.66 < e:/cwRsync\rsync.passwd

echo 同步完成
echo 开始清理以前的备份文件。
forfiles /p %SrcDir% /s /m WindowsImageBackup_*.rar /d -%DaysAgo% /c "cmd /c del /f /q /a @path"
forfiles /p %SrcDir% /s /m zhandian_*.rar /d -%DaysAgo% /c "cmd /c del /f /q /a @path"

添加定时任务

定时执行该脚本,创建定时任务

选择触发器 指定执行时间

操作 选择 启动程序

将该脚本的执行路径填写进去。

验证后选择 确认完成。

服务端配置文件保留时间

服务端编写备份文件保存时间。

#!/bin/bash

#保存周期为10天,清理周期以外的备份文件。

file=/backup

rm -f $(find ${file} -type f -name "files*.tar.gz"  -mtime +10)
rm -f $(find ${file} -type f -name "zhandian*.tar.gz"  -mtime +10)
rm -f $(find ${file} -type f -name "WindowsImageBackup*.rar"  -mtime +10)
rm -f $(find ${file} -type f -name "*zhandian*.rar" -mtime +10  )

创建定时任务

crontab -e
	00 12 * * * /bin/bash /service/scripts/scp.sh 2& >/dev/null

服务端自动部署脚本

[root@rsync ~]# cat rsync.sh 
#!/bin/bash

#
rpm -qa rsync

if [ $? -eq 0 ];then
echo "yes"
else 
  echo "no"
exit
fi
#修改配置文件
cat > /etc/rsyncd.conf << EOF
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no           
max connections = 200     
timeout = 300             
lock file = /var/run/rsync.lock
pid file = /var/run/rsyncd.pid   
log file = /var/log/rsyncd.log   
ignore errors                    
read only = false                
list = false            
hosts allow = *      
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]                          
comment = "backup"  
path = /backup

EOF

echo "文件修改完成"

#创建用户信息

useradd -s /sbin/nologin -M rsync

echo “用户创建成功”

#创建文件及密码文件

if [ ! -d /backup ];then
mkdir /backup
chown rsync. /backup
echo “文件创建完成”
else
 echo "文件已存在"
fi

echo "rsync_backup:123456" >/etc/rsync.password
chmod 600 /etc/rsync.password 

echo "密码文件创建成功"

systemctl start  rsyncd.service 
systemctl enable rsyncd.service 

netstat -lntup |grep 873
[ $? -eq 0 ] && echo "程序启动成功" || echo "程序启动失败"

echo "创建脚本存放目录"
if [ ! -d /service/scripts ];then
mkdir -p  /service/scripts
else
  echo "脚本目录存在"
  exit
fi

cat > /service/scripts/rsync.sh << EOF
#!/bin/bash

#保存周期为14天,清理周期以外的备份文件。

file=/backup

rm -f \$(find \${file} -type f -name "files*.tar.gz"  -mtime +14)
rm -f \$(find \${file} -type f -name "zhandian*.tar.gz"  -mtime +14)
rm -f \$(find \${file} -type f -name "WindowsImageBackup*.rar"  -mtime +14)
rm -f \$(find \${file} -type f -name "*zhandian*.rar" -mtime +14  )

EOF

echo "备份周期文件创建完成"

echo "00 03 * * * /bin/bash /service/scripts/rsync.sh 2& >/dev/null" >> /var/spool/cron/root

echo "定时任务创建完成"

Linux客户端自动部署脚本

#!/bin/bash
#
rpm -qa rsync

if [ $? -eq 0 ];then
echo "yes"
else 
  echo "no"
exit
fi

echo "123456" >/etc/rsync.password
chmod 600 /etc/rsync.password 

if [ ! -d /service/scripts/rsync.sh ];then
mkdir -p  /service/scripts/
else 
echo "文件已存在"
exit 
fi

#备份脚本文件
cat > /service/scripts/rsync.sh <<EOF
#!/bin/sh

mkdir -p /backup
file=/backup
time=\$(date +%F -d '-1 day')

#打包系统配置文件
cd /
tar -zchf \${file}/files.\$time.tar.gz  ./var/spool/cron/root  ./etc ./root ./home ./boot

#打包站点
cd /
tar -zhcf \${file}/zhandian.\$time.tar.gz ./opt  ./usr/local  --exclude ./usr/local/TAS/work/* 

#删除
rm -f \$(find \${file} -type f -mtime +7)

#远程备份
rsync -az \${file}  [email protected]::backup/10.0.0.62 --password-file=/etc/rsync.password

EOF

echo " * * * * * /bin/bash /service/scripts/rsync.sh 2& >/dev/null" >> /var/spool/cron/root

标签:rsync,Windows,备份,echo,etc,Linux,winds,backup
From: https://www.cnblogs.com/megshuai/p/18518491

相关文章

  • 实现Linux系统与Windows系统之间文件共享
    实现Linux系统与Windows系统之间文件共享Samba服务1:先到yum仓库安装相关服务[root@linuxprobe~]#yuminstallsambaLoadedplugins:langpacks,product-id,subscription-manager省略Installing:sambax86_644.1.1-31.el7rhel527kTransactionSummary=======......
  • Linux系列-gcc/g++的使用
    ......
  • Linux:free指令
    学习自:Linuxfree命令使用教程(free指令)(查看内存、系统内存、内存占用、内存使用情况)_free命令看到的内存-CSDN博客free命令详解-CSDN博客1、概述free指令用于显示系统中未使用和已使用的物理和swap区总量。2、语法free[-bkmght][-s秒数]3、参数参数用途b以......
  • Linux系统调用和库函数的区别是什么
    Linux系统调用和库函数是在程序设计中常用的两个概念,具有明显的差异。1、系统调用:是操作系统内核提供的功能接口,用于执行核心操作,如文件管理、进程控制等;2、库函数:是用户空间提供的封装好的函数库,如C库、数学库等。区别主要体现在执行级别、性能、功能和使用场合等方面。系统调用......
  • 【Linux】巧妙运用<信号量>解决<水果放取问题>(思维导图&代码演示&思路解析)
    前言大家好吖,欢迎来到YY滴Linux系列,热烈欢迎!本章主要内容面向接触过C++的老铁主要内容含:欢迎订阅YY滴C++专栏!更多干货持续更新!以下是传送门!YY的《C++》专栏YY的《C++11》专栏YY的《Linux》专栏YY的《数据结构》专栏YY的《C语言基础》专栏YY的《初学者易错点》......
  • 【网络安全零基础入门】Linux安全加固(非常详细)零基础入门到精通,收藏这一篇就够了
    大家好,我是向阳。今天将继续带大家入门网络安全linux系统篇安全加固教程,全程干货,建议收藏哈安全加固方案原则1.版本升级对于系统和应用在使用过程中暴露的安全缺陷,系统或应用厂商会及时发布解决问题的升级补丁包。升级系统或应用版本,可有效解决旧版本存在的安全风险。......
  • RMAN之环境配置(二)---Backups to a Media Manager备份到介质管理器
    在生产库中,一般都选用第三方的磁带管理软件,但是基本对于oracle的备份和恢复都是通过调用RMAN来实现的。确定mediamanagerLibrary(媒体管理库)的位置在尝试将RMAN与媒体管理器一起使用之前,请确定媒体管理库的位置。分配或配置RMAN与媒体管理器通信的通道时,在命令行ALL......
  • Linux——让程序在后台运行
    Screen是一个全屏窗口管理器,它在多个进程(通常是交互式shell)之间多路传输物理终端。点击查看代码#centos安装screenyuminstall-yscreen#在Ubuntu上安装并使用screensudoaptupdate#更新包列表sudoaptinstallscreen#安装screen工具#创建一个新的窗口sc......
  • 用Linux卸载手机上的系统软件
    很多手机系统滥用系统软件定义,把没用的软件归类为系统软件,不让用户卸载。但我们可以用adb卸载这些软件。首先用USB数据线将手机连接到电脑,在手机上切换到文件传输模式(MTP模式)安装adbArchLinux#https://wiki.archlinux.org/title/Android_Debug_Bridgesudopacman-Sandroid......
  • Linux vmstat
    通过vmstat--help查看usage:vmstat[options][delay][count]options指定参数delay统计时间间隔count统计次数options:-a,--activeactive/inactivememory-f,--forksnumberofforkssinceboot-m,--slabsslabinfo-n,......