定時每天備份mysql並定時刪除上月記錄(指令碼)

2021-08-25 12:18:54 字數 1241 閱讀 2285

shell指令碼:

備份的指令碼比較簡單:

#!/bin/bash

# 定義年 月 日

year=`date   +%y`

month=`date   +%m`

day=`date   +%d`

# 定義備份的目錄

backdir=/bak_1/mysql/$year/$month/$day

# mysql的root密碼

rootpass=123456

# 建立目錄

mkdir -p $backdir

# 獲取資料庫列表

dblist=`ls -p /var/lib/mysql | grep / | tr -d /`

# 備份

for dbname in $dblist

domysqlhotcopy $dbname -u root -p $rootpass $backdir | logger -t mysqlhotcopy

done

複製**

上面的指令碼將

資料庫按"年/月/日"目錄結構備份,將指令碼存為back.sh新增到cron裡每天凌晨3點執行

00 03 * * * root /root/back.sh

下面的是每月3號刪除上個月的備份,存為del_bak.sh,每月3號3點3分執行

03 03 03 * * root /root/del_bak.sh

注意指令碼上傳後,要chmod一下許可權,比如chmod 755 /root/back.sh

#!/bin/bash

# 定義年 月 日

year=`date   +%y`

month=`date   +%m`

#day=`date   +%d`

# 取上乙個月

month=`expr $month - 1`

# 如果是1月,則上一月為12,並且年也減1

if [ $month -eq 0 ]; then

month=12

day=31

year=`expr $year - 1`

fi# 因為備份時小於10月的月份有前導零,所以這裡判斷如果小於10月,則加前導零

if [ $month -lt 10 ]; then

pre=0

fi#獲取要刪除的目錄名

backdir=/bak1/mysql/$year/$pre$month

#刪除了

rm -rf $backdir

mysql每天定時備份指令碼

bin bash 要備份的資料庫名,多個資料庫用空格分開 databases bdm0120810 db bdm0330237 db bdwsd competitive database db goldfilling hdm0110181 db publicdb sfa syb user panel...

用 crontab 每天定時備份 MySQL

用 crontab 每天定時備份 mysql 利用系統 crontab 來定時執行備份檔案,按日期對備份結果進行儲存,達到備份的目的。1 建立儲存備份檔案的路徑 mysqldata mkdir mysqldata 2 建立 usr sbin bakmysql 檔案 vi usr sbin bakmy...

mysql定時備份指令碼 MySql定時備份指令碼

最近需要對某服務的資料庫資料進行備份,因此參考網上教程完成資料庫備份指令碼.因為服務的使用頻率較低,因此設定定時任務,在每天的中午以及午夜時分進行備份操作.bin bash 設定mysql的登入使用者名稱和密碼 根據實際情況填寫 mysql user mysql password mysql hos...