一、问题
1.1
统计/var/log/下所有文件个数
1.2
查找出/var/log目录下面修改时间是7天以前,大小在50k到2M之间,并以.log结尾的文件把这些文件复制到/data目录中
1.3
设置一条Iptables规则,允许192.168.10.0段访问873端口?
二、答案
2.1
find /var/log/ ! -type d | wc -l ll -R /var/log | egrep "^[sl-][rwx-]{9}"| wc -l tree /var/log/ | awk 'END{print $3}'
分析:
1、/var/log/下所有文件包括当前目录和子目录以及子目录的子目录下面的文件 2、linux下文件有很多类型,包括 普通文件、链接文件、字符设备文件、块设备文件、socket文件等 ls -l输出第一个字符含义 - 普通文件 d 目录 l 链接文件 c 字符设备文件 b 块设备文件 s socket文件
2.2
find /var/log -mtime +7 -size +50k -size -2M -name "*.log" | xargs -i cp {} /data
说明:
默认xargs不支持,{}这种形式,xargs加上-i就可以支持,-i参数就可以用{}花括号了。 查找出满足要求的文件使用find命令,把查找出来的文件批量执行某个命令有如下几种方式: # 1.使用xargs,就是上面给出的答案 # 2.使用find的-exec参数 find ... -exec cp {} /tmp \; # 3.因为是复制,可以使用cp -t参数 cp 苹果 苹果 苹果 筐 cp -t 筐 苹果 苹果 苹果 # 4.cp $(find ...) /data $()表示先执行这个命令,然后把命令结果放在这个位置上面 ls -l $(which mkdir)
2.3
iptables -A INPUT -s 192.168.10.0/24 -p tcp --dport 873 -j ACCEPT
分析:
-A:向规则链中添加条目 -s:指定要匹配的数据包源ip地址; -p:指定要匹配的数据包协议类型; --dport: 指定目标端口 -j: 指定动作 动作包括: ACCEPT:接收数据包。 DROP:丢弃数据包。 REDIRECT:重定向、映射、透明代理。 SNAT:源地址转换。 DNAT:目标地址转换。 MASQUERADE:IP伪装(NAT),用于ADSL。 LOG:日志记录。 规则链名包括: INPUT链:处理输入数据包。 OUTPUT链:处理输出数据包。 PORWARD链:处理转发数据包。 PREROUTING链:用于目标地址转换(DNAT)。 POSTOUTING链:用于源地址转换(SNAT)。
三、参考:
来源:https://www.cnblogs.com/okokabcd/p/8679345.html