mysql備份指令碼並保留7天

2022-09-25 04:03:07 字數 1347 閱讀 9004

指令碼需求:

每天備份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 啟動執行的指令碼環境變數沒有設定,需要在指令碼中設定環境變數 使用何種方式備份資料庫...