Category: Linux
Crontab 自动执行可以设定在每月的某一天执行, 如果遇到需要在每个月最后一天执行一次的情况, crontab 则没有这个功能, 这时可以用 Shell Script (其他语言的做法也一样) 检查今天是否当月最后一天来解决, 以下是具体做法。 首先建立一个 Wrapper Script, 加入以下内容: wrapper.sh 这个 Wrapper Script 很简单, 第三行会取得明天的日期并放到 $DAY 变量, 然后检查 $DAY 是否 1, 如果明天的日子是 1 …
WordPress 是目前最流行的 Blog CMS, 原本每个网址后面会加上 “?p=xxx” 作为识别文章, 而 WordPress 的固定连结功能可以自订网址。Wordpress 内建的 .htaccess 档案已经做好 Rewrite 的设定, 但如果网页服务器是用 Nginx, 就不可以用这个 .htaccess 了, 以下是在 Nginx 设定 WordPress Rewrite 固定连结的方法。 首先开启网站的 .conf 档案, …
Oracle VirtualBox 可以安装在在 Linux, Windows 及 Solaris 系统上,用作虚拟其他 x86 作业系统的虚拟化软件。透过 VirtualBox,使用者可以在一个作业系统内,安装并执行多个作业系统。Oracle VirtualBox 5.1.14 在上个月发布,以下文章会示范在 Debian 8, Debian 7, Ubuntu 16.10 及 16.04 LTS 安装 VirtualBox 5.1.14 的步骤。 首先开启档案 /etc/apt/sources.list, …
DDOS 是十分常见的攻击,即使是一般使用者,下载一套 DDOS 软件,或者直接安装 kali linux, 便可以很简单发动 DDOS 攻击,除了遇到 DDOS 攻击才采取拦截外,也可以透过 iptables 或一些 Linux 设定来预防 DDOS 攻击,以下会列出一些预防 DDOS 的设定及 iptables 规则。 Linux Kernel 透过修改 Linux Kernel 的设定,同样可以有效减低 DDOS 的威胁,RHEL …
了解 Linux 的开机流程, 对于系统管理员十分重要, 当系统发生问题时, 可以更有效除错, 以下文章会简单介绍 Linux 开机的流程, 而 Linux 开机的流程主要会经过以下 6 个步骤: 1 .BIOS 2. MBR 3. GRUB 4. Kernel 5. Init 6. Runlevel Scripts 1. BIOS …
在 CLI 如果解压解缩档时,如果不小心将压缩档解压到工作目录,例如 /var/www/html,将目录变得很凌乱,除了逐个档案检视并删除,更有效的方法是用指令自动删除, 以下是指令例子: 以上指令会将不小心解压的 /path/to/file.tar.gz 档案内容删除。
当主机回应很慢时,除了可能是因为系统的负荷过大,或者系统设定错误外,另一个可能性是遭受 DDOS 攻击。 对于小规模 DDOS 攻击, 使用 Linux 内建的工具侦测来源 IP 及阻挡可以达到一定的效果, 以下会示范用 netstat 及其他 Linux 内建指令,检测系统是否遭受 DDOS 攻击。 用 netstat 列出所有连线, 可以用以下指令: 以上指令列出相当多的连线, 我们先用 grep 过滤出我们想要的资讯, 然后用 sort 将 …
要检查密码的强度, 单纯以密码长度及是否包含英文字母, 数字并不足够, 例如 “abcd1234” 便是 8 个位, 包含字母及数字的密码, 但这个密码很简单。cracklib 就是一套检查密码强度的工具, 以下是 cracklib 的安装及使用方法。 在 Redhat 及 Debian 系列的发行版, 安装 cracklib 都很方便: RHEL / CentOS / Fedora: # yum …
sed 除了可以对档案内的 keyword 做 search & replace 外, 也可以将包含有 keyword 的整行删除, 语法是: 以上指令会对 filename 逐行搜索, 并将有 “keyword” 的整行删除。 另一个情况是想将两个 keywords 中间的整行资料删除, 语法可以改成这样: 以上指令会在 filename 内, 将有 “keyword-1” 及 “keyword-2” …
在 Linux 及其他 Unix Like 作业系统, 要解压 .bz2, .bz, .tar.bz2, .tbz2 及 .tbz 可以用 bzip2 指令, 指令语法是: $ bzip2 -d filename.bz2 bzip2 指令默认会在解压后, 将原来的压缩档删除, 要保留原来的压缩档, 需要加上 “k” 参数: $ …