Linux+winds定时备份服务
系统文件定时备份
简介
数据备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据从应用主机的硬盘或阵列复制到其他存储介质的过程。
灾难备份是信息系统安全的关键基础设施。重要信息系统必须构建灾难备份和恢复系统,以防范和抵御灾难所带来的毁灭性打击。数据是极为宝贵的财富,要保证信息系统持续的运作和成功,就要保护基于计算机的信息。人为的错误、硬盘的损毁、电脑病毒、自然灾害等都有可能造成数据的丢失,造成无可估量的损失。系统数据丢失会导致系统文件、交易资料、用户资料、技术文件、财务账目的丢失,业务将难以正常进行。
备份环境介绍
本次备份为本备份+异地备份,主要备份应用系统部分文件内容: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 rsync_backup@10.0.0.61::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} rsync_backup@10.0.0.61::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 rsync_backup@10.0.0.61::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 rsync_backup@10.0.0.61::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} rsync_backup@10.0.0.61::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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