Tag: FreeBSD
Shell Script 很多时需要读取目录内容, 例如备份或日志档案轮替等。以下是 Shell Script 读取目录内容的方法。 例如想读取所有 /var/log 下的档案, 可以这样写: 如果只想列出 /var/log 录下, 所有以 .log 作结尾的档案, 可以这样写:
写程式时很多时候需要检查档案或目录是否存在, 在 Shell Script 检查档案及目录是否存在, 可以在 if 条件判断式里面加上 -e 或 -d 实现, 以下是具体写法: 检查档案是否存在: 上面的 if 判断式也可以用一行来实现: 检查目录是否存在: 用一行来实现上面的程式码: 其中一个十分实用的例子, 是检查档案或目录是否存在, 如果不存在就便宜档案或目录: This is the best practice to check …
HTTP 服务器在高负载时反应会变慢, 但检视系统的使用资源, 例如 CPU, 内存及 Load Average 则很正常, 当重新启动 HTTP 服务器后, 问题又暂时得以解决。用以下 netstat 检查连线的统计资料: # netstat -nat | awk ‘{print $6}’ | sort | uniq -c | sort …
有时在 Shell Script 需要检查输入的参数数量, 在 Shell Script 要检查输入的参数数量, 可以直接用 $# 变量取得, 例如建立以下 Shell Script: 将以上内容储存成 test.sh 后, 并给予可执行权限, 可以尝试执行以下指令: $ test.sh 1 2 3 3 上面在执行 test.sh 时, 输入了 …
除了在 Linux 的主机外, 在其他类型的主机也经常需要检查埠号是否有开启埠号, 例如要测试主机的服务是否正常。 以下是分别用 nc, nmap 及 telnet 测试埠号是否有开启的方法。 nc (netcat) nc 的意思是 netcat, nc 可以读取经过 TCP 及 UDP 的网络连线资料, 是一套很实用的网络除错工具。 在 CentOS 用 yum 安装 nc: …
PuTTY 是一个开源的 SSH 客户端, 除了 SSH 外, 也支援 Telnet 及 Rlogin 等多种通讯协定, 是 Windows 十分热门的 SSH 客户端, 除了 Windows 版外, 也提供 Linux 版。 PuTTY 对上一个版本 0.70 已经是 2017 年 …
Linux 很多设定档都会以 “#” 字符开头作为注解, 例如: # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; 有些情况是要将注解行及空白行删除, 这样可以用 grep 指令实现, 语法是: /linux/grep $ grep -v ^\# config.conf | grep . 或者 /linux/grep …
基于保安理由, 很多服务器都会禁止 root 登入 SSH, 我认为这个设定也是必须的。在一些内部测试用的服务器, 为了方便可能会允许 root 登入, 另一个较好的做法是设定只让个别 IP 用 root 帐号登入 SSH. 透过 sshd 的 “Match Address” 便可以实现, 除了登入 root 帐号外, 也可以设定其他帐号, 只允许个别 IP 登入。 首先开启 …
wget 是很常用的 Linux 下载工具, 支援 HTTP, HTTPS, FTP 等通讯协定下载档案, 但如果有些下载的档案是需要支援 cookie 的话, 直接使用 wget 默认选项便不能下载了。 另一种情况是需要输入使用者名称及密码, 然后将使用者名称及密码储存 cookie 内, 这样也是不能下载。 解决方法是先用 wget 开启 cookie, 并将 cookie 资讯储存到档案, 然后再执行 wget …
TCP wrappers 是主机存取控制列表系统, 作用是限制 IP, hostname 存取 TCP 网络。TCP wrappers 透过以下两个设定档设定过滤的 IP: /etc/hosts.allow /etc/hosts.deny 当客户端尝试从远端连线时, 以从上面两个档案读取规则, 决定客户端的连线是允许还是禁止。设定 /etc/hosts.allow 及 /etc/hosts.deny 的格式是这样: daemon_list : client_list 上面三个字段的意思是: daemon_list: 设定的 daemons, 用逗号 …