指令碼需求:
每天備份mysql資料庫,保留7天的指令碼。
存放在/opt/dbbak目錄中。
指令碼名稱為database_***x-xx-xx.sql
指令碼內容:
#!/bin/bash
export now="$(date +"%y-%m-%d")"
export data_dir=/opt/dbbak
/usr/local/ywgh/mysql/bin/mysqldump --opt -uroot –p 'mypassword' ywghblog > $data_dir/ywghblog/ywghblog_$now.sql
find $data_dir/ywghblog -type f -name "*.sql" -mtime +7 -exec rm -rf {} \;
指令碼解釋:
首先定義乙個變數now取當前的年月日,
在定義乙個目錄的變數data_dir,
然後使用mysqldump命令將要備份的庫備份到指定的目錄,
最後使用find命令找到指定目錄的sql檔案,並且將7天之外的檔案刪除。
-mtime + 就是找到7天之外的檔案
-mtime – 就是找到7天之內的檔案
-exec就是執行後邊的命令
請根據自己的需求修改指令碼。
知識點擴充套件:自動備份mysql資料庫指令碼
vi dbbackup.sh在開啟的編輯器輸入:
#!/bin/bash
/usr/local/mysql/bin/mysqldump -uuser -ppasswd databasename > /hom '+%y%m%d').sql
命令的意思是用mysqldump匯出名為databasename的資料庫到/homwww.cppcns.come/wwwroot/backup/資料夾並命bxyhxzmuo名為date_日期.sql,-u後面的是你的mysql的使用者名稱,-p後面的是mysql密碼,databasename是要備份資料庫名字,把這三個替換成自己的。
修改許可權並執行備份指令碼看能否備份成功:
chmod +x dbbackup.sh
sh dbbackup.sh
如果一切檢查沒問題了,就建立定時任務自動備份你的資料吧,輸入命令:
crontab -e
在開啟的檔案輸入定時任務:
56 23 * * * /root/dbbackup.sh
然後按esc鍵後輸入:wq退出編輯並保程式設計客棧存檔案。
好了,定時任務建立好了,每天23點56分備份執行dbbackup.sh備份資料庫。
總結本文標題: mysql備份指令碼並保留7天
本文位址: /shujuku/mysql/276284.html
shell指令碼(保留最近N天的備份)
bin bash 保留最近n天的備份 2019年6月16日11 32 59 需求 檔案備份格式為date f h m 節假日不備份 無論過幾個節假日,始終保留最新n天的備份 模擬備份 mkdir pwd test touch pwd test date d 1 day ago f h m tar.g...
備份並刪除7天以前資料
需求 有根據年月日時分建立的目錄結構中資料需要按照每天進行備份,原始目錄 root lab 1 logs cd home logs 2 2017 12 06 備份目錄 root lab 1 bak cd home logs bak 備份指令碼在備份目錄中,計畫任務中,每天凌晨1點備份並壓縮7天之前的...
編寫mysql備份指令碼 mysql 備份指令碼的編寫
最近在為做一些邊邊角角的工作,現在有乙個需求要每天把mysql的資料庫dump出來到備份機器上面去.看似簡單的任務也潛在了很多的需求,整理如下 自動執行 crontab 指令碼的環境變數設定 由於通過crontab 啟動執行的指令碼環境變數沒有設定,需要在指令碼中設定環境變數 使用何種方式備份資料庫...