一、问题
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 -lll -R /var/log | egrep "^[sl-][rwx-]{9}"| wc -ltree /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)。