mysql数据定时备份

1.首先明白这里使用shell脚本编写

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言

Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了

Linux 的 Shell 种类众多,常见的有:

Bourne Shell(/usr/bin/sh或/bin/sh)

Bourne Again Shell(/bin/bash)

C Shell(/usr/bin/csh)

K Shell(/usr/bin/ksh)

Shell for Root(/sbin/sh)

……

在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像#!/bin/sh,它同样也可以改为#!/bin/bash

#!  解释

打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就用 php 好了。

更多shell解释,请参考http://www.runoob.com/linux/linux-shell.html

2.shell脚本示例

(1)在目录  /opt新建mysqldump目录 (/opt/mysqlbackup)[目录个人自行定义]

在mysqlbackup新建dbbackup.sh文件

命令:cd /opt/mysqlbackup

        vim dbbackup.sh

        wq    //保存退出


(2)

#!/bin/bash

#dbpwd='as!@#888'

#dbuser=root

host=127.0.0.1

port=3306

backupdir='/opt/mysqlbackup/'

time=` date +%Y%m%d%H`

dbname='aishe'

mysqldump -uroot -p $dbname | gzip > $backupdir/db_$time.sql.gz

find $backupdir -name "db_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1


(3)将(2)shell代码,粘贴复制到 刚新建的dbbackup.sh文件,保存退出

(4)执行shell脚本

cd    /opt/mysqlbackup

sh -vx dbbackup.sh

回车后,要求输入数据库密码(因为shell中没有写入数据库密码[数据库密码写入后,执行shell会报错,大意是密码不要写在shell中,注意安全,所以密码在my.cnf设置])

查找my.cnf:  whereis my.cnf

vim my.cnf

在my.cnf加入 

user=XXXXXX

password=XXXXXX

如果上述都就绪,接着执行 sh -vx dbbackup.sh

输入正确的mysql密码后,如果没有任何警告和错误, 查看  备份目录是否生成文件

cd   /opt/mysqlbackup     //备份文件存放目录(shell脚本中有设置)

ll

如果出现

备份文件

脚本执行成功!

(5)手动执行脚本,成功

将脚本加入计划任务

crontab -e

写入

33 17 * * * /opt/mysqlbackup/dbbackup.sh

//分 时  日 月  周   脚本路径

crontab格式

如果任务执行失败了,可以通过以下命令查看任务日志

tail -f /var/log/cron

3.此外 执行并检测shell脚本

 命令: sh -vx xxxx.sh   //xxx表示shell文件名

 (2)shell脚本里面写字符串执行时经常会报错XXX command not found

删除空格

你可能感兴趣的:(mysql数据定时备份)