如何在linux下实现mysql数据库每天自动备份

如何在linux下实现mysql数据库每天自动备份,第1张

方法/步骤

1. 在根目录下新建定时备份存储文件夹mkdir /mysql_backup

2.新建备份的脚本vim /root/mysql_backup.sh

3.在mysql_backup.sh中输入内容:

backupdir=/mysqlbackup time=` date +%Y%m%d%H`mysqldump -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点mysqldump 备份数据库指令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 “ 表示保存

8

重新启动crond

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

一、使用tar命令进行备份:

tar命令本来的作用是能够把很多文件放到一个小文件中进行归档,但是同时又能够对文件进行压缩。所以,一般情况下都采用tar进行文件整理和压缩。

/* 把/root整个目录进行压缩备份 */

# tar cvzf /tmp/root_backup_1215.tar.gz /root

那么就能够把 /tmp/root_backup_1215.tar.gz进行存储,比如保存到磁带机上等。

说明: 压缩的tar档案通常的扩展名是 tar.gz、tgz、或者tar.bz2。前两个扩展名一般是使用gzip命令进行压缩的tar档案,后一个扩展名是

基于bzip2的压缩,因为压缩算法的原因,后一个压缩更强。

同时,也很容易把已经打包压缩的文件进行恢复:

/* 从备份文件中进行还原 */

# tar tkvzf root_backup_1215.tar.gz

二、使用cpio备份存档:

cpio (copy in/out) 命令可以建立存档,跟tar不同之处在于,能够处理标准的输入输出。顾名思义,就是复制,输入,输出的意思。

如果要备份root的文件,使用下列命令:

# find /root | cpio -o >/tmp/root_backup_1215.cpio

cpio能够使用通配符将一组文件设置成标准输入。比如,下面见所有的.tif文件建立档案:

# find *.tif | cpio -o >/tmp/back.cpio

记住,find命令很灵活,下列命令把系统中所有的.tif文件进行归档:

# find / -name '*.tif' | cpio -o >/tmp/back_tif.cpio

同时,也很容易从cpio档案中恢复文件。下列命令恢复back_tif.cpio中的文件:

# cpio -i <back_tif.cpio

和tar命令一样,cpio命令恢复从目录保存的文件时,取决于是相对路经还是绝对路经。

cpio命令还有一个优点是可以直接将文件发送给外部源。

例如,下列命令恢复/root主目录中的文件,并把文件发送到SCSI磁带机:

# find /root | cpio -o ->/dev/st0

# cpio -i </dev/st0

1、查看磁盘空间情况:

既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败,数据丢失的恶果!

存储到当前磁盘这是最简单,却是最不推荐的;服务器有多块硬盘,最好是把备份存放到另一块硬盘上;有条件就选择更好更安全的存储介质;

# df -h

FilesystemSize Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root 50G 46G 1.6G 97% /

tmpfs 1.9G 92K 1.9G 1% /dev/shm

/dev/sda1 485M 39M 421M 9% /boot

/dev/mapper/VolGroup-lv_home 534G 3.6G 503G 1% /home123456123456

2、创建备份目录:

上面我们使用命令看出/home下空间比较充足,所以可以考虑在/home保存备份文件;

cd /home

mkdir backup

cd backup123123

3、创建备份Shell脚本:

注意把以下命令中的DatabaseName换为实际的数据库名称;

当然,你也可以使用其实的命名规则!

vi bkDatabaseName.sh11

输入/粘贴以下内容:

#!/bin/bash

mysqldump -uusername -ppassword DatabaseName >/home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql1212

对备份进行压缩:

#!/bin/bash

mysqldump -uusername -ppassword DatabaseName | gzip >/home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz1212

注意:

把 username 替换为实际的用户名;

把 password 替换为实际的密码;

把 DatabaseName 替换为实际的数据库名;

4、添加可执行权限:

chmod u+x bkDatabaseName.sh11

添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;

./bkDatabaseName.sh11

5、添加计划任务

检测或安装 crontab

确认crontab是否安装:

执行 crontab 命令如果报 command not found,就表明没有安装

# crontab

-bash: crontab: command not found


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8045415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存