- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
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
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP