站點遷移指北

前面的話】因爲服務器快到期了,就從新另購了一臺服務器。這邊就來記錄一下遷移的過程和平常數據備份等等。mysql

壹、站點概覽

個人站點使用halo搭建的,主要涉及到的中間件有:NginxMysql等;平常運行產生的數據有站點運行數據和資源數據,因此站點遷移也會從這些方面着手。nginx

貳、中間件遷移

2.一、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

2.二、Mysql

在新的服務器安裝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 發佈!
相關文章
相關標籤/搜索