簡介
Seafile 是一個開源的文件雲存儲平臺,解決文件集中存儲、同步、多平臺訪問的問題,注重安全和性能。
Seafile 通過"資料庫"來分類管理文件,每個資料庫可單獨同步,用戶可加密資料庫, 且密碼不會保存在服務器端,所以即使是服務器管理員也無權訪問你的文件。
Seafile 允許用戶創建"群組",在群組內共享和同步文件,方便了團隊協同工作。
目標
在系統centos7.3版本上安裝seafile-server_6.2.5_x86-
簡介
Seafile 是一個開源的文件雲存儲平臺,解決文件集中存儲、同步、多平臺訪問的問題,注重安全和性能。
Seafile 通過"資料庫"來分類管理文件,每個資料庫可單獨同步,用戶可加密資料庫, 且密碼不會保存在服務器端,所以即使是服務器管理員也無權訪問你的文件。
Seafile 允許用戶創建"群組",在群組內共享和同步文件,方便了團隊協同工作。
目標
在系統centos7.3版本上安裝seafile-server_6.2.5_x86-64,使用mysql作為數據庫。
安裝mysql
配置YUM源
在MySQL官網中下載YUM源rpm安裝包:http://dev.mysql.com/downloads/repo/yum/
下載mysql源安裝包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安裝mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
檢查mysql源是否安裝成功
yum repolist enabled | grep "mysql.*-community.*"
![seafile安裝文檔](http://p2.ttnews.xyz/loading.gif)
看到上圖所示表示安裝成功。
可以修改vim /etc/yum.repos.d/mysql-community.repo源,改變默認安裝的mysql版本。比如要安裝5.6版本,將5.7源的enabled=1改成enabled=0。然後再將5.6源的enabled=0改成enabled=1即可。改完之後的效果如下所示
![seafile安裝文檔](http://p2.ttnews.xyz/loading.gif)
安裝MySQL
yum install mysql-community-server
啟動MySQL服務
systemctl start mysqld
查看MySQL的啟動狀態
systemctl status mysqld
設置MySQL開機啟動
systemctl enable mysqld
systemctl daemon-reload
修改root本地登錄密碼
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword1!';
或者
mysql> set password for 'root'@'localhost'=password('MyNewPassword1!');
注意:mysql5.7默認安裝了密碼安全檢查插件(validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤
部署 Seafile 服務器
部署
假設安裝目錄為 Documents, 在https://www.seafile.com/download/下載你需要的seafile版本到Documents目錄下。我使用的是seafile-server_6.2.5_x86-64.tar.gz
wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.2.5_x86-64.tar.gz
tar -xzf seafile-server_*
mkdir installed
mv seafile-server_* installed
安裝 Seafile 服務器
安裝前的準備工作
安裝 Seafile 服務器之前,請確認已安裝以下軟件
· MariaDB 或者 MySQL 服務器 (MariaDB 是 MySQL 的分支)
· python 2.7 (從 Seafile 5.1 開始,python 版本最低要求為2.7)
· python-setuptools
· python-imaging
· python-mysqldb
· python-ldap
· python-urllib3
· python-memcache (或者 python-memcached)
yum -y install epel-release
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
yum -y install python-imaging MySQL-python python-memcached python-ldap python-urllib3 ffmpeg ffmpeg-devel
pip install pillow moviepy
安裝
cd seafile-server-*
./setup-seafile-mysql.sh #運行安裝腳本並回答預設問題
如果你的系統中沒有安裝上面的某個軟件,那麼 Seafile初始化腳本會提醒你安裝相應的軟件包.
該腳本會依次詢問你一些問題,從而一步步引導你配置 Seafile 的各項參數:
在這裡, 你會被要求選擇一種創建 Seafile 數據庫的方式:
-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
· 如果選擇1, 你需要提供根密碼. 腳本程序會創建數據庫和用戶。
· 如果選擇2, ccnet/seafile/seahub 數據庫應該已經被你(或者其他人)提前創建。
如果安裝正確完成,你會看到下面這樣的輸出 (新版本可能會有所不同)
啟動 Seafile 服務器
啟動 Seafile 服務器和 Seahub 網站
在 seafile-server-6.2.5 目錄下,運行如下命令
· 啟動 Seafile:
./seafile.sh start # 啟動 Seafile 服務
· 啟動 Seahub
./seahub.sh start <port> # 啟動 Seahub 網站 (默認運行在8000端口上)
/<port>
小貼士: 你第一次啟動 seahub 時,seahub.sh 腳本會提示你創建一個 seafile 管理員帳號。
服務啟動後, 打開瀏覽器並輸入以下地址
http://IP:port/
你會被重定向到登陸頁面. 輸入管理員用戶名和密碼即可。
設置開機啟動
首先停止seafile、seahub服務
cd /root/Documents/seafile-server-latest
./seafile.sh stop
./seahub.sh stop
創建seafile.service
vim /etc/systemd/system/seafile.service
# 添加下面的內容,wq保存。
[Unit]
Description=Seafile
After=mysql.service
[Service]
Type=oneshot
ExecStart=/root/Documents/seafile-server-latest/seafile.sh start
ExecStop=/root/Documents/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Ps: /root/Documents/seafile-server-latest為seafile.sh父路徑,根據安裝路徑修改
創建seahub.service
vim /etc/systemd/system/seahub.service
# 添加下面的內容,wq保存。
[Unit]
Description=Seafile hub
After=network.target seafile.service
[Service]
ExecStartPre=/bin/sleep 1
ExecStart=/root/Documents/seafile-server-latest/seahub.sh start 80
ExecStop=/root/Documents/seafile-server-latest/seahub.sh stop
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Ps: 80為啟動seahub的端口,可以自定義,要和防火牆中的保持一直,如果更改端口,不僅需要修改此文件還需要修改防火牆(在防火牆開啟的情況下),否則訪問不到
啟動、開機啟動seafile、seahub
systemctl start seafile
systemctl enable seafile
systemctl start seahub
systemctl enable seahub
加入防火牆
添加
firewall-cmd --zone=public --add-port=8082/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,沒有此參數重啟後失效)
重新載入
firewall-cmd –reload
備份
備份目錄設計
backup目錄下創建如下目錄結構
/backup
---- databases/ 包含數據庫備份
---- data/ 包含 Seafile 數據備份
備份數據庫
假設你的數據庫名分別為 ccnet-db, seafile-db 和 seahub-db。mysqldump 會自動鎖住表,所以在你備份 MySql 數據庫的時候,不需要停掉 Seafile 服務器。通常因為數據庫表非常小,所以執行以下命令備份不會花太長時間。
mysqldump -h [mysqlhost] -u[username] -p[password] --opt ccnet-db > /backup/databases/ccnet-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
mysqldump -h [mysqlhost] -u[username] -p[password] --opt seafile-db > /backup/databases/seafile-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
mysqldump -h [mysqlhost] -u[username] -p[password] --opt seahub-db > /backup/databases/seahub-db.sql.`date +"
備份 Seafile 資料庫數據
假定所有的數據文件都存儲在 /root/Documents 目錄, 備份整個目錄即可。你可以直接拷貝整個目錄到備份目錄,或者你也可以用 rsync 做增量備份。
直接拷貝整個數據目錄,
cp -R /root/Documents /backup/data/install-`date +"%Y-%m-%d-%H-%M-%S"`
這樣每次都會產生一個新的備份文件夾,完成後,可以刪掉舊的備份。
如果你有很多數據,拷貝整個數據目錄會花很多時間,這時你可以用rsync做增量備份。
rsync -az /root/Documents /backup/data/
這個命令數據備份到 /backup/data/ 下。
恢復
恢復Seafile 資料庫數據
如果你當前的 Seafile 服務器已經壞掉,將使用另一臺機器來提供服務,需要恢復數據:
1. 假設在新機器中,Seafile 也被部署在了 /root/Documents 目錄中,拷貝 /backup /data/install 到新機器中即可。
2. 假設在新機器中,Seafile 被部署在了/apps/install 目錄中,拷貝 /backup /data/install 到新機器中。修改/apps/install/ccnet/seafile.ini文件內容,內容為/apps/install/seafile-data目錄所在路徑。
3. 恢復數據庫。
恢復數據庫
現在你已經擁有了數據庫備份文件,你可以按如下步驟來進行恢復。
MySQL
mysql -u[username] -p[password] ccnet-db < ccnet-db.sql.2018-10-22-15-41-05
mysql -u[username] -p[password] seafile-db < seafile-db.sql.2018-10-22-15-41-05
mysql -u[username] -p[password] seahub-db < seahub-db.sql.2018-10-22-15-41-05
參考:
<<seafile>>/<seafile>
閱讀更多 我的名字o 的文章