首页 > 其他 > 详细

备份管理、定时计划任务

时间:2021-03-12 10:36:09      阅读:22      评论:0      收藏:0      [点我收藏+]

备份管理

常见备份内容

# Linux系统自带配置文件
	/etc/目录下的众多常用配置文件,尤其是修改过后的配置文件
	root及普通用户家目录下的相关配置文件(注意隐藏文件)
# 用户管理脚本及用户上传文件
	各类管理服务器的脚本工具
	用户家目录或者自定义目录下用户上传的重要文件
# 各类服务的运行日志文件
	系统自带日志:/var/log/*
	第三方软件日志: 比如/usr/local/apache2/logs/*
# web服务器的网页及静态资源文件
	Apache、Nginx、Tomcat等常见web服务器所分享的网页及静态资源文件
# 数据库内保存的数据
	MySQL、Mariadb、Oracle等数据库保存的数据文件

常见备份策略

备份工具

命令:diff(patch)、cpio、cp、tar、zip、rsync、scp、dump、mysqldump

备份级别

1)同端备份:一般数据不是特别重要时,可以选择在同一操作系统内不同分区或磁盘上备份
2)多端备份:在同一地理区域内,实现多设备或多机备份,防止单个设备出现灾难性故障,方便快速恢复
3)异地备份:又称异地容灾备份,适合数据比较重要的情况,防止某一地理区域内出现灾难性故障
4)云端多重备份:多数据中心云端备份,异地容灾备份的升级版,但如果不是私有云,安全性需要考量
5)设备备份:磁轨备份,直接将整个磁盘设备复制,出错几率为0,恢复非常快。

备份时机

1)热备份:数据不断变化时备份,备份快,将所有数据变化的操作记录下来,或将新增内容备份下来
	缺点:备份过程不能出错,否则恢复很难;需要时刻关注,一旦出现问题就是大量数据丢失
2)冷备份:数据停止变化时备份,俗称离线备份,安全度高,备份数据易恢复,速度较快
	缺点:冷备份时需要停止数据变化;数据量较大时,备份到其他设备可能需要消耗较长时间                  
3)选择夜间或者凌晨备份,在服务器压力负载最低的时候进行备份,减少对服务器正常运行的影响

备份后的操作

1)检查备份策略是否正常执行
2)不定时测试备份的文件是否可以用于恢复

备份模式

# 选择合适的模式可以降低对服务器运行的影响。

完整备份

将所有要备份的内容完全备份一遍,若在两个时间点执行完整备份,即便数据没有任何变更,数据也照样会完整备份一遍,不会检查上次备份。

增量备份

先进行一次完整备份,然后周期性的备份新增的内容,这样每次仅备份新增内容,大大减少的备份数据量,提高了备份效率。但是每次备份都需要生成一个独立的增量备份文件,且所有备份之间的顺序关系不能搞混,否则恢复极为麻烦。

技术分享图片

差异备份

差异备份与增量备份类似,都是先进行完整备份,然后将新增变化内容备份,不同的地方在于,差异备份每次对比的都是第一次完整备份,也就是说,差异备份的备份量会随着时间的增加不断增大,但即便如此也比每次都完整备份轻松许多,而且,差异备份恢复起来非常方便,仅需要第一次完整备份和最近一次的差异备份文件即可。

三种备份的对比

完整备份 增量备份 差异备份
备份方法 备份所有内容 先进行一次完整备份,而后备份和上一次备份对比新增的内容 备份和上一次完整备份相比新增的内容
备份速度 最慢 最快 较快
恢复速度 最快(简单) 最慢(繁琐) 较快
空间需求 最多 最少 较多
优势 最快最简单的恢复速度,仅需要恢复最近一次完整备份就能将所有数据恢复 较快的备份速度,除了第一次完整备份外,所有增量备份都很快,没有重复,空间需求量小 较快且较为简单第恢复速度,恢复时,仅需要最近一次完整备份和最近一次差异备份即可
劣势 空间需求 量大,备份文件大量重复 最慢的恢复速度,恢复步骤较为繁琐,恢复时需要先恢复最近一次完整备份,然后按顺序依次恢复增量备份内容 较慢的备份速度,会随着时间增加,增量备份消耗时间和空间越多

备份案例

tar 备份整个操作系统

# 备份
$ tar -zcvpf /root-backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/media --exclude=/sys --exclude=/root-backup.tar.gz /
使用tar命令可以轻松实现指定内容备份,并且保留备份内容的权限归属等信息,可以使用指定的选项排除一些特定的目录,以免对备份造成影响:--exclude=
# 恢复
$ tar -zxvpf root-backup.tar.gz -C /
使用tar命令,恢复完成后请先手动创建那些忽略掉的目录,并重启操作系统,当然如果SELinux开启的话,可能会有所影响。

数据备份脚本

#!/bin/sh
mkdir /home/temp
#创建一个临时文件
cp -a /home/data/* /home/temp
#数据存在data目录下,备份到temp目录下,所以先将数据拷过来
tar -zcPvf /home/data-$(date +%Y%m%d).tar.gz /home/temp
#将数据所在文件夹temp打包
rm -rf /home/temp/
#删除临时文件内容
find ./ -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;
#删除该文件夹下超过30天的备份文件
该脚本可以结合定时计划任务,实现每天自动备份。

定时计划任务

单次计划任务at

服务: atd 仅执行一次,执行后计划任务消失
# 格式:
	at  hh:mm(时间点,小时,分钟)  (at 17:30)  (data查看当前时间)
	$ at hh:mm YYYY-MM-DD
	$ at  17:30  2020-10-28 
	$ at  now + 120min         当前时间120分钟后
	$ at  1am  + 3days
	$ ctrl + d  保存计划任务
	$ atq 查看设置的定时计划任务,并列出任务号
	$ atrm 任务号    删除指定任务号的任务
	$ at -c 任务号    查看指定任务号的详细信息
# at的配置文件和目录:
	$ at.deny     atd服务的黑名单(允许所有拒绝某一个)
	$ vim /etc/at.deny
	$ at.allow   默认没有创建可以手动创建,白名单(拒绝所有允许某一个)

循环计划任务

crontab   循环定时计划任务
服务:crond     67开机自启
通过指定的循环模式有规律来进行反复的任务执行
时间:分钟 小时 日期 月份  星期  一般不会同时设置日期和星期
      (分时日月周)
分钟:0-59
小时:0-23
日期:1-31(1-30,1-28/29)
月份:1-12
星期:1-7(星期一到星期日)  0-7 (0也代表星期日)
具体时间:具体数值大小
时间频率:*/n        		用 /
连续时间:14-18             连续时间用  -
非连续时间:1,3,5,7		非连续时间用 , 分隔
格式:* * * * * 命令或脚本   (命令或脚本要写绝对路径)
技术分享图片
1)当分钟为 * 时表示每分钟都要执行指定程序,小时为 * 时表示每小时都要执行程序,其余类推
2)当分钟为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,小时为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
3)当分钟为 */n 时表示每隔 n 分钟执行一次,小时为 */n 表示每隔 n 小时执行一次,其余类推
4)当分钟为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,小时为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推

常见问题

# 使用 crontab 来定时执行脚本,无法执行,但是直接通过命令(如:./test.sh)又可以正常执行,这主要是因为无法读取环境变量的原因。
解决方法:
	1、所有命令需要写成绝对路径形式。
	2、在 shell 脚本开头使用以下代码:
	#!/bin/bash
	. /etc/profile
	. ~/.bash_profile
	3、在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 . 				/etc/profile;/bin/sh,使得好几遍了生效,例如:
	20 03 * * * . /etc/profile;/bin/sh /bash/test.sh

备份管理、定时计划任务

原文:https://www.cnblogs.com/wang-yy/p/14521915.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!