linux下利用shell脚本和mysqldump热备份和恢复mysql
生活随笔
收集整理的這篇文章主要介紹了
linux下利用shell脚本和mysqldump热备份和恢复mysql
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對mifeng數據庫進行每周六3:33完全熱備份,并可以完全恢復!
一、先建立備份腳本
#vi /mifengbackup/backup.sh#!bin/bash cd /mifengbackup echo "You are in backup dir" mv backup* /oldbackup echo "Old dbs are moved to oldbackup folder" File = backup-$Now.sql mysqldump -uroot -p123456 --quick --databases database-names --flush-logs --single-transaction > $File echo "Your database backup successfully completed"上面腳本文件保存為backup.sh,并且系統中已經創建兩個目錄/oldbackup和/mifengbackup。每次執行backup.sh時都會先將/mifengbackup目錄下所有名稱為backup開頭的文件移到/oldbackup目錄。
對于具體備份sql如果不熟悉,可以看我的這篇文章:mysqldump使用大全
二、為上述腳本制定執行計劃
#crontab -e 30 1 * * * /backup.sh更多關于crontab知識,參閱:Linux定時任務Crontab命令詳解
附mysqldump參數說明:MYSQLDUMP參數詳解(轉)寫得很詳細!
到了計劃任務執行的時間,執行好后會給我們發一封郵件,這是給我們的提示
You have new mail in /var/spool/mail/root根據提示查看這封郵件
[root@localhost mail]# vi root X-Original-To: root Delivered-To: root@localhost.localdomain Received: by localhost.localdomain (Postfix, from userid 0)id 46BD24493CA2; Sat, 22 Dec 2018 03:33:02 -0800 (PST) From: "(Cron Daemon)" <root@localhost.localdomain> To: root@localhost.localdomain Subject: Cron <root@localhost> /backup.sh Content-Type: text/plain; charset=UTF-8 Auto-Submitted: auto-generated Precedence: bulk X-Cron-Env: <XDG_SESSION_ID=63> X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0> X-Cron-Env: <LANG=en_US.UTF-8> X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/root> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=root> X-Cron-Env: <USER=root> Message-Id: <20181222113302.46BD24493CA2@localhost.localdomain> Date: Sat, 22 Dec 2018 03:33:02 -0800 (PST)/bin/sh: /backup.sh: No such file or directory主要是最后一句,是錯誤原因,提示文件路徑找不到,因為我們沒有配置環境變量,所以涉及到路徑的最好寫絕對路徑。
#vi /usr/local/mifengbackup/backup.sh#!bin/bash cd /usr/local/mifengbackup echo "You are in mifengbackup dir" mv backup* /usr/local/oldbackup echo "Old dbs are moved to oldbackup folder" File = backup-$Now.sql mysqldump -h177.77.177.177 -uroot -p123456 --quick --databases mifeng --flush-logs --single-transaction > $File echo "Your database backup successfully completed"三、恢復備份sql文件
cd /mysqlback tar zxvf extmail20170515.tar.gz mv extmail20170515.sql extmail.sql mysql -uroot -p < extmail.sql?
總結
以上是生活随笔為你收集整理的linux下利用shell脚本和mysqldump热备份和恢复mysql的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生产级部署 Python 脚本,崩溃可自
- 下一篇: JavaScriptDate对象