国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

幫助中心 >  技術(shù)知識庫 >  網(wǎng)站相關(guān) >  網(wǎng)站運營(yíng) >  linux環(huán)境下中小型網(wǎng)站備份網(wǎng)站源碼數據和mysql數據庫腳本

linux環(huán)境下中小型網(wǎng)站備份網(wǎng)站源碼數據和mysql數據庫腳本

2016-11-30 19:58:35 7515

1,網(wǎng)站源碼備份腳本webbakup.sh

#!/bin/bash
# bakup website for 21yunwei
#author swh
time=`date +%Y%m%d`
[ ! -e /home/bakup/websitebak ] && mkdir -p /home/bakup/websitebak
cd /home/wwwroot/21yunwei/
tar zcf /home/bakup/websitebak/21yunwei$time.tar.gz ./*

說(shuō)明:該腳本可以繼續優(yōu)化,當前只是備份一個(gè)站點(diǎn)。如果服務(wù)器上網(wǎng)站比較多,可以將站點(diǎn)名設置變量后分別以站點(diǎn)名+時(shí)間.tar.gz 方式備份,如下面腳本所示。另外如網(wǎng)站較大請根據實(shí)際情況設置備份策略,避免IO過(guò)高影響正常使用。這里不做過(guò)多說(shuō)明,可以自己補充腳本。


站點(diǎn)目錄下如有多個(gè)站點(diǎn),可以參考這個(gè)腳本:

#!/bin/bash
# bakup website for all
#author swh
time=`date +%Y%m%d`
 [ ! -e /home/bakup/websitebak  ] && mkdir -p /home/bakup/websitebak
ls -l   /home/wwwroot | grep 4096 | awk '{ print  $9 }'  > sitename.txt
cat sitename.txt | while  read sitename
do
cd /home/wwwroot/$sitename
tar zcf  /home/bakup/websitebak/$sitename.$time.tar.gz   *
done

2,mysql備份腳本mysqlbakup.sh 。

#!/bin/bash
# backup mysql for 21yunwei
#author swh
[ ! -e /home/bakup/mysqlbak ] && mkdir -p /home/bakup/mysqlbak
time=`date +%Y%m%d`
mysqldump -uDBUsername -pDBPasswd DBname --skip-lock-tables >  /home/bakup/mysql/21yunwei$time.sql

說(shuō)明:這里只是備份了一個(gè)數據庫,如果是備份多個(gè)數據庫請自行設置變量$databasename分別導出。 另外該腳本只適合一些小型網(wǎng)站,數據庫較大的導出不適合,請設置自己?jiǎn)为毜臄祿靷浞莶呗?。下邊單獨測試了腳本可以嘗試如下兩個(gè)方法(一個(gè)while循環(huán)一個(gè)for循環(huán))分別導出備份并將sql文件以數據庫名+日期.sql方式命名:

#!/bin/bash
# dump mysql  for all
#author  swh
 
[ ! -e /home/bakup/mysqlbak ]  &&  mkdir -p /home/bakup/mysqlbak
time=`date +%Y%m%d`
mysqlshow  -uroot  -pxxxxxx |  grep  -Ev "Data|info" | grep  -v + | awk '{print  $2}' > databasename.txt
while read sqlname
do
mysqldump  -uroot  -pxxxxxx  $databasename  --skip-lock-tables >  /home/bakup/mysqlbak/$databasename.$time.sql
done < databasename.txt
exit 0


#!/bin/bash
# dump mysql  for all
#author  swh
 
[ ! -e /home/bakup/mysqlbak ] &&  mkdir -p /home/bakup/mysqlbak
time=`date +%Y%m%d`
database=`mysqlshow  -uroot  -pxxxxxx |  grep  -Ev "Data|info" | grep  -v + | awk '{print  $2}'`
for bakmysqlname in $database
do          
mysqldump  -uroot  -pxxxx  $databasename  --skip-lock-tables > /home/bakup/mysqlbak/$bakmysqlname.$time.sql
done       
exit 0

3,設置任務(wù)計劃crontab -e,指定每周三的凌晨一點(diǎn)備份數據庫,三點(diǎn)進(jìn)行網(wǎng)站備份。具體備份頻率請根據自己實(shí)際情況來(lái)定。

0 1 * * 3  sh /home/shell/mysqlbackup.sh
0 3 * * 3  sh /home/shell/webbakup.sh

提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->