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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值