MYSQL定时备份

每天定时备份MYSQL 下的cici数据库

1 备份命令内容

mysqldump -u root -proot -F  --default-character-set=latin1 cici> /var/lib/mysql/doc/cici_2012_11_08.sql

2 执行脚本

!bin/bash
DB_USER=root
DB_PASSWORD=root
DB_NAME=cici
DATE=`date +%Y-%m-%d_-%H:%M:%S`
SQL_FILE="/var/lib/mysql/doc/cici-$DATE.sql"
LOG_FILE="/var/lib/mysql/log/cici_backup.log"
RUN_CMD="mysqldump -u$DB_USER -p$DB_PASSWORD -F  --default-character-set=latin1 $DB_NAME";
$RUN_CMD >$SQL_FILE

3 添加到定时任务中

例如周一到周五的 0点0分 定时执行备份任务。并且将备份日志写入文件。

#crontab -e

0 0 * * 1-5 sh /var/lib/mysql/doc/backupcici.sh >> /var/lib/mysql/log/backupcici_`date +\%Y-\%m-\%d_-\%H:\%M:\%S`.sql

问题总结 执行shell脚本遇到的问题

问题1 date命令不能执行

shell脚本内容如下

!bin/bash
DATE="date +%Y-%m-%d_-%H:%M:%S"
echo 'cici DB back up' $DATE
 

 执行shell脚本  不能输出具体时间

[root@localhost doc]# . backupcici.sh 
cici DB back up date +%Y-%m-%d_-%H:%M:%S
 

解决

命令替换是要用后引号(`)而不是单引号把命令括起来。 改为

DATE=`date +%Y-%m-%d_-%H:%M:%S`
echo 'cici DB back up' $DATE

 问题2 在shell 脚本中运行备份语句出现如下问题 mysqldump: Couldn't find table: ">"

shell 脚本片段

RUN_CMD="mysqldump -u$DB_USER  -p$DB_PASSWORD -F  --default-character-set=latin1 cici > /var/lib/mysql/doc/cici-$DATE.sql";
echo $RUN_CMD
`$RUN_CMD`  ;

 

 

 

解决 -- 将命令改为如下内容 去掉后引号

RUN_CMD="mysqldump -u$DB_USER -p$DB_PASSWORD -F  --default-character-set=latin1 $DB_NAME";
$RUN_CMD >$SQL_FILE

 

==========================mysqldump命令详细说明==========================
http://www.sungyism.com/blog/post/138/
==================================================================

===========================shell 脚本参考料===================================

http://os.chinaunix.net/a2006/1214/969/000000969140.shtml

=========================================================================

你可能感兴趣的:(mysql)