zoukankan      html  css  js  c++  java
  • 每日一题20180330-Linux

    一、问题

    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)。
    

    三、参考:

  • 相关阅读:
    SQL函数 【转】
    Oracle修改表,提示“资源正忙,要求指定NOWAIT”
    网关的通俗讲解【转】
    程序员小抄大全
    JQuery 中each的使用方法
    JQueryUI入门所有效果说明【转】
    随记小笔(20100820)
    asp.net操纵Oracle存储过程
    JQuery技巧总结【转】
    Centos7 进入单用户模式,修复系统
  • 原文地址:https://www.cnblogs.com/okokabcd/p/8679345.html
Copyright © 2011-2022 走看看