定时同步数据库表(mysql+linux+crontab)

sync.sh
里面的参数需要改变,ip/username/password/database/table

#!/bin/bash
filename=/home/dubby/study/sh/$(date +%Y-%m-%d-%H-%M).sql
error='ERROR'
import_result=/home/dubby/study/sh/result

readonly filename
readonly error
readonly import_result

while((i<=5))
do
  /usr/bin/mysqldump -h 192.168.221.74 -uroot -pnington --database gagarin --table gagarin_stat_ad_record > ${filename}
  /usr/bin/mysql -uroot -p123456 test < ${filename} > ${import_result} 2>&1

  temp=`cat ${import_result}`
  #echo $temp
  index=` expr index "$temp" "$error"`
  echo $index
  if [ $index -gt  0 ]
  then
      ((i++))
      echo 'import error' >> $import_result
  else
      exit
  fi
done

记得加上执行权限!!
再弄一个定时任务执行这个文件
cron语法:

m h  dom mon dow   command

1,进入编辑模式:

crontab -u root -e 

2,
(2-1)测试用,每2分钟执行一次

*/2 * * * * /home/nington/db/sync.sh

(2-2)每天晚上11点执行

1 1 23 * * /home/nington/db/sync.sh

3,退出&保存

你可能感兴趣的:(Mysql)