程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> shell初步之:mysql每天定時倒出本地數據,替換遠程數據庫數據

shell初步之:mysql每天定時倒出本地數據,替換遠程數據庫數據

編輯:MySQL綜合教程

shell初步之:mysql每天定時倒出本地數據,替換遠程數據庫數據   01 mysql每天定時倒出本地數據,替換遠程數據庫數據 02 需求在每天的5點將192.168.3.5上ser_a庫中的tb_a表導入到192.168.3.6上的ser_b庫中,表名還叫tb_a 03 服務端腳本/usr/shell_clubs/auto_sql/server.sh 04 #!/bin/sh 05 #code by scpman 06 /usr/bin/find /usr/shell_clubs/auto_sql/ -name "*.sql" -mtime +3|xargs rm #del old sql 07 #get new sql 08 time=`date +%Y%m%d` 09 mysqldump -uroot -p123456 ser_a tb_a > /usr/shell_clubs/auto_sql/`date +%Y%m%d`_tb_a.sql 10 sleep 2 11 ssh -p10022 192.168.3.6 <<EEE 12 /usr/shell_clubs/auto_sql/client.sh 13 EEE 14 說明:服務端腳本會導出指定表,並通過公鑰ssh到目標機器上,調用客戶端腳本 15 客戶端腳本/usr/shell_clubs/auto_sql/client.sh 16 #!/bin/sh 17 #code by scpman 18 #client.sh 19 time=`date +%Y%m%d` 20 /usr/bin/find /usr/shell_clubs/auto_sql/ -name "*.sql" -mtime +3|xargs rm #del old sql 21 /usr/local/bin/rsync -vzrtopgl --progress  [email protected]::all/usr/shell_clubs/auto_sql/`date +%Y%m%d`_tb_a.sql /usr/shell_clubs/auto_sql/; 22 counts=`ls -l /usr/shell_clubs/auto_sql/ | grep "$time" | awk '{print $NF}'|wc -l` 23 echo $counts 24 if [ "$counts" -eq 1 ] 25 then 26 echo sql:$counts 27 mysql -uroot -ptest123  <<FFF 28 use ser_b; 29 drop table tb_a; 30 FFF 31 mysql -uroot -ptest123 ser_b < /usr/shell_clubs/auto_sql/`date +%Y%m%d`_tb_a.sql --default-character-set=utf8 32 echo --------------done 33 else 34         echo sql wrong 35 fi 36 說明:客戶端腳本被調用時,會先刪除當前路徑下的舊sql記錄,然後通過rsync將服務端導出的表,同步過來,並檢查是否同步過來,如果同步成功,則清空現有舊tb_a,將新的tb_a導入進庫,如果沒同步成功,則腳本退出(此處可以先發個郵件通知再退出) 37 然後流程通了 38 現在再加一條定時在192.168.3.5上(server端) 39 ##send sql to 192.168.3.6 40 0 5 * * * su - root -c "/usr/shell_clubs/auto_sql/server.sh" >>/usr/shell_clubs/auto_sql/res.log  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved