GVKun编程网logo

CentOS系统下如何设置mysql每天自动备份(mysql数据库定时每天备份)

19

本篇文章给大家谈谈CentOS系统下如何设置mysql每天自动备份,以及mysql数据库定时每天备份的知识点,同时本文还将给你拓展CentOSLinux下每天自动备份MySQL数据库、centosmy

本篇文章给大家谈谈CentOS系统下如何设置mysql每天自动备份,以及mysql数据库定时每天备份的知识点,同时本文还将给你拓展CentOS Linux下每天自动备份MySQL数据库、centos mysql自动备份脚本、CentOS Oracle数据库每天自动备份、centos 下 mysql 自动备份等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

CentOS系统下如何设置mysql每天自动备份(mysql数据库定时每天备份)

CentOS系统下如何设置mysql每天自动备份(mysql数据库定时每天备份)

前言

大家都知道数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦。通过本文来一起来看看CentOS系统下如何设置MysqL每天自动备份吧。

步骤如下

建备份文件夹:

mkdir MysqL_data_bak

建脚本文件:

touch autobackupMysqL.sh

打开文件

vi autobackupMysqL.sh

在脚本中加入如下内容:

filename=`date +%Y%m%d`
/usr/bin/MysqLdump -uroot -proot boss >>/home/MysqL_data_bak/$filename.sql

检查有没安装crond,如果没有,先安装

yum -y install vixie-cron
yum -y install crontabs

启动服务 :service crond start

在CentOS系统中加入开机自动启动: chkconfig --level 345 crond on

crontab -e

加入内容:00 03 * * * source /root/autobackupMysqL.sh  

每天凌晨3点运行此文件,对数据库进行备份

 service crond restart

好了,以上就完成了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。

CentOS Linux下每天自动备份MySQL数据库

CentOS Linux下每天自动备份MySQL数据库

1.先在服务器下建文件夹以下3个文件夹:mkdir /bak,mkdir /bak/bakMysqL,mkdir /bak/bakMysqLold 。在/bak/bakMysqL文件夹下建一个shell脚本:touch /bak/bakMysqL/backup.sh 。

给文件授权:chmod 755 /bak/bakMysqL/backup.sh 。

2.编辑shell脚本:vi /bak/bakMysqL/backup.sh
#!/bin/sh
cd /bak/bakMysqL
echo "You are in bakMysqL directory"
mv bakMysqL* /bak/bakMysqLold
echo "Old databases are moved to bakMysqLold folder"
Now=$(date +"%d-%m-%Y")
File=bakMysqL-$Now.sql
MysqLdump -uroot -p'password' db_bbs > $File
echo "Your database backup successfully completed"
Sevendays=$(date -d -7day +"%d-%m-%Y")
if [ -f /bak/bakMysqLold/bakMysqL-$Sevendays.sql ]
then
rm -rf /bak/bakMysqLold/bakMysqL-$Sevendays.sql
echo "You have delete 7days ago bak file "
else
echo "7days ago bak file not exist "
fi

3.shell脚本:MysqLdump -uroot -p'password' db_bbs> $File 这句中的红色字体请分别换为你自己的MysqL数据库用户、密码和database名。脚本先将/bak/bakMysqL文件夹下bakMysqL为文件名开头的备份文件移至/bak/bakMysqLold,再生成最新的备份文件,最后再判断/bak/bakMysqLold文件夹中七天前的文件是否存在,存在则删除,最后结束。这样就能自动备份最近七天的数据库脚本。

这是博主的服务器截图:

4.设置每天自动执行shell脚本:vi /etc/crontab 在最后加入这样一行(具体含义请自行参考/etc/crontab中的注释):0 0 * * * root /bak/bakMysqL/backup.sh 。重启crontab:/sbin/service crond restart 。如果没有设置crontab为开机自启动可以如下设置其开机自启动:chkconfig –level 35 crond on

centos mysql自动备份脚本

centos mysql自动备份脚本

 在/home路径下建立google文件夹,在google文件夹下建立db_backup(存放压缩文件)和db_mysql(存放sql脚本),并对文件夹授权:

chmod 755 db_backup

chmod 755 db_mysql

然后在google文件夹下建立backup.sh文件,文件内容如下:

#!/bin/sh

#备份文件名  
BackupFile="dbbackup"$(date +%y%m%d_%H)".sql" 
#输入备份日志
exec &>>/home/google/mysqlbackup.log
#备份压缩文件路径
BK_DR=/home/google/db_backup
#备份sql脚本文件路径
DB_DR=/home/google/db_mysql
#需备份数据库名
DB_NAME=user
#备份文件保留10天
DAYS=10
#备份文件名日期前缀
date=` date +%Y%m%d `

if [ ! -d "$BK_DR" ]; then
  mkdir "$BK_DR"
