CentOS+Nginx+PHP+Mysql+安全指南全環境搭建筆記(4)
- 數據自動備份
主要內容:
[安裝NCFTP軟件以支持自動上傳數據庫備份]
[數據庫每日備份]
[數據庫即時備份**按需操作**]
[日志備份]
[安裝NCFTP軟件以支持自動上傳數據庫備份]
# cd /software
# wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.2-src.tar.gz
# tar zxvf ncftp-3.2.2-src.tar.gz
# cd ncftp-3.2.2
# ./configure --prefix=/usr/local/webserver/ncftp
# make && make install
[數據庫每日備份]
每天4:00,將數據庫拷貝至/backup/day后進行壓縮,然后上傳至FTP服務器上,/backup/day/留有壓縮文件一天。
# vi /usr/local/webserver/backupd.sh
↑ 編輯腳本/usr/local/webserver/backupd.sh
寫入以下內容:
#!/bin/bash
rm -rf /backup/day/*
cd /backup/day/
cp -rf /usr/local/webserver/mysql/data/(此處為數據庫名稱)/ /backup/day/wp_db_$(date +%Y%m%d)
sleep 10
echo "ready to tar in 10s ."
tar zcvf `hostname`_wpdata_of_$(date +%Y%m%d).tar.gz wp_db_$(date +%Y%m%d)
sleep 10
echo "ready to upload in 10s ."
/usr/local/webserver/ncftp/bin/ncftpput -u backupd -p (FTP密碼) (FTP服務器地址) / /backup/day/`hostname`_wpdata_of_$(date +%Y%m%d).tar.gz
sleep 30
echo "upload done ."
rm -f `hostname`_wpdata_of_$(date +%Y%m%d).tar.gz
sleep 5
rm -rf wp_db_$(date +%Y%m%d)
clear
保存,并設置計劃任務:
# crontab -e
增加一行:
00 4 * * * /bin/bash /usr/local/webserver/backupd.sh
↑ 每天凌晨4點將自動備份數據庫并上傳。
[數據庫即時備份**按需操作**]
每隔6小時,將數據庫拷貝至/backup/hour目錄進行備份,然后將壓縮文件上傳至FTP服務器上,/backup/hour/留有壓縮文件一天。
# vi /usr/local/webserver/backuph.sh
↑ 編輯腳本/usr/local/webserver/backuph.sh
寫入以下內容::
#!/bin/bash
rm -rf /backup/hour/*
cd /backup/hour/
cp -rf /usr/local/webserver/mysql/data/(數據庫名稱)/ /backup/hour/wp_db_$(date +%Y%m%d%H)
sleep 10
echo "ready to tar in 10s ."
tar zcvf `hostname`_wpdata_of_$(date +%Y%m%d%H).tar.gz wp_db_$(date +%Y%m%d%H)
sleep 10
echo "ready to upload in 10s ."
/usr/local/webserver/ncftp/bin/ncftpput -u backuph -p (FTP密碼) (FTP服務器地址) / /backup/hour/`hostname`_wpdata_of_$(date +%Y%m%d%H).tar.gz
sleep 30
echo "upload done ."
rm -f `hostname`_wpdata_of_$(date +%Y%m%d%H).tar.gz
sleep 5
rm -rf wp_db_$(date +%Y%m%d%H)
clear
保存,并設置計劃任務:
# crontab -e
增加一行:
0 */6 * * * /bin/bash /usr/local/webserver/backuph.sh
↑ 每6小時將自動備份數據庫并上傳一次。
[日志備份]
每天02:00,將/logs/下前一天的日志,進行壓縮,然后上傳至FTP服務器。
# vi /usr/local/webserver/logs.sh
↑ 編輯腳本/usr/local/webserver/logs.sh
寫入以下內容::
#!/bin/bash
cd /logs/
mkdir logs_of_$(date -d "yesterday" +"%Y%m%d")
cp $(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log /logs/logs_of_$(date -d "yesterday" +"%Y%m%d")
cp $(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/nginx_error_$(date -d "yesterday" +"%Y%m%d").log /logs/logs_of_$(date -d "yesterday" +"%Y%m%d")
sleep 10
echo "ready to tar in 10s ."
tar zcvf `hostname`_logs_of_$(date -d "yesterday" +"%Y%m%d").tar.gz logs_of_$(date -d "yesterday" +"%Y%m%d")
sleep 10
echo "ready to upload in 10s ."
/usr/local/webserver/ncftp/bin/ncftpput -u logs -p (FTP密碼) (FTP服務器地址) / /logs/`hostname`_logs_of_$(date -d "yesterday" +"%Y%m%d").tar.gz
sleep 30
echo "upload done ."
rm -f `hostname`_logs_of_$(date -d "yesterday" +"%Y%m%d").tar.gz
sleep 5
rm -rf logs_of_$(date -d "yesterday" +"%Y%m%d")
clear
保存,并設置計劃任務::
# crontab -e
增加一行:
00 2 * * * /bin/bash /usr/local/webserver/logs.sh
↑ 每天凌晨2點將自動備份日志并上傳。
本文來源于月閣 - THE BLOG OF LOVEMOON http://moon-blog.cn , 原文地址: http://moon-blog.cn/centos_nginx_php_mysql_%e5%ae%89%e5%85%a8%e6%8c%87%e5%8d%97%e5%85%a8%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba%e7%ac%94%e8%ae%b0_4/
新聞熱點
疑難解答