伺服器備份

出自均優學習論壇共筆
於 2024年11月25日 (一) 09:37 由 丁志仁討論 | 貢獻 所做的修訂 →‎(二)批次帳號搬移
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳至導覽 跳至搜尋

伺服器規格

機種比較:https://www.synology.com/zh-hk/products/compare/DS218/DS218+/DS218j/DS218play/DS718+

DS216+

  1. 序號:1610NUN321200
  2. CPU:INTEL Celeron N3050 2 核 1.6 GHz
  3. 記憶體:1G
  4. 硬碟:4T

DS218+

  1. 序號:18A1PCN519316
  2. CPU:INTEL Celeron J3355 2 核 2 GHz
  3. 記憶體:6G
  4. 空機:NT9300
  5. 外加記憶體(4GB):NT2190
  6. 硬碟:WD 4T DC HC310,NT 5000
  7. 不斷電:NT1490
購於「福爾數碼」

DS720+

  1. 序號:21C0TKRWS0NCN
  2. CPU:INTEL Celeron J4125 4 核 2 GHz
  3. 記憶體:6G
  4. 外加記憶體(4GB):NT 2468
  5. 空機+外接硬碟購買金額:29599元。
  6. 硬碟:Seagate 4TB企業級硬碟*2,型號:ST4000NM002A,
  7. 外接式硬碟:NT 2288
購於門市經銷:世偉資訊有限公司
電話:02-8226-2323
地址:新北市中和區建八路二號9樓之7
聯絡業務:周奕文(小姐)

DSM6 升級 DSM7

  1. 將 MariaDB5 的內容搬到 MariaDB10
  2. 用套件中心,點擊套件名稱,解除安裝 MariaDB5(和 DMS7 不相容)
  3. 「控制台 / 更新 & 還原」先升到 DSM7.0 再升到最新版本
  4. 用套件中心,更新修復諸套件
  5. 「Web Station / 指令碼語言設定 / PHP / 新增 / 調製出一個合用的 PHP 設定檔」
  6. 「Web Station / 網頁服務入口 / 編輯預設伺服器 / 選用 Apache 和 PHP 的設定檔」
  7. 以 putty 進入 DSM後台 並轉成 OS 的 root:
    • 製作註解掉 synology_password_check 的 my.cnf ,並放到 /volume1/web/my.cnf,如下:
      #synology_password_check = FORCE_PLUS_PERMANENT
      #plugin_load_add = synology_password_check
    • cp /volume1/web/my.cnf /volume1/@appstore/MariaDB10/usr/local/mariadb10/etc/mysql
    • 重新啟動
  8. 以 putty 進入 DSM後台 並轉成 OS 的 root:
    • cd /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin
    • 以「./mysql -u root -p密碼 < 待匯入腳本.sql」更新資料庫
  9. 更新 DB.php ,一連上資料庫就請求「SET SESSION sql_mode=''」

一、Apache 2.4

  1. 設定檔: /volume1/@appstore/Apache2.4/usr/local/etc/apache24/conf/httpd24.conf
  2. 額外設定檔: /usr/local/etc/apache24/conf/extra/httpd-autoindex.conf
/icons 的實體位置在 /volume1/@appstore/Apache2.4/usr/share/icons

DS216+搬往DS218+

wiki

  1. mediawiki1340 / wiki1340Bak
  2. wiki/ wellBeingNg
  3. wiki1340 / wiki1340
  4. wiki1232 / wiki1231
  5. wiki1211 / wikiGrade1
    • $wgServer 去掉 :82
    • $wgUseImageMagick = true;
    • $wgImageMagickConvertCommand = "/usr/bin/convert";
    • 抑制 Cite,Gadgets,ImageMap,InputBox,Poem,SyntaxHighlight_GeSHi 等外掛
    • 加「$wgShowExceptionDetails = true;」以顯示無法執行的細節
  6. WUTD / chinese-learning.info

site

  1. AL
  2. jendo
  3. 2019AL

DS218+搬往DS720+

  1. 在 720+ 取得 root 權限
  2. 前往指令: cd /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin

福留子孫

  1. 清掉 wiki 資料夾: rm -r /volume1/@appdata/MariaDB10/mariadb10/wiki/*
  2. 在 adminer 中刪除 wiki 資料庫
  3. mysql -u root -pday6Wp@6year < /volume1/homes/adminNas/www/wiki.sql
  4. scp -rp adminNas@192.168.4.2:/volume1/web/wellBeingNg /volume1/web => 回答 adminNas 在 192.168.4.2 中的密碼
  5. 去看 /volume1/web/wellBeingNg/LocalSettings.php 看用什麼帳號
  6. 去建立這個帳號並對 wiki 資料庫有權限
  7. 修改文件根目錄下的 index.php ,讓域名導向 wiki
  8. chown -R mysql.mysql wiki

振鐸維基

  1. rm -r /volume1/@appdata/MariaDB10/mariadb10/wiki1232/*
  2. 在 adminer 中刪除 wiki1232 資料庫
  3. mysql -u root -pday6Wp@6year < /volume1/homes/adminNas/www/wiki1232.sql
  4. scp -rp adminNas@192.168.4.2:/volume1/web/wiki1231 /volume1/web => 回答 adminNas 在 192.168.4.2 中的密碼
  5. 去看 /volume1/web/wellBeingNg/LocalSettings.php 看用什麼帳號
  6. 讓這個帳號並對 wiki1232 資料庫有權限
  7. chown -R mysql.mysql wiki1232

alWiki

  1. rm -r /volume1/@appdata/MariaDB10/mariadb10/alWiki/*
  2. rmdir /volume1/@appdata/MariaDB10/mariadb10/alWiki
  3. mysql -u root -pday6Wp@6year < /volume1/homes/adminNas/www/alWiki.sql
  4. scp -rp adminNas@192.168.4.2:/volume1/web/alWiki /volume1/web

nlWiki

  1. mysql -u root -pday6Wp@6year nlWiki< /volume1/homes/adminNas/www/nlWiki.sql
  2. scp -rp adminNas@192.168.4.2:/volume1/web/uploadFiles/不錯學群 /volume1/web/uploadFiles
  3. scp -rp adminNas@192.168.4.2:/volume1/web/nlWiki /volume1/web
  4. 看 LocalSettings.php 看用什麼帳號,讓這個帳號並對 wiki1232 資料庫有權限
  5. chown -R mysql.mysql /volume1/@appdata/MariaDB10/mariadb10/nlWiki

六年制學程國一

  1. mysql -u root -pday6Wp@6year < /volume1/homes/adminNas/www/wiki1211.sql
  2. scp -rp adminNas@192.168.4.2:/volume1/web/wikiGrade1 /volume1/web => 回答 adminNas 在 192.168.4.2 中的密碼
  3. 去看 /volume1/web/wellBeingNg/LocalSettings.php 看用什麼帳號
  4. 讓這個帳號並對 wiki1211 資料庫有權限
  5. chown -R mysql.mysql /volume1/@appdata/MariaDB10/mariadb10/wiki1211

跨校選修官網:

  1. mysql -u root -pday6Wp@6year < /volume1/homes/adminNas/www/wordpressblog.sql
  2. 加派 wordpress 權限給 wordpressblog
  3. 搬 AL

內容頁:

  1. mysql -u root -pday6Wp@6year < /volume1/homes/adminNas/www/webContent.sql
  2. chown -R mysql.mysql /volume1/@appdata/MariaDB10/mariadb10/webContent

其他諸 site

  1. 2019AL
  2. ALPS
  3. jendo
  4. ggp
  5. EMEP
  6. study
    • wikiStudy
  7. fo2s Friends on 2 sides
  8. guide 待定向青少年適性學習
  9. HL 不錯學群花蓮行動學習
  10. icons 給上傳檔案櫃使用


----------待修----------

http://jendo.org/study/wikiStudy/wikiTable.php?wiki1=wiki1211&wiki2=wiki1232

諸帳號家目錄

(一)單筆帳號搬移

  1. DSM / 控制台 / 使用者 & 群組 / 進階設定 / 密碼設定 / 啟用密碼強度限用規則 / 去掉「包含混合大小寫」
    • 帳密 參考 六年制學程 學生資料表
    • 前天芸伍搬的丁禾~邱申晴等六人須改回原密碼
  2. DSM / 控制台 / 使用者 & 群組 / 進階設定 / 家目錄 / 啟用家目錄服務
  3. 用 putty 進 DS720
    • scp -rp adminNas@192.168.4.2:/volume1/homes/○○○ /volume1/homes => 回答 adminNas 在 192.168.4.2 中的密碼
  4. 每位使用者的家目錄中,owner 須改成該使用者
    • chown -R 帳號.群組 路徑

(二)批次帳號搬移

  1. 以「ll /volume1/homes/」去查出 DS218+ 上所有帳號
  2. 以「du -s /volume1/homes/帳號/www >> homes1.txt」去查出指出非空的帳號
  3. 將非空帳號建成表 218userTo720
  4. 匯入帳號 csv 的欄位順序為:帳號,密碼,描述,email,群組名,空間配額(佔三欄,均可空值)

select concat('"',name,'",',psd,',六年制學程學生,','"',email,'"',',users',',,,') from 218userTo720 a left join 6yearPerson b using(name) where a.already=0

select concat('"',name,'",',psd,',不錯學群學生,','"',email,'"',',users',',,,') from 218userTo720 a left join nlPerson b using(name) where a.already=0

硬碟損壞之處理

損壞徵兆

(一)硬碟損壞

系統發出訊息「因異常斷電或是儲存集區重組,儲存集區 1 已自動執行 Data Scrubbing(資料洗刷),以確保資料的一致性。若欲取消,請前往「DSM / 儲存空間管理員 / 儲存集區 / Data Scrubbing」。

然後因為伺服器反覆開機不成功。所以就將其關機。

過程中伺服器可能會不斷發出「嗶」聲,可先到「DSM/主選單/控制台/系統/硬體 & 電源/一般/嗶聲控制/停止嗶聲」,先行抑制。

(二)頻繁寫入硬碟

  1. 前往「DSM / 資源監控」,查看到底什麼原因在佔用資源。
  2. 前往 putty 取得 root 權限 > 使用 top 指令,實時顯示進程狀態,看有多少進程處於 Running 狀態,並看CPU、記憶體,及硬碟仿記憶體的用量。

取得新硬碟

  1. 到 WD 服務中心在光華商場六樓二室,星期日休息,平日上午11點開門。電話:02-33933238,位置
  2. 要帶壞的硬碟去,服務人員檢查外觀,沒有不當使用,且在保固期限內,當場會換一顆新的給客戶。

取得 Synology Assistant

  1. 到「群暉官網/技術支援中心/下載中心」,選擇產品類別「NAS相關」,再選產品「DS216+」,出現下載清單導航列,選左邊第二個「桌面工具」,其下第一個項目就是「Synology Assistant」。
  2. 下載回來後須安裝。
  3. 說明文件

新硬碟與舊硬碟重新同步

硬體更換:

  • 情況:第一槽硬碟壞掉
  • 解決:
    1. 將第一槽壞掉硬碟取出,裝進新硬碟
    2. 開啟軟體連線伺服器,等待約莫10分鐘,進行軟體連線。
      如依然沒反應,可以將第二槽原本好的硬碟換至第一槽,將新硬碟放置第二槽,等待約莫10分鐘,進行軟體連線。

軟體連線: DSM → 主選單 → 儲存空間管理 → 儲存集區 → 動作 → 修復

具體會對 DS216 進行

  1. 完成系統儲存空間 (Swap) 的一致性檢查
  2. 完成系統儲存空間 (Root) 的一致性檢查
  3. 進行儲存集區 1 的一致性檢查,並成功修復「存儲池1」的「硬碟 1」。此部分須耗時 32 小時以上。

資料備份

資料庫備份

找出 mysqldump

find / -name mysqldump

/volume1/@appstore/MariaDB/usr/bin/mysqldump
/volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/mysqldump
/usr/local/mariadb10/bin/mysqldump
/usr/bin/mysqldump

cd /usr/bin

執行備份

-p後面直接接密碼,不必有空白。以下指令密碼省略。有 --databases 參數,會增加刪除舊資料庫,建立新資料庫的指令。

cd /usr/bin
# mysqldump -u root -h 127.0.0.1 -p jendo > /volume1/web/jendo.sql
# mysqldump -u root -h 127.0.0.1 -p wiki1232 > /volume1/web/wiki1232.sql
# mysqldump -u root -h 127.0.0.1 -p wiki1211 > /volume1/web/wiki1211.sql
# mysqldump -u root -h 127.0.0.1 -p --databases wiki > /volume1/web/wiki.sql
# mysqldump -u root -h 127.0.0.1 -p --databases wordpressblog > /volume1/web/wordpressblog.sql
# mysqldump -u root -h 127.0.0.1 -p --databases webContent > /volume1/web/webContent.sql
# mysqldump -u root -h 127.0.0.1 -p --databases 助理們 > /volume1/web/助理們.sql
# mysqldump -u root -h 127.0.0.1 -p --databases funMake napcu wordpress > /volume1/web/other.sql

再備 mysql10 的資料庫,要指定執行哪一個路徑下的 mysqldump :

cd /usr/local/mariadb10/bin/
# ./mysqldump -u root -h localhost -p --databases WUTD > /volume1/web/WUTD.sql
# ./mysqldump -u root -h localhost -p --databases CAS > /volume1/web/CAS.sql
# ./mysqldump -u root -h localhost -p --databases mediawiki > /volume1/web/mediawiki.sql

檔案備份

homes備份

備份前

  1. 進「DSM/控制台/檔案分享/共用資料夾/動作/清理所有資源回收筒」
  2. 以 root 進到 /volume1/homes
#rm -f ./*/sessPath/sess_*
#rm -r ./*/#recycle

將外接式硬碟接上 DS216 成為「/volumeUSB1/usbshare」,然後:

cd /volume1
cp -a homes /volumeUSB1/usbshare
cp -a web /volumeUSB1/usbshare

如果複製工作中途中斷,可以「cp -a -n web /volumeUSB1/usbshare」來接續複製工作

大小(2019.9):

  • homes 為 149G
  • web 為 67G

參考資料

  1. Mysqldump 備份&還原資料庫 – 指令範例
  2. [程式[mysql]-使用mysql內建的mysqldump指令,備份 使用mysql內建的mysqldump指令備份]
  3. 如何修復硬盤,以及如何避免硬盤損壞
  4. 備份與還原的圖示放在「/httpdocs/years/uploads/images/修復NAS」中

兩顆硬碟同時損壞

檢測與維修資訊

  1. 未過保維修:捷元,台北市內湖區瑞光路66巷36號,02-66050550,DS218送修單號:QA21101981,10.26 轉送原廠,10.27 原廠才會收到。
  2. 過保維修據點
    • 虹谷資訊,台北市重慶北路一段1號5樓,電話:02-25594858。
  3. 可先進行空機開機測試;兩個硬碟分別用單一硬碟開機測試,硬碟可以置於原先的插槽,不必換到第一槽。
  4. Synology Assistant ,先進設定,打開「記憶體測試」,然後對 NAS 進行記憶體測試,每輪要一小時以上。應進行兩輪到三輪。
  5. 藉以判斷是 NAS 的問題,還是某一顆硬碟的問題,或是兩顆硬碟一起有問題。

用兩顆新硬碟重建 NAS

  1. 參考本頁「硬碟損壞之處理」段落,取得兩顆全新之硬碟,並裝入 NAS 中;取得 Synology Assistant ,並讓安裝之客戶端電腦與 NAS 以網路線相連。
  2. 下載最新版本之 DSM (.pat),並用 Synology Assistant 安裝。
  3. 用 Synology Assistant 查得 NAS 之區網 ip ,調整客戶端電腦的 ipv4 使之與 NAS 同網段。然後用「ip:5000」登進去。
  4. 中間如遇 admin 密碼不符,須以迴紋針或牙線棒按 reset 鍵四秒以上還原,詳見官方文件
  5. 「主選單/儲存空間管理員/儲存集區/新增」新增一個 RAID 1,進行同位元資料檢查,4TB(可用 3.63TB),耗時 8.5 小時。
    此時無任何共用資料夾
  6. 「主選單/儲存空間管理員/儲存空間/新增」新增「儲存空間 1」,選用 Btrfs(非ext4)。
  7. 將 NAS 移往區網,使其能直接連上網際網路。
    • 「控制台/連線能力/網路/網路介面/選擇區域網路中的一組網卡/編輯」,群暉 NAS 某些機型機型支援多網卡,以實現「頻寬聚合」或「高可用備援」,而網卡的設定在此(含閘道器)。
    • 「控制台/連線能力/網路/一般/預設閘道器」是無法編輯的。
  8. 「控制台/檔案分享/檔案服務」,SMB,AFP (Apple Filing Protocol,允許檔案或資料夾名稱以空白或半形句號結尾,但是微軟的命名規則不允許如此)預設打開,手動開啟 FTP,SFTP,進階設定中不啟動「檔案快速複制」、啟動「windows 透過區網進行 SMB 存取」。
  9. 「控制台/檔案分享/共用資料夾/選用某一個資料夾,如 web/編輯/對權限進階權限均須對本地使用者系統內部使用者帳號進行適當設定,才能被正確的帳號讀寫」,
  10. 「控制台/應用程式/終端機」,啟動「SSH」。
  11. 「控制台/系統/硬體 & 電源/一般/電源自動回復」,啟動「電力固障排除後自動重開機」。
  12. 「控制台/系統/硬體 & 電源/一般/硬碟休眠」,由於目前DS216+硬碟一休眠,會需要遠端重開機,否則很難再啟動(DS110+不會),所以設定「無」。
  13. 「DSM桌面/套件中心」發現僅預設安裝「File Station」、「Oauth Service」,加裝 USB Copy,Universal Search,繼續裝:
    1. 文件檢視器→產生共用資料夾 docker ,可以看各種 office 文件
    2. 文字編輯器
    3. 日誌中心
    4. 儲存空間分析器
    5. Antivirus Essential
    6. Web Station→產生共用資料夾 web ,
    7. WebDAV Server
    8. Apache HTTP server 2.2 ,
    9. Apache HTTP server 2.4
    10. MariaDB 5,連接埠 3306
    11. MariaDB 10,連接埠 3307
    12. PHP 5.6
    13. PHP 7.3
    14. phpMyAdmin
  14. 此時 /volume1/homes 下只一個 admin, /volume1/web 下只有 index.html 和 web_images 資料夾(owner 是 http)。改 index.html 為 index-intial.html ,並上傳 adminer-4.7.3-mysql.php 。
  15. 「控制台/檔案分享/使用者帳號/進階設定」,啟用家目錄服務及其資源回收筒→產生共用資料夾 homes 。
    • 請至「控制台/使用者使用者群組 → 選取群組(users) /權限/web」勾選允許「唯讀」。此時才能顯示使用者網站。
    • 弄清楚 DS216 上項設定選自訂,要如何自訂?
  16. 「控制台/檔案分享/共用資料夾/選擇要處理的資料夾/編輯/一般/核取啟用資源回收筒」,啟用資源回收筒。
  17. 「Web Station/一般設定/」:
    • 將 HTTP 伺服器由 Nginx 換成 Apache 2.2 ,才能使用「xxxx.php/。。。。」,不然以上述的網址會解析為找不到網頁。mediawiki 才能正常使用。
    • 啟動個人網站
    • 選用 php 7.4 的預設檔,其載入的擴展如下:
      1. bcmath:任意精度數學運算, svgdraw.php 會用到。
      2. exif:圖照的描述資料。
      3. ftp:對檔案伺服器傳達 FTP 協下。
      4. gd:繪圖函式庫。
      5. iconv:字串的字集轉換。
      6. intl:國際化擴展(進一步被稱為Intl)是ICU庫的一個包裝,使PHP程序員能夠執行各種語言環境感知操作,包括但不限於格式化,音譯,編碼轉換,日曆操作, UCA一致整理,文本定位邊界和使用區域設置標識符,時區和字形…。它傾向於密切關注ICU API,因此擁有使用 C / C++ 或 Java 的ICU經驗的人員可以輕鬆使用PHP API。此外,這樣ICU文件將有助於理解各種ICU功能。。
      7. mysqli:mysql系統函數的增強版,更穩定、高效、安全,與mysql_query()對應的有mysqli_query(),屬於物件導向,用物件的方式操作 mysql 數據庫。mysqli是持續連接函數,多次運行mysqli將使用同一個連接進程,從而減少了服務器的負荷。
      8. openssl:對稱/非對稱加解密,以及PBKDF2、 PKCS7、 PKCS12、 X509和其他加密操作。
      9. pdo_mysql:實現了PHP資料庫物件(PDO)接口。以實現從PHP到MySQL 3.x,4.x~7.x數據庫的訪問。
      10. posix:包含IEEE 1003.1(POSIX.1)標準文檔中定義的那些功能的接口,這些接口不能通過其他方式訪問。
      11. sockets:實現了 socket 通訊功能的底層接口,它可以和客戶端一樣當做一個 socket 服務器。
      12. ssh2:ssh2協定。
      13. xsl:擴展樣式表語言。。
      14. zip:zip解壓縮。
  18. ip 可以用域名或「http://QuickConnect.to/『QuickConnect ID』」取代
    QuickConnect ID 在「控制台 / 外部存取 / QuickConnect」中設定。
    DDNS 在「控制台 / 外部存取 / DDNS」中設定,名稱可以不是 QuickConnect ID。
  19. 安裝 wordpress ,然後透過瀏覽器去 install ,會裝到 MariaDB 10 。
  20. 安裝 mediawiki ,但不透過瀏覽器去 install ,讓 MariaDB 10 中只有空的 mediawiki 資料庫,內無任何資料表。
  21. 「cp -a /usbshare1/DS216_2/2019.9/web /volume1」將備好的 web 放到新碟中耗時 4.5 小時。
  22. 還原資料表
    • MariaDB 5 的還原程式是「/volume1/@appstore/MariaDB/usr/bin/mysql」在任何路徑下叫用代稱「mysql」即可。
    • MariaDB 10 的還原程式是「/volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/mysql」軟連結到「/usr/local/mariadb10/bin/mysql」,必須指定路徑才可叫用。詳細示例如下:
      1. 以 putty 進入 DSM 並轉成 OS 的 root
      2. cd /usr/local/mariadb10/bin/ 進入 MariaDB10 的程式資料夾
      3. 以「./mysql -u root -p密碼 < 待匯入腳本.sql」,注意: mariadb10 若不是預設的 mysql 須明確指定其路徑。
  23. 重建各資料庫使用者及其對各資料夾的權限:
    • 各 liteSite 帳號須對 webContent 資料夾有權限。
    • wiki 帳號須對 jendo 有權限,因為六年制學程月考復習頁會去 jendo 中抓題庫資料表。
  24. 重建各 wiki :
    • 無法安裝 wiki 1.32 版,因為其需要使用 PHP7 ,還沒找到使用的方法。資料夾 wiki132 。
    • 在 Nginx 無法啟動 WUTD ,所以先改名 WUTD 資料庫,再安裝一個全新 1.30 版,將其資料夾設為 WUTD ,資料庫 WUTD ,再將新生的資料庫更名為 WUTD-new ,將原來的資料庫改名回 WUTD 。換成 Apache 2.2 之後,資料夾 WUTD-oldold 舊硬碟的備份變成可啟動,資料夾 WUTD-old 新裝的 mediawiki 更換資料庫(可啟動);而在 Nginx 之下,WUTD-oldold 和 WUTD-old 均無法啟動。
    • 其他諸 wiki 在 Apache 2.2 之下,均可順利啟動。
    • mediawiki- 資料夾為待安裝的 1.30 版;mediawiki 為剛裝好的 1.30 版,資料庫用 WUTD-new 資料使用 UTF 編碼;資料庫 mediawiki 為 DSM 預裝的 1.30 版,資料使用二進位編碼。
  25. 更換 admin 帳號:建新管理員帳號,調整群組,使之具有 admin 權限;登出後,重新以新管理員帳號登入,然後停用 admin 。
  26. 載入帳號與復原個人資料夾
    • 造帳號清單,每列帳號格式為「帳號 密碼 描述 email 空間配額(MB)」各欄以 TAB 間隔開。「控制台/檔案分享/使用者帳號/新增/匯入清單」。
    • 進入到「/volume1/homes」以 root 身份執行以下命令,複制個人資料、賦予所有者、刪除之前的備份資料:
    cp -a -n /volume1/web/homesBak/帳號 .
    chown -R 帳號 帳號
    rm -d -R /volume1/web/homesBak/帳號
    共複製了 admin 、海星學員、學程學生、全民科學平台、王秀雲、王秋梅等。
  27. 將 NAS 放回原有環境:檢查中華電信分配之 ip 有無異動,是否須要改動 DNS 設定。

更新 DSM 之後

更新 DSM 之後有可能 apache 被預設關閉,此時呼叫網頁會得到 HTTP 502 error ,重開 apache 如下:

  1. 去 web station ,看

新的 apache 設定檔位置

/volume1/@appstore/Apache2.2/usr/local/etc/apache22/conf/extra

伺服器對上路由器的 NAT 保護

Protocol伺服器IP位址Start PortEnd PortInternal ServerInternal PortMapping NameNAT
Loopback
TCP192.168.3.1 80 80 192.168.3.11 80 ~ 80 WebServerHTTP 開啟
TCP192.168.3.1 21 25 192.168.3.11 21 ~ 25 FTP2SMTP 開啟
TCP192.168.3.150005003192.168.3.115000 ~ 5003DSM 開啟
TCP192.168.3.133063306192.168.3.113306 ~ 3306MySQL 開啟
TCP192.168.3.190019001192.168.3.119001 ~ 9001etherpad 開啟
  1. port 21:FTP
  2. port 22:SSH
  3. port 23:telnet
  4. port 24:預留給個人用郵件系統,可參考防火牆擋的 port 是哪些用途?
  5. port 25:SMTP,用於發送郵件

可參考TCP/UDP端口列表

○、SRM 通用設定

  1. 作業系統 Synology Router Manager(SRM)
  2. 初次設定預設 ip :router.synology.com 或 192.168.1.1

開啟遠端存取:

  1. 「技術支援中心 / 支援服務 / 核取啟動遠端存取 / 按一下套用
  2. 透過 QuickConnect & DDNS :如下一段的第 12 點
    • 註冊取得群暉帳密:帳號是 email ,密碼自訂
    • 「網路中心 / 網際網路 / QuickConnect & DDNS / DDNS / 新增這一部 SRM 的代表名,如:jendosrm」
    • 「網路中心 / 網際網路 / QuickConnect & DDNS / 勾選 啟動 QuickConnect
    • 「網路中心 / 網際網路 / QuickConnect & DDNS / QuickConnect ID 填入 SRM 的代表名」
    • 「網路中心 / 網際網路 / QuickConnect & DDNS / QuickConnect ID / 進階設定 / 核取允許遠端使用的服務(包含 SRM)」
      完成設定後即可用 http://代表名.synology.me:8000 來存取 SRM

連接外接硬碟裝置

-----備妥外接式硬碟-----
  1. 將外接硬碟,從 USB 埠連接到路由器本身
  2. 從網頁瀏覽器登入,進入 SRM
  3. 從「控制台 / 儲存空間 / 儲存空間」,並確認外接硬碟能被路由器偵測到、容量大小、檔案系統
    • 無法存取時,解決步驟如下:
    1. 背景知識:較新推出的 Seagate 硬碟,其預設的檔案系統為「exFAT」,原因是這個系統能相容 Windows 和 Mac 的檔案。
    2. 但 exFAT 無法在 RT1900 上存取檔案,因此需要更換檔案系統
    3. 用「控制台 / 儲存空間 / 儲存空間 / 格式化」硬碟,檔案系統選用 ext4
    -----啟用檔案服務-----
  4. 「控制台 / 檔案服務 / Win/Mac」啟用 SMB2 給 Windows 檔案總管與 Mac Finder 使用,啟用 Mac 檔案服務給 Mac Finder 使用
  5. 「控制台 / 檔案服務 / FTP」啟用 FTP未加密、FTPS、FXP、強制UTF-8編碼、SFTP、指定相應的埠號
  6. 「控制台 / 檔案服務 / WebDAV」啟用 http 與 https 之下的 WebDAV 、指定相應的埠號
  7. 「控制台 / 檔案服務 / WebDAV / 進階設定 / 啟用匿名 WebDAV 帳號登入DAVdepthInfinity(DAV可使用長路徑名與長檔名,使深度無限)」啟用匿名登入,讓免驗證即可讀取
  8. 「控制台 / 儲存空間 / 儲存空間 / 進階設定 / 預設權限 / 左上選單由本地使用者調成系統內部使用者帳號 / 將 Anonymous FTP/WebDAV 權限調成可讀寫唯讀」啟用匿名登入,讓免驗證即可讀取
    -----設定連接埠轉送-----
  9. 「網路中心 / 連接埠轉送 / 連接埠轉送」,由於 RT1900ac 與其對下伺服器共用外埠,所以兩者的相同服務必須錯開外埠設定:
    • 外埠 21,22 已被對下的伺服器佔用,所以必須指定未使用的外埠給 RT1900ac 的外掛硬碟使用
    • 停用對下伺服器的 WebDAV ,讓出外埠給 RT1900ac 使用,「DSM / WebDAV Server / 設定」關閉 http 與 https 之下的 WebDAV
      -----連接測試-----
  10. FTP 外埠連接測試:主機改為域名,連接埠設為 RT1900ac FTP 連接埠轉送之外埠,測試是否能連上。
  11. SMB2 區網連接測試:Client 以 Wi-Fi 連上 RT1900ac ,使用 RT1900ac 的區網 IP 與 SRM 之有效帳號,測試檔案總管是否可連 RT1900ac 的外接硬碟。
  12. WebDAV 測試:瀏覽器開「https://ip:port/資料夾/檔案」看是否能正常顯示。
    區網內取用檔案範例:
    http://192.168.x.1:5005/public/test/test.png
    http://192.168.x.1:5005/public/test/tmp.html
  13. 和 80 port 以 web 共用資料夾為根資料夾不同,webDAV 是以共用資料夾的上一層資料夾(usbshare1)為網址列的根資料夾。
    -----資料夾權限管理-----
  14. 最底層的路徑「usbshare1」(位置在 /volumeUSB1/usbshare),它之下叫「共用資料夾」(位置在 /volumeUSB1/usbshare/@sharebin/資料夾名稱),「共用資料夾」之下才是普通的資料夾。但在 FTP 中,usbshare1 卻是和其他的共用資料夾平級平行的。
  15. 「控制台 / 儲存空間 / 儲存空間 / 進階設定 / 預設權限 / 系統內部使用者帳號」決定 anonymous 帳號對 usbshare1 的讀寫權限。
  16. 「File Station / usbshare1 / 右鍵 / 內容 / 權限 / 系統內部使用者帳號」決定 anonymous 帳號對 usbshare1 的讀寫權限。
  17. 「File Station / 共用資料夾 / 右鍵 / 內容 / 權限 / 系統內部使用者帳號」決定 anonymous 帳號對 usbshare1 的讀寫權限。
  18. 「File Station / 普通資料夾 / 右鍵 / 內容 / 權限」沒有系統內部使用者帳號之設定權限,只有 Linux 3×3 權限設定。

一、Synology RT1900ac

含三隻可拆天線、立架、網路線、變壓器與快速安裝說明:

右側有USB 3.0與SD卡連接埠,以及儲存裝置退出按鈕:

左側則有WPS按鈕,與實體Wi-Fi開關:

後方的WAN、LAN埠:

三顆處理器上,覆蓋著大面積的散熱鰭片,有助於替晶片散熱:

規格

  1. Broadcom BCM58622雙核心1.0GHz處理器
  2. DDR3 256MB記憶體
  3. 4GB eMMC快閃記憶體
  4. PCIe通道協同兩顆Broadcom BCM43460雙頻IEEE 802.11ac draft 3×3 SOC晶片,處理雙頻Wi-Fi之工作
  5. 同步雙頻2.4G(802.11n)、5G(802.11ac),2.4G可達600Mbps(支援256-QAM)、5G可達1300Mbps之速率。
  6. 網路埠同樣提供Gigabit 1WAN、4LAN
  7. USB 3.0與SD讀卡機的連接埠,接上儲存裝置,就可以變成一台小NAS來使用
  8. 硬體按鈕:
    • 電源
    • 重置
    • USB/SD退出
    • WPS
    • Wi-Fi開關
  9. 同時連接數:
    • 有線裝置至少100台
    • 無線裝置建立連線至少70台
    • 大量傳輸時至少40台
  10. 30坪左右,2.4GHz與5GHz都有-40dBm的表現,辦公室外的電梯門口時,訊號強度則在-60dBm左右

二、Synology RT2600ac

Synology NAS DS720+

規格

  1. 處理器型號:Intel Celeron J4125
  2. CPU數量:1
  3. 處理器架構:64-bit
  4. 系統記憶體:2 GB DDR4 non-ECC
  5. 最大記憶體容量:6 GB (2 GB + 4 GB)
  6. 磁碟槽數量:2
  7. 相容磁碟類型*
    • 3.5" SATA HDD
    • 2.5" SATA HDD
    • 2.5" SATA SSD
    • M.2 2280 NVMe SSD
  8. 檔案服務
    • 檔案格式:SMB/AFP/NFS/FTP/WebDAV
    • 最大同時 SMB/AFP/FTP 連線數:500(若搭在擴充記憶體則為1500)
    • 最大本地使用者帳號數:2,048

請參考:Synology官網

MySQL

  1. 使用者密碼更新:
    update mysql.user set password=password('新密碼') where user='帳號名稱';
    flush privileges;

php擴充模組

模組名稱功能說明DS720+DS218+
php8.0php7.4php7.4
bcmath 支援更加精確的計算。
對於任意精度的數學,PHP提供了支持用字符串表示的任意大小和精度的數字的二進制計算,最多為2147483647-1(或0x7FFFFFFF-1)。
exif 通過使用exif擴充模組,你可以操作圖像元數據。
例如:你可以使用exif相關的函數從數碼相機拍攝的圖片文件中讀取元數據。通常JPEG和TIFF格式的圖像文件都包含元數據。
ftp 擴充模組中的函數實現了通過FTP協議訪問文件服務器的客戶端。
本擴充模組提供了對於FTP服務器完整的訪問及控制功能。如果只是簡單的從FTP服務器讀取或向服務器寫入一個文件,會更加的簡單。
gd PHP並不僅限於創建HTML輸出,它也可以創建和處理包括GIF、PNG、JPEG、WBMP以及XPM在內的多種格式的圖像。
更加方便的是,PHP可以直接將圖像數據流輸出到瀏覽器。要想在PHP中使用圖像處理功能,你需要連帶GD庫一起來編譯PHP。GD庫和PHP可能需要其他的庫,這取決於你要處理的圖像格式。
iconv iconv的作用是在多種國際編碼格式之間進行文字內碼的轉換。作為應用程式的iconv採用命令列介面,允許將某種特定編碼的檔案轉換為另一種編碼。
自PHP5.0.0起,配備了這個具有多種實用功能的擴充模組,來幫助您編寫多語言腳本。支援的內碼包括:Unicode相關編碼,如UTF-8、UTF-16等等各國採用的ANSI編碼,其中包括GB2312、BIG5等中文編碼方式。
intl PHP基於ICU擴充套件intl,使PHP程式能夠執行各種區域設置感知操作,包括但不限於格式化、音譯、編碼轉換、日曆操作、UCA符合排序規則、定位文本邊界並使用區域設置標識符、時區和字素。
例如:PHP基於ICU擴充套件intl快速實現漢字轉拼音及按拼音首字母分組排序的方法,結合例項形式分析了ICU擴充套件intl的實現方法與拼音轉換、排序等相關操作技巧。
mysqli MySQLi全稱MySQLImprovedextension,算是MySQLextension的加強版。
本來PHP只提供MySQLExtension來連接MySQL資料庫,後來在PHP5.0.0引入了mysqli,也在PHP5.3時將MySQL原生啟動器(NativeDriver)包含進PHP,到了PHP5.5棄用mysqlextension,PHP7.0就將mysqlextension移除了,mysqlextension是提供函數API支持程序式開發,而mysqli是有函數API也有提供物件導向的介面支持物件導向程式開發。
openssl OpenSSL庫來對稱/非對稱加解密,以及PBKDF2、PKCS7、PKCS12、X509和其他加密操作。
除此之外還提供了TLS流的實現。
pdo_mysql pdo是數據庫抽象層,需要不同類型數據庫的實現,比如pdo_mysql就實現了pdo抽象的的mysql驅動。
pdo_mysql是PHP用來訪問mysql服務的擴充模組。
posix POSIX表示可移植作業系統接口(PortableOperatingSystemInterface,縮寫為POSIX),POSIX標準定義了作業系統應該為應用程式提供的接口標準,是IEEE為要在各種UNIX作業系統上運行的軟體而定義的一系列API標準的總稱。
sockets Socket擴充模組是基於流行的BSDsockets,實現了和socket通訊功能的底層接口,它可以和客戶端一樣當做一個socket服務器。
ssh2 UNIX下使用SSH連線。
SSH2雖然是一個商業組織生產的軟體,但仍是開放性的軟體。SSH2和OpenSSH理論上符合一樣的協定規格,但是兩個不同的程式。
xsl 是一種用於以可讀格式呈現XML(標準通用標記語言的子集)數據的語言。
zip 是一種用於可以讓你透明地讀寫ZIP壓縮文檔以及它們裡面的文件。

異地 SQL 數據備份

ssh協定(傳輸端)

  1. 為何需要?
    • 因為下方會需要寫出scp命令,scp 命令本身並不提供直接的密碼輸入機制,但它可以使用 SSH 金鑰進行身份驗證,這樣可以在不需要輸入密碼的情況下進行檔案傳輸。
  2. 如何設定
    • 在傳輸端伺服器上生成 SSH 金鑰對:
      1. 在傳輸端伺服器開啟cmd(或是putty),並獲得root權限
      2. 輸入 ssh-keygen -t rsa
        此命令使用 RSA 算法生成 SSH 金鑰對。
      3. 按 Enter 鍵(或輸入路徑):
        系統會提示你輸入要保存金鑰的文件路徑。你可以直接按 Enter 接受默認的路徑(通常是 ~/.ssh/id_rsa)。
      4. 按 Enter 鍵(或輸入密碼):
        系統會要求輸入一個可選的密碼。為了留空密碼,直接按 Enter。
      5. 再次按 Enter 鍵(或輸入剛剛的密碼):
        系統會要求再次確認密碼,但由於你留空了密碼,直接按 Enter。
      6. 生成金鑰:
        系統將開始生成 SSH 金鑰對。這將包括一個私鑰(~/.ssh/id_rsa)和一個公鑰(~/.ssh/id_rsa.pub)。
      7. 生成過程完成後,你將看到一些相關資訊,包括公鑰的指紋等。你現在可以使用這些金鑰進行 SSH 連線
Your identification has been saved in /home/your_username/.ssh/id_rsa.
Your public key has been saved in /home/your_username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx your_username@your_hostname
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
+----[SHA256]-----+
現在,你已經成功生成了 SSH 金鑰對,而密碼部分已經留空。這樣你就可以將公鑰複製到目標伺服器以進行無密碼的 SSH 連線。

ssh協定(目標端)

    • 將公鑰複製到目標伺服器上:
      ssh-copy-id your_username@destination_server_ip
      • 請替換 your_username 和 destination_server_ip 為目標伺服器的實際用戶名稱和 IP 地址。
      • 若本方式出現錯誤,請改用以下方式:
    • 將公鑰手動複製到目標伺服器上
      1. 進入傳輸端伺服器的cmd或putty
      2. 使用 cat 命令顯示本地 SSH 公鑰並複製:
        cat ~/.ssh/id_rsa.pub
      3. 進入目標伺服器的cmd或putty
      4. 在目標伺服器上使用文本編輯器打開 ~/.ssh/authorized_keys 文件:
        vim ~/.ssh/authorized_keys
        • 如果文件不存在,你可以使用以下命令創建:
          mkdir -p ~/.ssh
          touch ~/.ssh/authorized_keys
      5. 將傳輸端公鑰的內容粘貼到 authorized_keys 文件中:
      6. 設定 authorized_keys 文件的權限:
        chmod 600 ~/.ssh/authorized_keys
        chmod 700 ~/.ssh
        • 確保 authorized_keys 文件具有適當的權限。如果 ~/.ssh 目錄的權限不正確,也需要調整:
  • 現在,你的 SSH 公鑰應該已經被添加到遠程伺服器的 authorized_keys 文件中,你可以使用 SSH 進行無密碼登入。

4支每日備份程式

  • 名稱:backup_task.sh
  • 位址:jendo.org:/etc/cron.d/backup_task.sh
  • scp:scp 是 secure copy 的縮寫,是一個用於在不同主機之間安全地傳輸檔案的命令。以下是 scp backup.sql your_username@destination_server_ip:/path/to/destination 命令的詳細解釋:
    • backup.sh 是要傳送的檔案名稱。
    • your_username 是目標伺服器的用戶名稱,你需要替換為實際的用戶名稱。
    • destination_server_ip: 是目標伺服器的 IP 地址,你需要替換為實際的 IP 地址。
    • /path/to/destination 指定了目標伺服器上的目標路徑,這是你想要將備份檔案存放的位置。
#!/bin/bash
scp -r /volume1/@appdata/MariaDB10/mariadb10/wiki adminNas@twees.info:/volume1/Data/backup/
scp -r /volume1/@appdata/MariaDB10/mariadb10/wiki1232 adminNas@twees.info:/volume1/Data/backup/
scp -r /volume1/@appdata/MariaDB10/mariadb10/alWiki adminNas@twees.info:/volume1/Data/backup/
  • 名稱:backup_task.sh
  • 位址:twees.info:/etc/cron.d/backup_task.sh
#!/bin/bash
rm /volume1/@appdata/MariaDB10/mariadb10/wiki/.* /volume1/@appdata/MariaDB10/mariadb10/wiki/*
rmdir /volume1/@appdata/MariaDB10/mariadb10/wiki
cp -rf /volume1/Data/backup/wiki/ /volume1/@appdata/MariaDB10/mariadb10/

rm /volume1/@appdata/MariaDB10/mariadb10/wiki1232/.* /volume1/@appdata/MariaDB10/mariadb10/wiki1232/*
rmdir /volume1/@appdata/MariaDB10/mariadb10/wiki1232
cp -rf /volume1/Data/backup/wiki1232/ /volume1/@appdata/MariaDB10/mariadb10/

rm /volume1/@appdata/MariaDB10/mariadb10/alWiki/.* /volume1/@appdata/MariaDB10/mariadb10/alWiki/*
rmdir /volume1/@appdata/MariaDB10/mariadb10/alWiki
cp -rf /volume1/Data/backup/alWiki/ /volume1/@appdata/MariaDB10/mariadb10/
  • 名稱:crontab
  • 位址:jendo.org:/etc/crontab
  • crontab部分可參考 routine.html cron章節
MAILTO=""
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
#minute hour    mday    month   wday    who     command
0       6       *       *       5       root    /usr/syno/bin/synoschedtask --run id=1
54      3       *       *       1       root    /usr/syno/bin/synoschedtask --run id=4
0       0       31      10      *       root    /usr/syno/bin/synoschedtask --run id=5
0       0       7       *       *       root    /usr/syno/bin/synoschedtask --run id=3
0       0       26      3       *       root    /usr/syno/bin/synoschedtask --run id=2
0       1       *       *       *       root    /etc/cron.d/backup_task.sh --run id=6
  • 名稱:crontab
  • 位址:twees.info:/etc/crontab
MAILTO=""
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
#minute hour    mday    month   wday    who     command
0       3       *       *       *       root    /etc/cron.d/backup_task.sh --run id=4
0       0       11      10      *       root    /usr/syno/bin/synoschedtask --run id=3
25      3       *       *       6       root    /usr/syno/bin/synoschedtask --run id=1
1       3       *       *       2       root    /usr/syno/bin/synoschedtask --run id=2