当前位置:首页 » 数据仓库 » 备份数据库的shell脚本
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

备份数据库的shell脚本

发布时间: 2023-08-23 08:20:18

❶ 服务器数据怎样备份

对于服务器而言,它承担的使命是7x24小时不间断的对外提供稿袭服务,但它面临的风险也是很大的,无论是人为误操作、硬件损坏还是黑客攻击,难免有数据损坏丢失的时候。一旦发生数据损坏、丢失现象后,如果没有备份数据,那损失就大了,所以对于任何一台服务器而言,数据的备份机制是不可缺少的。

服务器根据提供的服务不同,大致可为分:数据库服务器、应用服务器、文件服务器。不同服务器的备份机制还是有所区别的,我们分别来看下:

文件服务器备份方案有哪些?

1、纯敬锋Rsync+Inotify实时增量备份

借助Linux的Inotify特性可以监测文件系统变化,一旦发现变化则通知Rsync去同步数据,这样就实现了增量备份,而且性能和及时性都很高。

2、通过服务器定时任务每日凌晨执行备份任务

这种只适合对重要的数据进行日切备份,大概思路就是:Crontab+shell脚本来定时备份。

3、云服务器可借助快照功能来全盘备份

数据库服务器备份方案

对于数据库而言建议部署“主从同步”来实现数据备份,这样做的好处就是:一方面存在数据副本,另外一方面多节点可以缓解数据库做晌压力。

当然了,现在主流数据库也提供全量备份的功能,但如果在数据量大的情况下可能会影响数据库的性能。

1、以主流的Mysql数据库为例,备份方案主要有:

binlog备份

mysqlmp全库备份

2、SQLServer也支持完全备份、事务日志备份、差异备份等:

以上就是我的观点,对于这个问题大家是怎么看待的呢?

❷ 编写一个shell脚本每天16:30备份mysql数据并压缩打包(打包文件按照当天日期命名)放到/root/data下

#!/bin/bash

date=$(date-d'+0days''+%Y-%m-%d')#声明一个变量,并赋值当天日期
cd/root/data#进入目录
mkdir$date#创建目录

mysqlmp-uusername-ppassworddb_name>$date"db_name.sql"#数据库备份,修改用户名密码,还有要备份数据库

tar-zcf$date".tar.gz"$date#压缩打包
rm-rf$date#删除源数据

保存为bak.sh,每天16:30备份定时任务,没有crontab命令:yum install vixie-cron

chmod +x /.../bak.sh

crontab -e

30 16 * * * /.../bak.sh

❸ 设计一个shell脚本程序,要求有如下功能: 实现自动备份功能和清理备份等

#!/bin/bash
TIME=`date+%Y%m%d|cut-b3-8`
#question1
tar-zcvf/home/bak/VAR_$TIME_BAK.gzip/var
#question2
ls-l/var>>/home/bak/VAR_$TIME_BAK.log
#question3
find/home/bak-name'*gzip'-mtime+1|xargsrm-rf

脚本名字backup.sh,放到/root下,然后用root创建cronjob

0 12 * * * /root/backup.sh

#question 4 (以redhat为例)

echo " /root/backup.sh " >> /etc/rc.local

#question 5

把下列代码写入cronjob中

#!/bin/bash
TIME=`date+%Y"/"%m"/"%d""%H":"%m`
if[-f/home/shell.log]
then
echo"$TIMErunning">/home/tmp.log
cat/home/shell.log>>/home/tmp.log
mv/home/tmp.log/home/shell.log
else
touch/home/shell.log
fi

脚本名字status.sh,放到/root下 (写的有点小问题,功能执行没问题)

0 * * * * /root/status.sh