fi

if [ ! -d "$DB_DR" ]; then
  mkdir "$DB_DR"
fi

/usr/bin/mysqldump -h 192.168.0.191 -umysql -p888888 $DB_NAME >$DB_DR/"$BackupFile"

cd $BK_DR

tar zcvf $BK_DR/mysql$date.tar.gz $DB_DR

find $BK_DR -name "mysql*" -type f -mtime +$DAYS -exec rm {} \; 

exit

授权此文件:

chmod 755 backup.sh

执行./backup.sh测试下,如果在db_backup文件夹下有mysql20160520.tar.gz,在db_mysql文件夹下有dbbackup160520_17.sql,说明脚本书写没有问题。

然后执行 crontab -e,输入以下内容并保存(每天早上8点,中午1点,晚上8点各执行一次):

0 8 * * * /home/google/backup.sh

0 13 * * * /home/google/backup.sh

0 20 * * * /home/google/backup.sh

查看定时任务命令:

crontab -l

查看结果:

0 8 * * * /home/google/backup.sh

0 13 * * * /home/google/backup.sh

0 20 * * * /home/google/backup.sh

说明定时任务配置成功,然后重启cron:

/etc/rc.d/init.d/crond restart

另外准备可以备份到其他机器,待研究,熟悉shell脚本。

CentOS Oracle数据库每天自动备份

CentOS Oracle数据库每天自动备份

目标:在CentOS6.4环境下,实现每天晚上23:00备份用户数据库方案:利用linux下的定时任务机制,命令为crontab;导出数据库用到exp工具;然后让crontab定时去调用exp来 实现自动备份的目的。

步骤:

1,用oralce用户登录--》

编写备份Oracle数据库的sh文件--oracle_backup.sh;

内容为:su - oracle c "$bin/exp $username/$password file=$date_backup.dmp owner=$user log=$date_log"

动态拼接日期的sh: rq = `date +"%Y%m%d"`

为上面的命令建立文件夹

mkdir backup_data; 存放备份文件

mkdir back_log; 存放log

完后,记得给该文件赋予可写的权限: chmod 777 $path/oracle_backup.sh

2,用root用户登录执行命令--》

# crontab -e

内容为:

0 23 * * * "$path/oracle_back.sh" (分 时 天 月 星期)

此命令会在 /var/spool/cron 下生成一个root文件,内容为上面一行的输入。

3,检查是否成功

crontab -l 可以查看当前用户下的周期任务

crontab -r 移除当前用户下的周期任务

centos 下 mysql 自动备份

centos 下 mysql 自动备份

创建脚本

#!/bin/bash
db_user="root"
db_passwd="root"
db_name="data_center"
#备份目录
backup_dir="/home/backup/mysql"
#时间格式
time=$(date +"%Y-%m-%d")
#mysql 备份的命令,注意有空格和没有空格
mysqldump -u$db_user -p$db_passwd $db_name  > "$backup_dir/$db_name"-"$time.sql"
echo "your database backup successfully completed"
#这里将7天之前的备份文件删掉
SevenDays=$(date -d -7day  +"%Y-%m-%d")
if [ -f /home/backup/mysql/$db_name-$SevenDays.sql ]
then
rm -rf /home/backup/mysql/$db_name-$SevenDays.sql
echo "you have delete 7days ago bak sql file "
else
echo "7days ago bak sql file not exist "
echo "bash complete"
fi

创建定时任务

crontab -e

0 2 * * * cd /root/ && ./data_center.sh

 

经过测试发现备份出来的文件都是 0kb

经过排查是  mysqldump 路径文件

备份脚本改为

#!/bin/bash
db_user="root"
db_passwd="root"
db_name="data_center"
#备份目录
backup_dir="/home/backup/mysql"
#时间格式
time=$(date +"%Y-%m-%d")
#mysql 备份的命令,注意有空格和没有空格
/usr/local/mysql/bin/mysqldump -u$db_user -p$db_passwd $db_name  > "$backup_dir/$db_name"-"$time.sql"
echo "your database backup successfully completed"
#这里将7天之前的备份文件删掉
SevenDays=$(date -d -7day  +"%Y-%m-%d")
if [ -f /home/backup/mysql/$db_name-$SevenDays.sql ]
then
rm -rf /home/backup/mysql/$db_name-$SevenDays.sql
echo "you have delete 7days ago bak sql file "
else
echo "7days ago bak sql file not exist "
echo "bash complete"
fi

解决!

关于CentOS系统下如何设置mysql每天自动备份mysql数据库定时每天备份的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于CentOS Linux下每天自动备份MySQL数据库、centos mysql自动备份脚本、CentOS Oracle数据库每天自动备份、centos 下 mysql 自动备份等相关知识的信息别忘了在本站进行查找喔。

本文标签: