Tag: Linux

Shell Script – 发现 Load Average 高自动执行指令

当系统的 Load Average 很高时, 可能面临当机的风险, 遇到这个问题可以用 Shell Script 定时检查系统的 Load Average, 当发现 Load Average 到达某一个设定好的数值时, 便自动执行一些指令, 例如重启服务, kill process 或向系统管理员发出电邮通知等。 以下 Shell Script 会透过定时读取 /proc/loadavg 的数值, 当发现 Load Average …

Shell Script 检查并自动重启 Apache httpd

如果主机出现问题时, 可能负载过高或者服务当掉, 最理想的做法还是要找出原因, 很多时只要修改一些设定便可以。 早前遇到一位客户, 他安装在 VPS 的 Apache 会无故当掉, 间隔由几小时到一天不等, 检查后 Load Average 一点也不高, 当掉后只要重新启动 Apache 便没问题, 初部估计可能是 mpm_prefork 的设定问题。 由于修改后要观察一段时间, 这段时间 Apache 也可能当掉, 便写了这支 Shell Script, 会自动检查 …

Linux 用 rm 删除档案及释放硬盘空间

用 Liunx 的 rm 删除档案时, 如果档案的容量很细小, 通常看不到变化; 但如果档案的容量很大, 用 df 指令查看硬盘空间是没有释放, 但用 du 指令检视目录的使用量, 则没有计算已删除档案。 出现这个问题的原因, 是已删除的档案被其他 process 开启, 用 lsof 指令可以检视正在开启已删除档案的 process: # lsof | grep deleted 找到开启已删除档案的 …

Ubuntu 设定网络固定 IP

Ubuntu 会自动侦测 DHCP 取得 IP, 如果要改成使用固定 IP, 可以使用以下方法, 并以网卡 “ens160” 作为例子。 首先开启档案 /etc/network/interfaces: $ sudo vi /etc/network/interfaces 找到 dhcp 的一行, 并将那一行注解掉, 这样会关闭 dhcp 自动取得 ip, 以及加入几行网络设定, 即改成类似这样: 以上的 netmask …

Shell Script 读取网页内容储存到变量

Shell Script 要读取网页内容,并将输出结果储存到变量,可以用一些在 CLI 下执行的文字浏览器,由于很多系统都有安装 wget 及 curl, 以下文章会介绍使用 wget 及 curl 这两种方法完成。 如果系统并未安装 wget 及 curl,可以用以下指令安装,如果已经安装了,则不用安装: RHEL, CentOS # yum install curl wget Debian, Ubuntu $ sudo apt-get …

手动解除 Fail2ban 封锁的 IP

Fail2ban 是十分好用的防御暴力破解攻击的工具, 将 Fail2ban 封锁的 IP 解除封锁, 只要使用 Fail2ban 内建的 fail2ban-client 即可完成。 首先用 iptables 检视被封锁的 ip: # iptables -nvL 然后要知道被封锁的 IP 被 Fail2ban 那一个 Jail 封锁, 因为主机内可以设定了多个 Fail2ban jail, …

Ubuntu DNS 网络设定

一般上在 Linux 下要设定 DNS 服务器, 只要修改 /etc/reslov.conf 档案便可以, 但在 Ubuntu 开启 /etc/reslov.conf 时, 却出现用注解表示的警告: 那便表示不可以直接改 /etc/resolv.conf, 因为 Ubuntu 每次开机都会会将修改的内容覆蓋, 要使修改永久生效, 需要修改档案 /etc/network/interfaces, 先开启 /etc/network/interfaces: $ sudo vi /etc/network/interfaces 加入以下一行设定 …