程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Linux下自動備份MySQL數據庫並上傳到遠程FTP服務器且刪除指定日期前的備份Shell腳本

Linux下自動備份MySQL數據庫並上傳到遠程FTP服務器且刪除指定日期前的備份Shell腳本

編輯:MySQL綜合教程

Linux下自動備份MySQL數據庫並上傳到遠程FTP服務器且刪除指定日期前的備份Shell腳本   說明:  1、備份MySQL數據庫存放目錄/var/lib/mysql下面的vos3000db數據庫到/home/mysql_data裡面,並且保存為vos3000db_bak_2012_06_30.tar.gz的壓縮文件格式(2012_06_30是指備份執行時當天的日期),最後只保留最近7天的備份 2、上傳/home/mysql_data裡面的備份文件到遠程FTP服務器上,並且只保留最近7天的備份 3、FTP服務器:192.168.21.139  端口:21 賬號:admin 密碼:123456  mysql_data為備份文件存放目錄(此目錄需要預先在FTP服務器創建好) 實現步驟: 1、安裝ftp命令 apt-get install ftp   #安裝ftp 2、創建保存備份文件的目錄:/home/mysql_data cd /home  #進入目錄 mkdir mysql_data   #創建目錄 3、創建備份腳本文件:/home/mysql_data/mysql_databak.sh cd /home/mysql_data     #進入目錄 touch mysql_databak.sh  #創建文件 nano  mysql_databak.sh  #編輯文件,輸入以下內容     #!/bin/sh      DUMP=/usr/bin/mysqldump    #mysqldump備份程序執行路徑      OUT_DIR=/home/mysql_data   #備份文件存放路徑      LINUX_USER=root            #系統用戶名      DB_NAME=vos3000db               #要備份的數據庫名字    DB_USER=root              #數據庫用戶名     DB_PASS=521521             #數據庫密碼    DAYS=7         #DAYS=7代表刪除7天前的備份,即只保留最近7天的備份      cd $OUT_DIR                #進入備份存放目錄      DATE=`date +%Y_%m_%d`      #獲取當前系統時間      OUT_SQL="$DATE.sql"        #備份數據庫的文件名      TAR_SQL="vos3000db_bak_$DATE.tar.gz" #最終保存的數據庫備份文件名      $DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #備份      tar -zcvf $TAR_SQL  $OUT_SQL  #壓縮為.tar.gz格式      rm $OUT_SQL   #刪除.sql格式的備份文件      chown  $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL  #更改備份數據庫文件的所有者      find $OUT_DIR -name "vos3000db_bak*" -type f -mtime +$DAYS -exec rm {} \;  #刪除7天前的備份文件(注意:{} \;中間有空格)      deldate=` date -d -7day +%Y_%m_%d `   #刪除ftp服務器空間7天前的備份      ftp -n<<!      open 192.168.15.5 21     user sam 521521     binary  #設置二進制傳輸      cd mysql_data  #進入ftp目錄      lcd /home/mysql_data  #列出本地目錄      prompt      mput vos3000db_bak_$DATE.tar.gz   vos3000db_bak_$DATE.tar.gz   #上傳目錄中的文件      mdelete vos3000db_bak_$deldate.tar.gz  vos3000db_bak_$deldate.tar.gz  #刪除ftp空間7天前的備份    lose    bye ! ctrl+o   #保存配置 ctrl+x   #退出 4、修改文件屬性,使其可執行 chmod +x /home/mysql_data/mysql_databak.sh 5、修改/etc/crontab nano /etc/crontab  #在下面添加 45 22 * * * root  /home/mysql_data/mysql_databak.sh   #表示每天22點45分執行備份 6、重新啟動crond使設置生效 service cron stop  #停止 service cron start #啟動 /etc/init.d/cron restart #重啟 chkconfig cron on #設為開機啟動  先要安裝chkconfig(apt-get install chkconfig) 在/home/mysql_data目錄下面可以看到vos3000db_bak_2012_06_30.tar.gz這樣的壓縮文件 如果需要恢復文件的時候,只需要把這個文件解壓:tar -zxvf vos3000db_bak_2012_06_30.tar.gz 然後導入到數據庫中即可。 至此,Debian下自動備份MySQL數據庫並上傳到遠程FTP服務器且刪除指定日期前的備份Shell腳本完成。

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