ShellCheck — Shell Script 语法检查工具

如果在使用一些指令 (例如 rm) 不小心, ShellCheck 是一个 Shell Script 分析及除错工具, 之后要花很多时间修复, 可以在尝试执行 Shell Script 前先找出 Warning 及一些建议。以下会纪录安装及使用 ShellCheck 的步骤。 安装 ShellCheck 安装 ShellCheck 可以用 yum 或 apt-get 直接安装: RHEL, CentOS, …

Apache 安装 mod_cband 限制 VirtualHost 及 IP 频宽

当 Apache 其中一个 Virtual Host 占用资源过多时,会拖慢整台服务器所有网站的速度,这时可以安装 mod_cband 模组,限制个别虚拟主机可以占用的连线数量及频宽,以下会示范在 CentOS 7 安装 mod_cband 模组: 要安装 mod_cband,需要先安装 httpd-devel: # yum install httpd-devel 然后可以下载 mod_cband 及编译安装: # cd /usr/local/src # wget https://github.com/maiha/mod_cband/archive/master.zip …

PHP mail() 设定 Return-Path

在 PHP 上使用 mail() 发送电邮,如果没有正确设定 Return-Path, 发出的邮件会使用系统的主机名称,例如 apache@hostname.server, 以下是程式码: 在收到的邮件会看到寄件者是 from@example.com, 但当按下回复时,会使用系统的主机名称,除了回复地址名,也会有部邮 email server 拒收,会在 email server 的纪录档出现 “invalid sender MX”。 原因是邮件的 Return-Path 并没有使用 PHP 的 Return-Path 设定,邮件的 source …

Python 询问使用者 yes / no

编写在 CLI 执行的程式, 很多时都会用到询问使用者 yes / no 是否执行, 以下记录一下在 Python 的写法: 例如: 上面程式很简单询问是否继续, 如果输入 “yes” 则会输出 “Hello World!”. 上面程式必须输入 “yes” 才会输出 “Hello World!”, 如果输入 “Yes” 则不会继续, 其中一个方法是将 if 判断式加入多一个选项, …

胎压侦测器很重要

几个月前换轮胎时加装了胎压侦测器, 几个月以来的作就是看到实时胎压, 加油时不会忘记打气, 以及在驾驶室装帅罢了。 今天早上开实没多久, 就听到 “咇咇” 响, 起初以为是孩子没关好车门, 细看原来是胎压侦测器发出的提示声, 胎压侦测器显示左前胎不断闪烁, 由前一晚 2.3 BAR 胎压降到 1.6 BAR. 下车稍微检查一下发现轮胎中钉了, 车子放了一晚在慢慢泄气, 还好附近有输胎店很早开门, 送完孩子上学后立即补胎。当初安装胎压侦测器的钱没有白花。

vim 把 Tab 转换为 4 Space

以前习惯用 Tab 来做缩排,在用 Sublime Text 没什么关系,Tab 跟 4 个空格的长度一致,但近年经常用 vim 直接在 CLI 写程式,当程式需要多层判断式或循环时,很多时在终端机会看得很辛苦,因为在 vim 显示 Tab 会比 4 个空格的距离还长。 所以还是用 4 个空格取代 Tab 较方便,以下是在 vim 及 Sublime Text 按下 …

Python 写入档案的 4 个方法

在 Python 写入档案内容跟读取档案差不多, 也很简单方便,以下会介绍用 Python 逐行读取档案内容的 4 种方法。 在看例子前先要了解开启档案的参数, 一般上读取档案会用 “r”, 即唯读的意思, 如果要写入档案, 分别可以用 “w” (即 write 的意思) 或 “a” (即 append 附加的意思), 两者的分别在于: 如果档案原本已经存在, “w” 会将写入的内容直接覆蓋原来的档案内容; 而 “a” …