#!/bin/bash
mysqldump -p databasename > mydatasql
2 更改其为可执行文件 chmod +x autobackupsh
3 通过crontab让系统自动运行这个脚本就好了,如crontab -e
0 0 /路径到/autobackupsh
第一个0表示分钟,第二个0表示0小时也就是零辰第三个表示每天,第四个表示每月,第五个表示每周
mysql备份:
mysqldump -u username -p dbname > BackupNamesql
mysql恢复:
mysql -u root -p dbname < BackupNamesql
所以你可以写个shell脚本,脚本中执行mysql备份命令,然后把shell脚本加入crontab定时任务中就可以完成每天自动备份数据库了。
方法/步骤
1 在根目录下新建定时备份存储文件夹mkdir /mysql_backup
2新建备份的脚本vim /root/mysql_backupsh
3在mysql_backupsh中输入内容:
backupdir=/mysqlbackup time=` date +%Y%m%d%H`mysqldump -uroot -proot abc | gzip > $backupdir/abc$timesqlgzfind $backupdir -name “abcsqlgz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1
——————————————————————————————
说明:
backupdir = 备份文件存储文件夹time = 获取当前时间 年月日时(2014111417)2014年11月14日17点mysqldump 备份数据库指令 abc要备份的数据库find $backupdir -name “abcsqlgz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1 删除5天前的备份文件
3 :wq 文件保存成功后
先按一下键盘上的 " esc " 然后输入 ” :wq “
执行一下脚本,看根目录下的mysql_backup文件夹是否有sqlgz后缀名的文件
/mysql_backupsh
写入每天的定时任务 修改 /etc/crontabvi /etc/crontab
按键盘上的"i",开始输入
02 4 root /root/mysql_backupsh
表示每天4点2分执行备份任务
先按一下键盘上的 " esc " 然后输入 ” :wq “ 表示保存
重新启动crond
service crond restart 或 /etc/rcd/initd/crond restart
1、查看磁盘空间情况:
既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败,数据丢失的恶果!
存储到当前磁盘这是最简单,却是最不推荐的;服务器有多块硬盘,最好是把备份存放到另一块硬盘上;有条件就选择更好更安全的存储介质;
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 50G 46G 16G 97% /
tmpfs 19G 92K 19G 1% /dev/shm
/dev/sda1 485M 39M 421M 9% /boot
/dev/mapper/VolGroup-lv_home 534G 36G 503G 1% /home123456123456
2、创建备份目录:
上面我们使用命令看出/home下空间比较充足,所以可以考虑在/home保存备份文件;
cd /home
mkdir backup
cd backup123123
3、创建备份Shell脚本:
注意把以下命令中的DatabaseName换为实际的数据库名称;
当然,你也可以使用其实的命名规则!
vi bkDatabaseNamesh11
输入/粘贴以下内容:
#!/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)sqlgz1212
注意:
把 username 替换为实际的用户名;
把 password 替换为实际的密码;
把 DatabaseName 替换为实际的数据库名;
4、添加可执行权限:
chmod u+x bkDatabaseNamesh11
添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;
/bkDatabaseNamesh11
5、添加计划任务
检测或安装 crontab
确认crontab是否安装:
执行 crontab 命令如果报 command not found,就表明没有安装
# crontab
-bash: crontab: command not found
以上就是关于linux下如何自动备份mysql数据库全部的内容,包括:linux下如何自动备份mysql数据库、如何使用crontab每天自动备份Mysql数据库、如何在linux下实现mysql数据库每天自动备份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)