本篇文章给大家谈谈CentOS系统下如何设置mysql每天自动备份,以及mysql数据库定时每天备份的知识点,同时本文还将给你拓展CentOSLinux下每天自动备份MySQL数据库、centosmy
本篇文章给大家谈谈CentOS系统下如何设置mysql每天自动备份,以及mysql数据库定时每天备份的知识点,同时本文还将给你拓展CentOS Linux下每天自动备份MySQL数据库、centos mysql自动备份脚本、CentOS Oracle数据库每天自动备份、centos 下 mysql 自动备份等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- CentOS系统下如何设置mysql每天自动备份(mysql数据库定时每天备份)
- CentOS Linux下每天自动备份MySQL数据库
- centos mysql自动备份脚本
- CentOS Oracle数据库每天自动备份
- centos 下 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数据库
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自动备份脚本
在/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数据库每天自动备份
目标:在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 自动备份
创建脚本
#!/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 自动备份等相关知识的信息别忘了在本站进行查找喔。
本文标签: