linuxmysql定时备份
⑴ 如何在linux服务器中备份
linux系统下使用脚本定时备份数据库,代码如下:
#!/bin/bash
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是mysqlmp,还可以是mysqlmp,mysqldot,如果注释掉第
#18行,则默认以tag的方式备份
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=123456
BackupPath=/home/wang/www/backup/mysql/mysqlbackup
LogFile=/home/wang/www/backup/mysql/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqlmp
#BackupMethod=mysqlhot
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >> $LogFile 2>&1
echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
echo "[$OldFile]No Old Backup File!" >> $LogFile
fi
if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is exists,Can’t Backup!" >> $LogFile
else
case $BackupMethod in
mysqlmp*)
if [ -z $DBPasswd ]
then
mysqlmp -u $DBUser --opt $DBName > $DumpFile
else
mysqlmp -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
mysqlhot*)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhot -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
else
mysqlhot -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >/dev/null 2>&1
tar czvf $NewFile $DBPath >> $LogFile 2>&1
/etc/init.d/mysqld start >/dev/null 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
;;
esac
fi
echo "-------------------------------------------"
echo
#lftp -f lftp.sh 如果有FTP可同时上传ftp中。
再利用crontab命令生成/var/spool/cron/root 文件:
#crontab –e
//打开一个编辑窗口,第一行会有内容格式的提示,在此输入命令
//m h dom mon dow command
//具体意义表示:分钟 小时 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command)
//如: 10 02 * * * /home/backup/autobackupmysql.sh (表示零晨二点十分执行备份脚本)
⑵ linux下定时备份Mysql
你的root没有密码吗?
建议使用crontab+shell脚本来备份
#!/bin/bash
#
#Date:2014-9-25
USER=
PASSWORD=
DATABASE=
DIR=
DATE=`date'+%Y\%m\%d-%H:%M'`
DATE1=`date-dlast-month'+%Y\%m\%d-%H:%M'`
HOST=
LOG=/root/mysqlbk.log
COM=mysqlmp
DEL=$DATE1.sql
OPT="-h$HOST-u$USER-p$PASSWORD$DATABASE"
$COM$OPT>$DIR/$DATE.sql
if[$?-eq0]
then
SIZE=`-h$DIR/$DATE.sql|awk'{print$1}'`
rm-f$DIR/$DEL
echo"$DATE$SIZEMysqlbackupsuccessfully$DELwasremoved">>$LOG
else
echo"$DATEMysqlbackupfailed">>$LOG
fi
这是我自己写的一个备份脚本,USER DATABASE 这是mysql的用户名和密码 DIR是备份的路径
HOST是要备份的mysql的ip地址 我这里是远程备份,如果你的是本地备份的话,可以把HOST给去掉,然后去掉OPT中 -h $HOST ,如果没有密码 就把PASSWORD去掉,还有OPT中的-p 选项以及$PASSWORD , if语句是判断脚本是否执行成功 好吧 如果有什么不明白的再问我吧
⑶ 请问mysql怎么自动备份数据库
数据库的自动备份,可以减轻维护者的工作量也便于系统恢复,对于比较重要的数据库,最好还是设置下自动备份。
工具/原料
navicat for mysql
mysql 5.5
方法/步骤
打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”,再点击“新建批处理作业”。
⑷ linux计划任务(自动化执行任务的利器)
Linux计划任务是一种自动化执行任务的工具,它可以在指定的时间间隔内执行特定的任务,例如备份文件、清理日志、发送邮件等。Linux计划任务是Linux系统中非常重要的工具之一,它可以帮助我们自动化完成许多重复性的工作,提高工作效率。
Linux计划任务的使用方法
在Linux系统中,我们可以使用crontab命令来管理计划任务。crontab命令可以让我们创建、编辑、查看和删除计划任务。下面是一些常用的crontab命令:
-crontab-e:编辑当前用户的计划任务;
-crontab-l:列出当前用户的计划任务;
-crontab-r:删除当前用户的所有计划任务。
在编辑计划任务时,我们需要使用特定的语法来指定任务的执行时间和要执行的命令。下面是一个示例:
```
00***/usr/bin/backup.sh
```
这个示例表示在每天的0点0分执行/usr/bin/backup.sh脚本。其中,星号(*)表示任意值,可以用来表示所有的时间单位。例如,星号在小时的位置表示每小时都会执行该任务。除了星号之外,我们还可以使用数字、逗号、减号等符号来指定具体的时间。例如:
-0:表示整点;
-*/5:表示每隔5个时间单位执行一次;
-1,3,5:表示在1、3、5这三个时间单位执行一次;
-1-5:表示在1到5这个时间段内每个时间单位都执行一次。
实际应用案例
下面是一个实际应用案例,我们将使用Linux计划任务来定时备份MySQL数据库。
首先,我们需要创建一个备份脚本,例如backup_mysql.sh:
```
!/bin/bash
DATE=`date+%Y%m%d`
mysqlmp-uroot-p123456--all-databases>/var/backup/mysql_$DATE.sql
```
这个脚本会使用mysqlmp命令备份所有的MySQL数据库,并将备份文件保存到/var/backup目录下,文件名为mysql_日期.sql。
接下来,我们使用crontab命令来创建一个计划任务,每天凌晨1点执行备份脚本:
```
crontab-e
```
在编辑模式下,添加以下内容:
```
01***/bin/bash/usr/local/bin/backup_mysql.sh
```
保存并退出编辑模式。现在,我们已经成功创建了一个每天凌晨1点执行备份脚本的计划任务。
⑸ 如何在linux下实现mysql数据库每天自动备份
方法/步骤
1. 在根目录下新建定时备份存储文件夹mkdir /mysql_backup
2.新建备份的脚本vim /root/mysql_backup.sh
3.在mysql_backup.sh中输入内容:
backupdir=/mysqlbackup time=` date +%Y%m%d%H`mysqlmp -uroot -proot abc | gzip > $backupdir/abc$time.sql.gzfind $backupdir -name “abc*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1
——————————————————————————————
说明:
backupdir = 备份文件存储文件夹time = 获取当前时间 年月日时(2014111417)2014年11月14日17点mysqlmp 备份数据库指令 abc要备份的数据库find $backupdir -name “abc*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1 删除5天前的备份文件
3 :wq 文件保存成功后
先按一下键盘上的 " esc " 然后输入 ” :wq “
执行一下脚本,看根目录下的mysql_backup文件夹是否有.sql.gz后缀名的文件
./mysql_backup.sh
写入每天的定时任务 修改 /etc/crontabvi /etc/crontab
按键盘上的"i",开始输入
02 4 * * * root /root/mysql_backup.sh
表示每天4点2分执行备份任务
先按一下键盘上的 " esc " 然后输入 ” :wq “ 表示保存
重新启动crond
service crond restart 或 /etc/rc.d/init.d/crond restart
⑹ 如何实现MySQL的自动备份
一般在Linux服务器上,都是自己写自动化脚本,然后再加入定时任务即可。
现在备份一般都使用xtrabackup了,是percona出品的。
你也可以参考下官网的工具是如何备份的。
https://dev.mysql.com/doc/refman/5.6/en/backup-and-recovery.html
在这上www.linuxprobe.com/chapter-04.html可以看看如何写脚本。