一個簡單的MySQL備份Shell指令碼_Mysql

來源:互聯網
上載者:User
#!/bin/bash#this is a script of mysql backup if [ ! -d /mydata/data1/backup ] ;then  mkdir /mydata/data1/backupficd /mydata/data1/backupfile=$(find . -type f -mtime -7 | grep .*all.sql)  #尋找7天內是否有備份的檔案echo $fileif [ -z $file ] ;then  echo "backup all databases..." backupfile=$(date +%F-%H-%M-%S) mysqldump -uroot --lock-all-tables --flush-logs --master-data=2 --all-databases > /mydata/data1/backup/"$backupfile-all.sql" if [ $? -eq 0 ] ;then echo "Accomplish,file is $backupfile-all.sql !" else  echo " Failure !!! " fielse                   #尋找倒數第二大的二進位檔案,作增量備份 cd .. echo "All database backups ,now start doing incremental backups!"    a=1     b=1     for file in $(ls |grep mysql-bin |grep -v index);do        num=$(echo $file |cut -d. -f2 )        if [ $num -gt $a ];then            a=$num        fi     done    unset num file    num=1      for file in $(ls |grep mysql-bin |grep -v index);do        num=$(echo $file |cut -d. -f2 )        if [ $num -gt $b -a $num -ne $a ] ; then            b=$num            tmp=$file        fi     done    file1=$(echo $tmp|cut -d. -f1)    file2=$(echo $tmp|cut -d. -f2)    mysqlbinlog $tmp > /mydata/data1/backup/"$file1-$file2.sql" if [ $? -eq 0 ] ;then  echo "Backup completed,file is "$file1-$file2.sql"" fifi

說明:此指令碼每七天做一次完全備份,以後每天做一次增量備份,完全備份使用mysqldump用戶端工具,增量備份使用mysqlbinlog備份其二進位記錄檔。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.