溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

shell編程實戰(zhàn)之網(wǎng)站文件及數(shù)據(jù)庫文件如何備份

發(fā)布時間:2020-09-22 09:17:15 來源:億速云 閱讀:119 作者:小新 欄目:建站服務(wù)器

這篇文章主要介紹shell編程實戰(zhàn)之網(wǎng)站文件及數(shù)據(jù)庫文件如何備份,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

文件備份的重要性不言而喻,定期備份是個好習(xí)慣,不管是網(wǎng)站文件還是日常生活的照片、視頻等。不然等到數(shù)據(jù)丟失了,你就能體會數(shù)據(jù)找不回來的那種絕望了。筆者親身經(jīng)歷過幾次,最嚴(yán)重的一次是個人博客7個多月的數(shù)據(jù)全部丟失,那真是種欲哭無淚的感覺。

今天和大家來講下如何在服務(wù)器端編寫備份網(wǎng)站目錄及數(shù)據(jù)庫文件的腳本。首先需要先補充幾個知識:

  • tar命令,文件的壓縮打包

  • find命令,查找文件

  • bzip2,文件壓縮

為了節(jié)省空間,我們經(jīng)常會對目錄文件做壓縮并打包的操作。bzip2命令可以對文件進行壓縮,但它不能對目錄進行壓縮,對目錄則可以使用tar命令壓縮打包。

因為數(shù)據(jù)庫文件就是一個單獨的sql文件,所以可以使用bzip2命令對其壓縮。

mysqldump -u用戶名 -p密碼 --all-databases | bzip2 > 備份目錄/文件名

而網(wǎng)站文件則需要使用tar命令來進行壓縮。

tar -jcpf 備份目錄/文件名  需備份的目錄

雖然我們每天都會進行備份,但是我們只想保存最近七天的備份記錄,7天前的備份數(shù)據(jù)自動刪除。這里我們就需要使用find命令來找出7天前的備份文件,然后將其刪除。

find 備份目錄 -mtime +7 -type f -exec rm -f {} \;

下面開始正式編寫shell腳本。首先,我們需要定義備份目錄,如果備份目錄不存在,則需要先創(chuàng)建目錄。

WWW_DIR=/home/wwwroot
BAK_DIR=/root/bak

if [ ! -d $BAK_DIR ];then
    mkdir $BAK_DIR
fi

接下來 ,就是進行網(wǎng)站目錄以及數(shù)據(jù)庫文件的備份了

tar -jcpf $BAK_DIR/www_$(date +%Y%m%d).tar.bz2 $WWW_DIR 2>/dev/null
mysqldump -uroot -p123456 --all-databases | bzip2 > $BAK_DIR/all_database_$(date +%Y%m%d).sql

最后,只要刪除七天前的備份數(shù)據(jù)即可

find $BAK_DIR -type f -mtime +7 -exec rm -f {} \;

下面貼出完整代碼:

#!/bin/bash
# 備份數(shù)據(jù)庫文件及網(wǎng)站文件

WWW_DIR=/home/wwwroot
BAK_DIR=/root/bak

if [ ! -d $BAK_DIR ];then
    mkdir $BAK_DIR
fi

# 備份網(wǎng)站文件及數(shù)據(jù)庫文件
tar -jcpf $BAK_DIR/www_$(date +%Y%m%d).tar.bz2 $WWW_DIR 2>/dev/null
mysqldump -uroot -pGuiyuan#520@1314 --all-databases | bzip2 > $BAK_DIR/all_database_$(date +%Y%m%d).sql 

# 刪除7天前的備份數(shù)據(jù)
find $BAK_DIR -type f -mtime +7 -exec rm -f {} \;

最后,還是希望大家能養(yǎng)成備份的習(xí)慣。除了服務(wù)器上的每日備份,另外還是建議一個星期,從服務(wù)器上拷貝一份數(shù)據(jù)到本地磁盤,保證數(shù)據(jù)萬無一失。

以上是shell編程實戰(zhàn)之網(wǎng)站文件及數(shù)據(jù)庫文件如何備份的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI