`
wx1569488408
  • 浏览: 75080 次
文章分类
社区版块
存档分类
最新评论

学习记录-第二阶段复习-20181103全天

 
阅读更多

#####定时任务
rpm -qa cronie
/etc/init.d/crond status    chkconfig中管理
日志 /var/log/cron
定时任务中-命令或脚本结果(正确和错误)定向到黑洞(>/dev/null 2>&1)或追加到文件中
    否则:1.若邮件的软件没有开启------大量小文件堆积在/var/spool/postfix/maildrop/中 ------inode满
          2.若邮件开启了------定时任务会不断的给root用户发邮件
            you have new mail in /var/spool/mail/root
        关闭邮件服务:/etc/inti.d/postfix stop
        文件夹中有大量小文件:1.ls |xargs rm   2.删除文件所在的目录(记录好权限和所有者)
            找到含大量文件的文件夹:find -type d -size +1M
            
###让一个命令或脚本开机自启动
1./etc/rc.local
2.通过chkconfig中管理
  如何让一个脚本被chkconfig管理
  vim /etc/init.d/oldboy    在文件的第一行添加    #chkconfig: 2345 99 99
  chmod +x /etc/init.d/oldboy(可能实际上不需要)
  chkconfig --add oldboy (不用写路径,因为这种文件只能放在/etc/init.d下)

添加完成后,观察/etc/rc3.d/下的文件
chkconfig oldboy on时:出现S99oldboy->../init.d/oldboy        该99为脚本中第一个99,为开机启动顺序。
chkconfig oldboy off时:出现K99oldboy->../init.d/oldboy        该99为脚本中第二个99,为关闭时关闭顺序。
#手工删除软链接Kxxx后,建立软链接 ln -x Sxxxxx,发现服务从关闭变为开启。


############################################################################################################
#####用户管理
/sbin/nologin 虚拟用户专属    无法登陆

/etc/skel/下是建立用户时家目录默认会有的文件。
/etc/skel/.bash_logout ===用户退出会运行里面的命令。

#登陆时报错 -bash-4.1$时:    可能是家目录下的环境变量相关的隐藏文件 被删除了
    #解决:从/etc/skel复制:    cp /etc/skel/.bash* ~

###添加用户
    useradd -u UID    -g    组    -s    shell    (-M不创建家) 用户名
    usermod    修改用户信息。参数和useradd一样。
    
###为用户添加密码
    echo '123456'|passwd --stdin oldboy
    history -c删除历史文件,否则别人可以从历史文件看到密码。

###为文件加“指纹”
    md5sum oldboy.txt >police.log 生成秘钥并写入文件中。
    md5sum -c police.log 检查oldboy.txt文件是否被改变。(可在crond中定时执行)

    在网上下载东西的时候常常看见md5sum.txt的文件,就是网站为了防止文件被别人篡改放出的,下载后可以自行比对。

###sudo
    
作业:
1.批量添加10个用户stu01..stu10,并设置8位随机密码(禁止使用for,while等循环)
2.安装htop,iotop,iftop,了解什么是yum源。    
#####################################################################################################################    
#####磁盘介绍
    rpm = round per minute
    5400 7200 
    扇区=512KB
    磁头(head)
    柱面大小=单元块的大小
    总大小=柱面数*柱面大小=磁道数量(磁头数量)*磁道大小=扇区数量*扇区大小=512KB
    1TB=1024GB=1024^2MB=1024^3KB=1024^4Byte=8bit
    byte字节    bit位
    #硬盘厂商实际是按1000算而不是1024
    #awk算数     awk 'BEGIN{print 512*63*255*1305/1000^3}' 

###磁盘分区
    fdisk -l
    fdisk /dev/sdx
    partprobe /dev/sdx 通知系统/dev/sdx硬盘的磁盘分区表变化了。
    mkfs.ext4 /dev/sdb1    格式化创建文件系统。
    # tune2fs -c 0 -i 0 /dev/sdb1    关闭磁盘分区的自动检查    
    #永久挂载 1./etc/rc.local 2./etc/fstab

##parted(适用与大于2TB的磁盘,实时修改,慎用!)
    parted /dev/sdb
    p[rint]    显示磁盘分区表信息
    mklabel    创建磁盘分区表         msdos(即mbr)或者gpt
    mkpart    创建分区
    rm        删除分区
    q        退出(因为实时保存,所以不涉及到保存并退出)
    
    mklabel gpt
    mkparted primary 0 30
    
###增加swap
    dd if=/dev/zero of=/tmp/100swap bs=10M count=10
    mkswap /tmp/100swap     file /tmp/100swap
    swapon    /tmp/100swap
    swapon -s    查看swap组成
    free -h
    
#swap永久生效
    1./etc/rc.local        swapon /tmp/100swap
    2./etc/fstab        /tmp/100swap    swap    swap    default    0 0
    
#free -h看内存时 看-/+ buffers/cache那一行。    (linux特点:会将使用过的命令和数据临时存放在内存中 cache和buffer)    
    
    dumpe2fs    显示文件系统信息
    resize2fs    调整ext2-4文件系统的大小
    fsck        检查并修复Linux文件系统
    -a
    dd            复制或转换文件
    od            查看二进制文件的内容
    -xa            od -xa /tmp/512.bin
    swapoff        关闭交换分区
    sync        刷新文件系统缓冲区
    
##########################################################################################################################    
#################################################第二章###################################################################
#####三剑客之sed    
    p    打印模式空间内容
    -n    取消默认输出    (!!!!!-n一定不要与-i一起用,会改变源文件)
    
###查询连续多行文本
    #数字地址范围--推荐
    2,4 显示第二行到第四行的内容,包含第二行和第四行。
    #正则地址范围--模糊,容易找多。
    sed -n '/oldboy/,/^104/p' person.txt
    
###过滤多个字符串
    -r    让sed支持扩展正则表达式    (|、())
    sed    -rn '/oldboy|yy/p' person.txt
    #sed里面的正则字符左右必须有“/".如 /oldboy/
    sed通过正则表达式过滤 = egrep
    
###查询指定多行
    sed '2p;4p;10p;30p' person.txt
    
###增加单行文本    
    #a      追加append    在指定行后添加一行或多行文本
    #i      插入insert    在指定行前添加一行或多行文本
    sed '2a 106,xiaoyu,CXO' person.txt
    sed '2i    106,xiaoyu,CXO' person.txt
    
###增加多行文本
    \n 表示换行符
    106,xiaoyu,CXO\n107\n108\n109
    sed '2a 106,xiaoyu,CXO\n107\n108\n109' person.txt
    
###删除文件内容    
    d    删除文件内容
    $    代表文件的最后一行
    sed '2,$d' person.txt 删除第二行到最后一行
  企业案例:不显示文件中的空行
    sed '/^$/d' person.txt
    sed -n '/^$/!p' person.txt
    awk '!/^$/' person.txt
    !sed在命令字符前,awk在条件前。
    
###文本替换    
    \    特殊符号用反斜线取消特殊含义
    s    单独使用替换第一个匹配的内容
    g    全局替换
    -i    修改文件
    -i.bak    自动备份文件
    
###变量替换    
    ''    原样输出
    ""    特殊符号会被解析    
    
###反向引用    
    \1~\9    最多引用9个。
    sed -r '()'
    
  企业案例:系统开机启动项优化。
    除了5个服务以外都关闭 crond sshd network sysstat rsyslog
    
    
###总结:
   sed   -n  -r  -i         p/a/i/d/s###g    
    
    
##########################################################################################################################    
#####三剑客之awk    
    awk -F ":" 'NR==2{print $1,$2}' /etc/passwd
    awk 参数 '条件{干啥}'  文件
    
        模式匹配:模式与动作
        
            通过正则表达式作为模式
            
        mkdir -p /server/files/
        cat >>/server/files/reg.txt<<EOF
        Zhang Dandan    41117397   :250:100:175
        Zhang Xiaoyu    390320151  :155:90:201
        Meng  Feixue    80042789   :250:60:50
        Wu    Waiwai    70271111   :250:80:75
        Liu   Bingbing  41117483   :250:100:175
        Wang  Xiaoai    3515064655 :50:95:135
        Zi    Gege      1986787350 :250:168:200
        Li    Youjiu    918391635  :175:75:300
        Lao   Nanhai    918391635  :250:100:175
        EOF    
    
    awk '$3~/[15]$/{print $1,$2}' reg.txt        第三列最后一位是1或者5的人的全名。
    
###替换 
    gsub(//,"",$n)
    awk '$2~/Xiaoyu/{gsub(/:/,"$");print}' reg.txt
    
#BEGIN{}
    里面的内容会在awk读取文件前执行
###END{}    
    里面的内容,会在awk读取完文件的最后一行后执行!(常用)
    
###i=i+1统计    
    awk '/^$/{i=i+1}END{ print i} ' /etc/services
    i=i+1  ==  i++

#awk数组-统计与计算    
企业面试问题:(百度和sohu面试题)    
    处理以下文件内容,将域名取出并根据域名进行计数排序处理:(百度和sohu面试题)
    http://www.etiantian.org/index.html
    http://www.etiantian.org/1.html
    http://post.etiantian.org/index.html
    http://mp3.etiantian.org/index.html
    http://www.etiantian.org/3.html
    http://post.etiantian.org/2.html
    文件 url.txt
    awk -F '[./]+' '{h[$2]++}END{for(pol in h)print pol,h[pol]}' url.txt
    
###总结:    
    i=i+1  == i++
    i=i+$n == i+=$n
    awk 通过正则作为模式
    BEGIN、END
    
作业:通过awk同时分析出secure文件中每个用户被每个ip破解的次数    
    
##########################################################################################################################
#####shell编程
  格式:
  #!/bin/bash
  #desc:
  #author:
  #time:
  #version:
  
  $1:    第一个参数
  $2:    第二个参数
  $n:    第n个参数
  $#:    参数的个数 
  $?:    显示上一个命令的执行结果 0正确  1错误
  
###read  
        read -p "intput x,y" x y
        
###条件表达式
    [ -d /oldboy ]
    [ -f /oldboy/oldboy.txt ]
    [ 10 -gt 9 ]   great than >
    [ 10 -ge 9 ]   great equal >=
    [ 10 -eq 10 ]  equal      ==
    [ 10 -ne 9 ]   not equal  !=
    
    [ 9 -lt 90 ]   less  than <
    [ 9 -le 90 ]   less  equal <=
  
    [ -d /oldboy ]  ==  test -d /oldboy
    man test 
  
###if判断  
    if [ $1 -gt $2 ];then
        echo $1 bigger than $2
    else
        echo $1 not bigger than $2
    fi
    
    如果 [ $1 -gt $2 ];然后
       echo  $1 bigger than $2
    那么 
       echo  $1 not bigger than $2
    果如
    
    
    if [ $num1 -gt $num2 ];then
        echo $num1 greater than $num2
    
    elif [ $num1 -lt $num2 ];then
        echo $num1 less    than $num2
    
    else
        echo $num1 equal $num2
    fi
        
###for循环    
    for 变量名    in 列表
    do
        命令
    done
    
    for num  in  1 2 3 4 5 6 7
    do
        echo "the $num number is :$num"
    done     
    
    for num  in  {01..10}
    do
         echo "the $num number is :$num"
    done
    
企业案例:
    优化linux开机启动项目,只保留crond;sshd;network;rsyslog;sysstat,其他的都关闭
    chkconfig |egrep "crond|sshd|rsyslog|network|sysstat" -v|awk '{print $1}'      取出列表
    for name in chkconfig |egrep "crond|sshd|rsyslog|network|sysstat" -v|awk '{print $1}'
    do
        #echo chkconfig $name off
        chkconfig $name off
    done    
    
###linux运行脚本调试技巧
    sh -x


########################################################################################################################
#####网络基础课程    
    应用层
    表示层
    会话层
    -------
    传输层
    网络层
    数据链路层
    物理层

转载于:https://my.oschina.net/u/4005625/blog/2473259

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics