Archive for the ‘ Server ’ Category

CentOS 安裝 xrdp (yum)

安裝流程

1. xrdp 是放在 EPEL 套件庫,所以我們要先安裝 EPEL。依據不同版本的 CentOS 請參考: CentOS 如何加入第三方 Yum 套件庫: EPEL
2. 安裝 xrdp 及 tigervnc server:

yum install xrdp tigervnc-server

3. 啟動 xrdp

service xrdp start

4. 加到開機自動執行

chkconfig xrdp on

PS. 只要啟動 xrdp 即可,tigervnc server 裝好後就不用理它了。

設定與登入

設定與登入的方式與之前的教學一樣,請自行參考。

參考網頁

  1. 安裝 xrdp v0.6.0 (原始檔)
  2. Linux 上的遠端桌面中繼程式: xrdp (v0.4.2)
  3. CentOS 如何加入第三方 Yum 套件庫: EPEL

Linode VPS 遷移機房 (Add/Resize/Clone) 的步驟

我的某個 Linode VPS 不明所以被 GFW 給封鎖了!!無助的我,在不更換 VPS 的前題下,可以嘗試變更 IP 或是遷移機房。

早期 Linode 要做這兩件事都必須提交 Ticket,透過客服人員來處理,但現在的客服人員似乎已經不再幫忙變更 IP 了!!

不過沒關係,只要學會使用 Linode 的「Clone」功能,我們也可以自己來變更 IP 或遷移機房。

Linode 的費用

要執行「Clone」的功能之前,我們要先來了解一下 Linode 的相關費用:

  1. 早期 Linode 帳號的付款方式是採用: 包月 + 預付,一次買一年有 10% 折扣、買兩年有 15% 折扣。如果沒有用滿一個月就刪除 VPS 的話,那剩下的時間仍會歸還等比例的金額至你的帳戶。如果將方案降級也會歸還差額。(2019/04/01 起,已強制轉為計時 + 月結)
  2. 2014 年之後新用戶的付款方式是採用: 計時 + 月結
  3. 最小的計費單位是「小時」,超過一秒鐘都算你一個小時。
  4. 只要一「新增」VPS 就會開始計費,即便你的 VPS 沒有開機。
  5. 啟用「Backups」功能會增加約 20~25% 費用
  6. 在執行「Clone」的過程中會有兩個 VPS 同時在計費。
  7. 可以將計費方從由「包月」改為「計時」,但沒有將「計時」改為「包月」的功能。

Read more

Centos 6.x 如何停用 IPv6

為什麼要停用 IPv6?

  1. 不熟、抗拒學習
  2. IPv6 也要設 IP 反解 PTR
  3. Gmail 會擋沒有設 IPv6 反解的郵件

Read more

CentOS 如何加入第三方 Yum 套件庫: EPEL

EPEL 的全稱為「Extra Packages for Enterprise Linux」,是由 Fedora 社群打造,為 RHEL 及衍生發行版如 CentOS、Scientific Linux、Rocky Linux、Oracle Linux...等提供高品質套件庫的專案。裝了 EPEL 之後,等於添加了一個資源豐富的第三方套件庫。

Read more

解決 Windows 10 自動開機的問題

查看系統的電源設定

1. 查詢最近一次電腦被喚醒的原因,於 cmd 命令提示字元執行:

powercfg /lastwake

喚醒記錄計數 - 1
 喚醒記錄 [0]
 喚醒來源計數 - 1
 喚醒來源 [0]
  類型: 喚醒計時器
  擁有者: [SERVICE] \Device\HarddiskVolume2\Windows\System32\svchost.exe (SystemEventsBroker)
  擁有者提供的原因: Windows 將執行 'NT TASK\2BrightSparks\SyncBackFree\ASUS-User\DailyBackup' 排定要求喚醒電腦的工作。

2. 查詢系統中已設定用來喚醒電腦的程序,於 cmd 命令提示字元執行:

powercfg /waketimers

沒有的話會顯示:

系統沒有使用中的喚醒計時器。

有的話會顯示:

[SERVICE] \Device\HarddiskVolume2\Windows\System32\svchost.exe (SystemEventsBroker) 設定的計時器在 下午 10:59:29 的 2017/2/11 到期。
 原因: Windows 將執行 'NT TASK\2BrightSparks\SyncBackFree\ASUS-User\DailyBackup' 排定要求喚醒電腦的工作。

你得依查詢的狀況去找出程式來關閉喚醒電腦功能。

例如,根據上面於我的電腦執行 powercfg 所得到的結果,我必須去執行 SyncBack 程式,將 Profile: DailyBackup 於排程設定中的「Wake the computer to run this task」選項給關閉。

自動維護

Windows 的「自動維護」功能也會喚醒電腦。

關閉喚醒的步驟:

  1. 進到 控制台\系統及安全性\安全性與維護\自動維護。
  2. 將「允許排定的維護在排定的時間喚醒我的電腦」給取消勾選:

參考網頁

  1. 修改 Windows 的休眠設定,避免電腦自動休眠
  2. Windows 常用的指令整理

[MySQL]資料庫的備份與還原

資料庫匯出/備份

1. 備份單一資料庫:

$ mysqldump -u Username -p --opt DatabaseName > Backup.sql

2. 僅備份特定資料庫下的資料表:

$ mysqldump -u Username -p --opt DatabaseName Table1 Table2... > Backup.sql

3. 僅匯出資料表結構:

$ mysqldump -u Username -p --opt --no-data DatabaseName > Backup.sql

4. 備份全部的資料庫:

$ mysqldump -u Username -p -A --opt > AllBackup.sql

mysql/mysqldump/mysqladmin 與「登入」有關的參數說明:

  • -u Username: 用來存取 mysql 資料表的用戶名稱。此參數可省略,若省略,則表示為目前登入 linux 的用戶名稱。
  • -p: 於執行時再詢問密碼。
  • -pPassword: 用來存取 mysql 資料表的密碼,-p 與 Password 的中間不可有空格。

資料庫匯入/還原

1. 建立資料庫,再從備份檔匯入單一資料庫:

$ mysqladmin -u Username -p create DatabaseName
$ mysql -u Username -p DatabaseName < Backup.sql

2. 從備份檔匯入全部的資料庫 (不需先建立資料庫):

$ mysql -u Username -p < AllBackup.sql

狀況處理:

狀況 1.

匯入資料庫時出現錯誤訊息: Unknown collation: 'utf8mb4_unicode_ci' Unknown collation: 'utf8mb4_unicode_520_ci'

說明:

MySQL 於 v5.5.3 版之後才有「utf8mb4」的編碼格式。原本 utf8 的最大編碼長度為 3bytes,而 utf8mb4 的最大編碼長度為 4bytes,因此它比 utf8 可以儲存更多的字元。但是以常用的文字來講,utf8 已經完全足夠使用了。若不昇級 MySQL Server,則只須將匯入的字元編碼格式改為原本的 utf8。

解決方法:

先將備份檔中的 utf8mb4 字串替換成 utf8: (以下的三行指令需依照順序執行)

$ sed -i 's/utf8mb4_unicode_ci/utf8_general_ci/g' Backup.sql
$ sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' Backup.sql
$ sed -i 's/utf8mb4/utf8/g' Backup.sql

全部替換完再進行匯入:

$ mysql -u Username -p DatabaseName < Backup.sql

狀況 2.

以 mysqldump 匯出資料庫時出現錯誤訊息: Got error: 1044: Access denied for user 'backup'@'localhost' to database 'test' when using LOCK TABLES

說明:

這錯誤訊息已說明了用來執行 mysqldump 的帳號沒有「LOCK TABLES」權限! 通常用 root 帳號匯出資料庫不會發生這個問題,因為我們會給 root 所有的權限。然而我們在設定其它帳號時可能會忘了給它設定「LOCK TABLES」權限,而執行 mysqldump 至少需要「SELECT」與「LOCK TABLES」權限才行,最好再加上「SHOW VIEW」、「EVENT」與「TRIGGER」。

解決方法:

重新授予用戶權限:

grant SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER on *.* to 'backup'@'localhost' identified by '{Password}';
flush privileges;

狀況 3.

從 cpanel 下載的 MySQL 檔案格式為 *.gz,可以用 gunzip 解壓縮:

$ gunzip Backup.sql.gz

注意: 使用 gunzip 解壓縮後,原本的 *.gz 會被刪除!!若要保留舊檔,須改用下列指令:

 $ gunzip -c Backup.sql.gz > Backup.sql

資料庫離線備份/還原

MySQL 的資料庫放在 /var/lib/mysql 下,以資料庫的名稱做為目錄的名稱。直接將 /var/lib/mysql 下的資料庫目錄用 tar 指令個別壓縮起來即可做為備份。要還原再把檔案解壓縮回去。

要以這種方式執行備份與還原都必須先停止 MySQL 的服務:

$ service mysqld stop

參考網頁

處理 DNS 的 CNAME 造成收件者錯誤的問題

第一次遇到客戶因為自己 Server 的 DNS 問題,造成我方要寄信給客戶時,收件者的 EMail Address 會於 SMTP Server 端被自動變更 (寄給 [email protected] 會變成寄給 [email protected]),以致於客戶收不到 EMail 的問題!! (客戶可能以為是我方的問題)

我自己測試的結果是與 DNS 的 CNAME 有關:

C:\>nslookup -type=cname example.com
  Server:  dns.hinet.net
  Address: 168.95.1.1
  example.com canonical name = other.example.com

同時我在網路上找到一篇微軟的 KB 文件,已經寫得很清楚了,我就直接把內容放上來。

Read more

修復 Linux 開機出現檔案系統有不一致性 (UNEXPECTED INCONSISTENCY) 的錯誤問題

Linux 無法正常開機,出現錯誤訊息:

Checking filesystems

/dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
         (i.e., without -a or -p options)
                                                  [FAILED]

*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for maintenance
(or type Control-D to continue):

錯誤訊息指出 /dev/sda1 分割區有不一致性的問題!!

Read more

Linux 電子郵件防毒: ClamAV + Sendmail

本文要介紹的 Linux 的 E-Mail 防毒主要由兩個套件組成: clamav 與 clamav-milter。

其中「clamav」是防毒軟體、「clamav-milter」是 clamav 用來與 sendmail 整合的掃毒程式。

Read more

如何檢測 logrotate 的錯誤

logrotate 的主要功能是將舊的 log 檔改檔名,並建立一個新的檔案來讓 syslog 存放新的 log。

錯誤狀況

我的 Linux 系統都有持續在寫入 log,但是單一的 log 檔檔案過大,表示已經有幾個月沒有執行 logrotate 了! 因此研判 syslog 的功能是正常的,可能是 logrotate 的運作出了問題。

Read more

return top