【前面的話】因爲服務器快到期了,就從新另購了一臺服務器。這邊就來記錄一下遷移的過程和平常數據備份等等。mysql
個人站點使用halo
搭建的,主要涉及到的中間件有:Nginx
、Mysql
等;平常運行產生的數據有站點運行數據和資源數據,因此站點遷移也會從這些方面着手。nginx
其實Nginx
的遷移很簡單,只須要在新的服務器中安裝便可,而後遷移nginx.conf
配置文件。個人站點還用到https
,全部在安裝的時候要注意安裝相應的模塊以及證書的遷移。spring
./configure --prefix=/usr/local/nginx --add-module=../ngx_cache_purge-1.3/ --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module
在新的服務器安裝Mysql
服務,而後導入sql文件便可:sql
mysqldump -u$db_user -p$db_password $db_name | gzip > /home/firbackup/halodb.sql.gz
對於資源數據,主要是halo
產生的主題以及上傳的文章的圖片等等。就直接採用壓縮打包,而後發送到新服務器再解壓便可。數據庫
tar czvf /home/firbackup/halo.tar.gz /root/.halo
#若是在同一個內網,記得使用內網ip,速度會更快哦 scp halo.tar.gz root@ip.ip.ip.ip:/root/
而後再解壓到/root/.halo
文件夾便可vim
配置域名解析和相應的安全策略以及安裝JDK
以後,你就能夠從新啓動halo
服務就好,到這裏站點遷移工做就完成了。安全
平常備份也就是應用的配置文件以及應用產生的必要數據的備份。我這邊的方案是定時打包壓縮以後發送到郵箱中。下面給出具體腳本:springboot
mailx
yum -y install mailx
vim /etc/mail.rc #添加以下配置 set ssl-verify=ignore set nss-config-dir=/root/.certs/ #使用命令find / -name "cert*.db" 查找位置(根據自身系統而定) #weikeyi 發送email的設置 set from=youremail@163.com #163郵箱帳號 set smtp=smtps://smtp.163.com:465 ###smtp服務商#端口465#smtps協議 set smtp-auth-user=youremail@163.com #與上郵箱相同 set smtp-auth-password=yourpasswd #本身的受權碼#非郵箱密碼 set smtp-auth=login
若是在測試執行腳本,發現發送報錯的話,那就是證書有問題,只須要在上面提到的/root/.certs/
文件夾中放置163郵箱
的證書便可。bash
Resolving host smtp.163.com . . . done. Connecting to 220.181.12.11:465 . . . connected. Error initializing NSS: Unknown error -8015. "/root/dead.letter" 236028/17228757 . . . message not sent. Resolving host smtp.163.com . . . done. Connecting to 220.181.12.16:465 . . . connected. Error initializing NSS: Unknown error -8015. "/root/dead.letter" 6966/507305 . . . message not sent. Resolving host smtp.163.com . . . done. Connecting to 220.181.12.11:465 . . . connected. Error initializing NSS: Unknown error -8015. "/root/dead.letter" 324/22426 . . . message not sent. Resolving host smtp.163.com . . . done. Connecting to 220.181.12.14:465 . . . connected. Error initializing NSS: Unknown error -8015. "/root/dead.letter" 48/2440 . . . message not sent. Resolving host smtp.163.com . . . done. Connecting to 220.181.12.17:465 . . . connected. Error initializing NSS: Unknown error -8015. "/root/dead.letter" 342/10021 . . . message not sent.
#!/bin/bash #firbackup 文件和 and database ###################刪除halo備份################# rm -fr /home/firbackup/halo_$(date -d '7 days ago' +%Y%m%d).tar.gz ###################備份halo################# tar czvf /home/firbackup/halo_$(date +%Y%m%d).tar.gz /root/.halo echo 'halo備份的下載地址:http://eelve.com/bp/'halo_$(date +%Y%m%d).tar.gz >> /home/firbackup/info_$(date +%Y%m%d).txt ###################刪除備份數據庫#################### rm -fr /home/firbackup/halodb_$(date -d '7 days ago' +%Y%m%d).sql.gz ###################備份halodb數據庫#################### db_user="root" #輸入你的數據庫用戶名 db_password="root" #輸入你的數據庫密碼 db_name="halodb" #輸入你要備份的數據庫名 mysqldump -u$db_user -p$db_password $db_name | gzip > /home/firbackup/halodb_$(date +%Y%m%d).sql.gz echo 'halo數據庫備份的下載地址:http://eelve.com/bp/'halodb_$(date +%Y%m%d).sql.gz >> /home/firbackup/info_$(date +%Y%m%d).txt ###################準備開始發郵件############### cd /home/firbackup/ ###################郵件發halo數據庫備份############### mailx -v -s "請注意查收"$(date +%Y%m%d)"halo數據庫的相關備份" -a halodb_$(date +%Y%m%d).sql.gz i@eelve.com<halodb_$(date +%Y%m%d).sql.gz
[root@fir /home]#crontab -e ##天天定時01:00:00 執行腳本 /home/firbackup.sh 0 1 * * * sh /home/firbackup.sh ##天天凌晨2點重啓springboot應用 0 2 * * * sh /home/auto_restart_springboots.sh
到這裏你只須要去郵箱中下載備份的數據就行了。另外郵箱發送附件是有大小限制的,每一個郵箱的具體狀況不一。另外對於文章中的圖片數據能夠上傳到又拍雲
等雲存儲中便可。最後一句話道路千萬條,數據備份第一條
。服務器
本文由博客一文多發平臺 OpenWrite 發佈!