bash 備份wordpress by ubuntu

  • Post author:
  • 帖子最後修改:2022 年 3 月 19 日

bash 備份mysql wordpress

web server 好多個,一個一個寫,不好。

  1. 定義domain name = web folder=database
  2. mysql passwd set in mysqld.cnf 本機免密碼。
可以嗎
50%
				
					#!/bin/bash
sudo systemctl stop nginx.service   #關閉nginx.service...
echo "關閉nginx.service..."         #回應關閉
Now=$(date +%Y%m%d%H%M)             #現在時間
f01=/data/server                    #web folder 
declare -A dictdirs                 #聲明字典類型
dictdirs=([bk01]="/backup" [bk02]="/data/back") #dictdirs 的字典內容
echo 聲明字典類型:${dictdirs[*]}   #回應dictdirs 字典類型
for i in ${dictdirs[*]}             #查看{dictdirs[*]}資料夾是否存在
do
if [ -d $i ];                       #尋找資料夾
then
# 目錄 $i 存在
	echo $i"資料夾存在"             #如果存在回應存在
else
	echo "需要製作資料夾$i"         #不存在回應需要建立資料夾
	sudo mkdir -p $i                #建立資料夾
	sudo chown -R $(whoami) $i      #賦予資料夾權限
	echo "建立$i權限$(whoami)"      #回應建立資料夾權限
fi
done
cd ${dictdirs[bk01]}                #進入[bk01]定義資料夾內
echo "進入${dictdirs[bk01]}資料夾"  #回應進入[bk01]
ls $f01 | while read -r f;          #ls 送檔名 while read 接收讀取。
do 
echo "找到$f01/$f資料夾"            #回應找到$f01下的資料夾為$f
sudo cp -r -p $f01/$f ${dictdirs[bk01]}/    #將$f資料夾複製至${dictdirs[bk01]}
echo "$f資料複製完成"                       #回$f應資料夾複製完成
sudo chown -R $(whoami) ${dictdirs[bk01]}/$f    #賦予複製來過來的$f權限
echo "$f資料夾權限已建立"           #回應$f 資料夾權限已建立
mysqldump -u leo --default-character-set=utf8 $f > ${dictdirs[bk01]}/$f/${f}_$Now.sql
echo "$f資料庫備份完成"             #回應資料庫已備份至$f
sudo tar -zcf ${f}${Now}.tar.gz $f/ #壓縮$f資料夾
echo "$f1資料夾壓縮完成"            #回應$f 資料夾壓縮完成完成
sudo rm -r $f                       #刪除複製過來的 資料夾檔案
echo "複製資料已刪除..."            #回應複製資料夾檔案已刪除
sudo mv *.tar.gz ${dictdirs[bk02]}/ #移動壓縮檔至${dictdirs[bk02]}/
echo "$f$Now.tar.gz檔移動至${dictdirs[bk02]}/"  #回應已移動到${dictdirs[bk02]}/
done
echo "備份檔已完成至${dictdirs[bk02]}/" #回應備份已完成
sudo find ${dictdirs[bk02]}/ -type f -name "*.tar.gz" -mtime +3 -exec rm -rf {} \; 
echo "重啟Nginx..."                     #上備份檔保留3天內的檔案其餘刪除
sudo systemctl start nginx.service      #從新啟動nginx server
echo "Nginx 啟動完成..."                #回應已完成啟動
				
			

運行結果如下