0

我正在尝试创建一个可以将端口配置行添加到 squid-std.conf 文件的脚本。我的脚本需要两个参数,第一个$1是 http 或 https,然后第二个参数$2是端口号。到目前为止,我在伪代码中的逻辑:

  1. 确保有两个参数。
  2. 确保$1是 http 或 https。
  3. 确保$2是一个有效的号码。
  4. 确保$2是一个有效值 0-65535
  5. 现在检查端口是否已经打开。
    这是我坚持的部分。

squid-std.conf文件包含许多配置行,但如果调用脚本,http 80我需要检查是否有类似于以下的行:

acl Safe_ports port 80 #custom port change 2012/08/02 15:00

现在因为可以通过#在行的前面添加 a 来注释行,所以我想确保行#的前面不存在。然后,如果某处右侧有一个#,则删除该右侧的所有内容。

现在检查以确保这些词存在acl,Safe_ports80。并且80需要不匹配的东西280,必须只是80。这是区分大小写的,因此无需检查大写或小写。

如果一切匹配,则在屏幕上打印此端口已打开。如果找不到,那么我需要编写一些代码来在文件中添加该行,这可以稍后完成。我希望这是足够的细节。

谢谢

4

1 回答 1

0
#!/bin/bash                                                                                                                         

SCHEME=http
PORT=80
SQUID_CONF=/path/to/squid-std.conf

if egrep -q "^ *acl +Safe_ports +port +$PORT " $SQUID_CONF
then
    echo "this port is already open."
fi
于 2012-08-23T16:48:50.407 回答