背景:
現有的螞蟻筆記部署在機器xx.x.xxx.135上,之後這臺機器不使用了,需要將螞蟻筆記以及相關數據都遷移到另一臺機器xx.x.xxx.55上
思路:
- 重新部署搭建新的leanote
- 從原機器上備份全部的數據,並在新機器上恢復數據
步驟:
1.安裝數據庫MongoDB
螞蟻筆記使用的數據庫就是MongoDB
(1)添加yum源
vi /etc/yum.repos.d/mongodb-org-4.0.repo
添加以下內容:
-
[mongodb-org-4.0]
-
name = MongoDB Repository
-
baseurl = https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
-
gpgcheck = 1
-
enabled = 1
-
gpgkey = https://www.mongodb.org/static/pgp/server-4.0.asc
退出保存
(2)使用yum安裝相應版本MongoDB
yum install -y mongodb-org-4.0.9 mongodb-org-server-4.0.9 mongodb-org-shell-4.0.9 mongodb-org-mongos-4.0.9 mongodb-org-tools-4.0.9
2.下載螞蟻筆記
從螞蟻筆記官網下載相應的壓縮包
leanote-linux-amd64-v2.6.1.bin.tar.gz
創建目錄developer存放壓縮包以及相應數據
-
cd /
-
#創建一個developer目錄用於存放壓縮包和數據,當然你也可以選擇其他的目錄結構
-
mkdir developer
-
cd developer
-
# 上傳安裝包至該目錄下並創建等會需要使用的目錄,mongodbdata用於存放數據庫,log用於存放日誌
-
mkdir mongodbdata
-
mkdir log
-
#解壓該壓縮包
-
tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz
啓動MongoDB數據庫,並導入螞蟻筆記初始化數據,螞蟻筆記初始化數據存放在/developer/leanote/mongodb_backup/leanote_install_data
-
#後臺運行,以守護進程的方式運行mongodb數據庫,需要--fork #需要設置日誌路徑和自定義數據庫路徑--logpath和--dbpath#--fork has to be used with --logpath or --syslog
-
-
mongod --fork --logpath /developer/log/mongodb.log --dbpath /developer/mongodbdata
-
-
#Leanote 初始數據存儲在${PATH_TO_LEANOTE}/mongodb_backup/leanote_install_data
-
# 初始化才運行此行,再次重啓時無需運行該行命令
-
-
mongorestore -h localhost -d leanote --dir /developer/leanote/mongodb_backup/leanote_install_data/
3.進入MongoDB數據庫,爲leanote數據庫添加root用戶
-
# 進入MongoDB
-
mongo
-
-
# 切換到leanote數據庫
-
use leanote;
-
-
# 添加root用戶
-
db.createUser(
-
{
-
user: "root",
-
pwd: "xxxx",
-
roles: [ { role: "dbOwner", db: "leanote" } ]
-
}
修改螞蟻筆記相應配置表/developer/leanote/conf/app.conf
4.啓動螞蟻筆記
-
#後臺運行腳本,設置日誌路徑爲/developer/log/leanote.log
-
nohup bash /developer/leanote/bin/run.sh >/developer/log/leanote.log 2>&1 &
5.測試與修改管理員admin密碼
在地址欄輸入http://${centos ip}:8098,即可看到以下頁面。
螞蟻筆記默認管理員賬號和密碼爲 admin abc123。爲了安全,應該第一時間修改管理員密碼,具體操作:管理員賬號登錄後,個人中心直接修改密碼
6.數據遷移與恢復
(1)在原機器上備份leanote數據
mongodump --port 27017 --db leanote -o /data/leanoteBackUp/
(2)使用scp命令將備份數據拷貝到新機器上
scp -r leanoteBackUp root@xx.x.xxx.xx:/developer/data
(3)回去新機器上,先關閉leanote服務,直接殺進程
(4)恢復備份數據
mongorestore -h 127.0.0.1:27017 -d leanote /developer/data/leanoteBackUp/leanote -u=root -p=xxxx
(5)重新啓動leanote服務
nohup bash /developer/leanote/bin/run.sh >/developer/log/leanote.log 2>&1 &
(6)到此螞蟻筆記數據遷移恢復完畢,但是在新的機器上登錄螞蟻筆記時,發現有很多圖片沒有顯示,原因在於圖片信息存放在leanote下的files目錄下,所以還需要將files目錄備份。具體操作方法:直接將原機器中的files目錄拷貝到新機器中即可。
7.leanote開機自啓動設置
(1)切換到以下目錄
cd /etc/rc.d/init.d
(2)創建 leanote的一個自啓動腳本
-
-
# chkconfig: 2345 80 90
-
#description:leanote.sh
-
cd /developer/leanote/bin/
-
bash run.sh
(3)設置腳本權限
chmod 754 leanote.sh
(4)服務腳本加入到系統啓動隊列
-
chkconfig --add leanote.sh
-
chkconfig leanote.sh on
8.設置MongoDB開啓啓動
在/etc/rc.local添加以下腳本
-
# add mongodb service
-
mongod --fork --logpath /developer/log/mongodb.log --dbpath /developer/mongodbdata
9.定時備份螞蟻筆記數據,並將備份數據發送到另一臺機器存儲
編寫備份腳本
-
DUMP=/usr/bin/mongodump # mongodump備份文件執行路徑
-
OUT_DIR=/data/backupLeanoteMongodb # 臨時備份目錄
-
TAR_DIR=/data/backupLeanoteMongodb # 備份存放路徑
-
DATE=`date -d "today" +"%Y-%m-%d-%H-%M-%S"` # 獲取當前系統時間,作爲文件名的一部分
-
DAYS=7
-
TAR_BAK="leanote_mongodb_bak_$DATE.tar.gz" # 最終保存的數據庫備份文件名
-
cd $OUT_DIR
-
rm -rf $OUT_DIR/
-
mkdir -p $OUT_DIR/$DATE
-
mkdir -p $TAR_DIR/
-
$DUMP -d leanote -o $OUT_DIR/$DATE # 備份leanote數據庫
-
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE # 壓縮爲.tar.gz格式
-
#find $TAR_DIR/ -mtime +$DAYS -delete # 刪除7天前的備份文件
-
將定時任務執行腳本寫入/var/spool/cron/root中
30 0-23/12 * * * bash /developer/leanote_bak.sh