linux自動定時備份web程式和mysql資料庫

2021-09-26 01:35:28 字數 3048 閱讀 3704

前些天受朋友說linux定時備份不知道怎麼搞,叫幫忙處理一下。由於這段時間正閒著,所以也就欣然答應。由於朋友對linux不懂也希望我將操作的過程記錄下來,也就是越詳細越好。所以寫得比較$%^&*。本以為半個小時或者乙個小時可以搞好,誰不知整整搞了一天。原因在哪呢?這裡也順便吐槽一下,首先問web存放在什麼地方?不知,給了個ftp。然後進去一看,各種壓縮包,各種目錄備份,混亂不堪,為了防止磁碟被撐爆,所以乙個個目錄確認,哪些目錄是要的哪些是不要的,然後乙個個刪掉。還有mysql資料庫,問用的哪個?不知,又是一通的等,一遍遍地確認。好吧,這也都算了。等我搞好了,然後說每天檢查一下。誰不知,程式猿最怕發生的事情義無意外地發生了。目錄搞錯,這不等於萬惡的改需求嗎?腦子瞬間都是各種@!#$%^&*(!@#$%^^&*()。好吧,不接都已經接了認了吧。好了吐槽至此,不廢話入正題。

需求:1、每天定時備份web程式和mysql資料庫

2、web程式、web日誌和mysql資料庫備份均保留7天

說明:web目錄:/chinasofti/www/bbswebdir

web日誌目錄:/chinasofti/www/bbswebdir/httplogs

日誌檔名格式:

myweb.com-access_log_yyyymmdd,myweb.com-error_log_yyyymmdd,如myweb.com-access_log_20150508,myweb.com-error_log_20150508

備份指令碼存放目錄:/chinasofti/wwwbakscript/

備份檔案存放目錄:/chinasofti/wwwbakdir/

web

備份檔案名格式:

bbs.myweb.com_yyyymmdd,如bbs.myweb.com_20150508.tar.gz

mysql備份檔案格式:資料庫名_$(date +%y%m%d).sql.gz

寫在前面:務必注意各個目錄的說明,運用是注意修改。完全不改是用不了的。注意各個目錄和檔案的對應關係。

淡綠色底的為linux命令,淡黃色底的為shell指令碼內容,其他的為備註說明。

操作步驟

root使用者登陸後

1、切換目錄

cd /chinasofti/wwwbakscript

2、建立備份指令碼

vi mywebbak.sh

按i然後輸入以下內容

#!/bin/bash

#backup/chinasofti/www/bbswebdir and database

###################切換到web目錄#################

cd/chinasofti/www/bbswebdir

###################刪除web日誌#################

###################刪除備份檔案#################

rm -f/chinasofti/wwwbakdir/bbs.myweb.com_$(date +%y%m%d --date='7 days ago').tar.gz

###################備份web程式#################

tar -zcf/chinasofti/wwwbakdir/bbs.myweb.com_$(date +%y%m%d).tar.gz ./* ./.[!.]*

###################刪除備份資料庫####################

rm -f/chinasofti/wwwbakdir/資料庫名_$(date +%y%m%d --date='7 days ago').sql.gz

###################備份資料庫####################

mysqldump -u資料庫賬號 -p"資料庫密碼" 資料庫 | gzip >/chinasofti/wwwbakdir/資料庫名_$(date +%y%m%d).sql.gz

#################匯出單個表資料和結構############

#mysqldump -u賬號 -p 資料庫名 表名 > /root/***x.sql

新增完成後,按鍵盤右上角的「esc」鍵,然後輸入英文的冒號加x(:x),回車完成。

注意:紅色字型部分為路徑(注意修改),品紅色部分為檔名(注意修改)。

4、新增可執行許可權

chmod +x mywebbak.sh

5、定時執行

crontab -e

按i編輯,新增執行的指令碼和時間。如:

0 1 * * * /chinasofti/wwwbakscript/mywebbak.sh

則為每天凌晨1點執行,/chinasofti/wwwbakscript/mywebbak.sh這個shell指令碼。

修改完成後,按鍵盤右上角的「esc」鍵,然後輸入英文的冒號加x(:x),回車完成。

6、每天檢查指令碼是否正常執行。

linux自動定時備份web程式和mysql資料庫

前些天受朋友說linux定時備份不知道怎麼搞,叫幫忙處理一下。由於這段時間正閒著,所以也就欣然答應。由於朋友對linux不懂也希望我將操作的過程記錄下來,也就是越詳細越好。所以寫得比較 本以為半個小時或者乙個小時可以搞好,誰不知整整搞了一天。原因在哪呢?這裡也順便吐槽一下,首先問web存放在什麼地方...

mysql定時自動備份

假想環境 mysql 安裝位置 c mysql 論壇資料庫名稱為 bbs mysql root 密碼 123456 資料庫備份目的地 d db backup 程式 echo off c mysql bin mysqladmin u root password 123456 shutdown c my...

mysql 自動定時備份

說明 以下是資料庫自動備份指令碼,可以儲存成.bat的方式,然後用計畫任務去定時執行。echo 資料庫開始備份!echo off 定義磁碟 set disk d 定義單位名稱 set unit jd scjdj 定義壓縮檔案路徑 set rar c program files winrar 定義存放...