gpt4 book ai didi

linux - bash - 添加额外的 IF 语句

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:52 24 4
gpt4 key购买 nike

我有一个解析 varnish varnishncsa 日志文件的脚本。该脚本的目的是,如果有人访问服务器上的某个 url,它会将他们的 ip 地址添加到 iptables 以将其锁定。

在我的脚本中,我有一条语句忽略了我的静态办公室 ip 地址(这样我就不会将自己锁定在服务器之外)。

我正在尝试添加更多 IP 地址以防止它们被锁定,但当我这样做时,它似乎破坏了脚本。

#!/bin/bash


for address in `cat /var/log/brute.txt | grep -v -f /var/log/applied_brute.txt`; do
/bin/echo $address >> /var/log/applied_brute.txt

if [ "$address" != "my.of.fi.ce.ip" ]; then
IPTABLE=`echo $address | awk '{ print "/sbin/iptables -A INPUT -s "$0" -j DROP -m state --state NEW,ESTABLISHED,RELATED\n"}'`
fi


echo $IPTABLE
$IPTABLE
done


unset address
unset IPTABLE

我想要的是where语句

if [ "$address" != "my.of.fi.ce.ip" ]; then

向其添加更多的 ip 地址。

最佳答案

怎么样:

#!/bin/bash

for address in `grep -v -f /var/log/applied_brute.txt < /var/log/brute.txt`; do
echo $address >> /var/log/applied_brute.txt
if ! grep -q -F -x $address /etc/my-office-addresses.txt; then
IPTABLE="/sbin/iptables -A INPUT -s "$address" -j DROP -m state --state NEW,ESTABLISHED,RELATED"
echo $IPTABLE
$IPTABLE
fi
done

将您的办公室地址存储在 /etc/my-office-addresses.txt

使用的 grep 选项:

-F : Fixed strings (treat pattern literally, not as regex. This option is not really required in this case, since the input data in all the files used is assumed to be in standard format.)
-x : line match (address = 192.168.0.1 would have matched line = 192.168.0.100 , if this option is missed.)
-q : Do not print result to stdout.

关于linux - bash - 添加额外的 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17481848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com