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