zoukankan      html  css  js  c++  java
  • 马哥Linux——第三周作业

    1、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/root/etcYYYY-mm-dd中

    [root@centos7 ~]#cat /root/bin/backup.sh 
    #!/bin/bash
    cp -a /etc/ /root/etc`date +%F`
    [root@centos7 ~]#chmod +x bin/backup.sh

    2、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值

    [root@centos7 ~]#cat /root/bin/disk.sh 
    #!/bin/bash
    df | grep "/dev/sd" | tr -s " " % | cut -d % -f 5 | sort -nr | sed -n '1p'
    [root@centos7 ~]#chmod +x /root/bin/disk.sh
    [root@centos7 ~]#disk.sh 
    16

    3、编写脚本/root/bin/nologin.sh和login.sh,实现禁止和允许普通用户登录系统

    创建/etc/nologin文件就可以实现禁止普通用户。

    [root@centos7 ~]#cat /root/bin/nologin.sh 
    #!/bin/bash
    
    FILE="/etc/nologin"
    [ ! -e "$FILE" ] && touch $FILE && { echo "已禁止普通用户登录" ; exit ; } || { echo "默认已禁止普通用户登录" ; exit ; }
    [root@centos7 ~]#chmod +x /root/bin/nologin.sh 
    [root@centos7 ~]#nologin.sh 
    已禁止普通用户登录

    [root@centos7 ~]#nologin.sh 
    默认已禁止普通用户登录
    [root@centos7 ~]#cat /root/bin/login.sh 
    #!/bin/bash
    
    FILE="/etc/nologin"
    [ -e "$FILE" ] && rm -f $FILE && { echo "已允许普通用户登录" ; exit ; } || { echo "默认已允许普通用户登录" ; exit ; }
    [root@centos7 ~]#chmod +x /root/bin/login.sh
    [root@centos7 ~]#login.sh 
    已允许普通用户登录

    [root@centos7 ~]#login.sh 
    默认已允许普通用户登录

    4、查找/var目录下不属于root、lp、gdm的所有文件

    [root@centos7 ~]#find /var/ ! ( -user root -o -user lp -o -user gdm )
    /var/tmp/abrt
    /var/lib/rpcbind
    /var/lib/colord
    /var/lib/colord/icc
    /var/lib/colord/mapping.db
    /var/lib/colord/storage.db
    /var/lib/colord/.cache
    /var/lib/chrony
    /var/lib/tpm
    /var/lib/libvirt/qemu
    /var/lib/libvirt/qemu/save
    /var/lib/libvirt/qemu/snapshot
    /var/lib/libvirt/qemu/dump
    /var/lib/libvirt/qemu/channel
    /var/lib/libvirt/qemu/channel/target
    /var/lib/libvirt/qemu/nvram
    /var/lib/libvirt/qemu/ram
    /var/lib/geoclue
    /var/lib/nfs/statd
    /var/lib/nfs/statd/sm
    /var/lib/nfs/statd/sm.bak
    /var/lib/nfs/state
    /var/lib/setroubleshoot
    /var/lib/setroubleshoot/setroubleshoot_database.xml
    /var/lib/setroubleshoot/email_alert_recipients
    /var/lib/pulse
    /var/lib/postfix
    /var/lib/postfix/master.lock
    /var/log/chrony
    /var/cache/abrt-di
    /var/cache/libvirt/qemu
    /var/spool/mail/rpc
    /var/spool/mail/kkk
    /var/spool/mail/test
    /var/spool/abrt-upload
    /var/spool/postfix/active
    /var/spool/postfix/bounce
    /var/spool/postfix/corrupt
    /var/spool/postfix/defer
    /var/spool/postfix/deferred
    /var/spool/postfix/flush
    /var/spool/postfix/hold
    /var/spool/postfix/incoming
    /var/spool/postfix/maildrop
    /var/spool/postfix/private
    /var/spool/postfix/private/tlsmgr
    /var/spool/postfix/private/rewrite
    /var/spool/postfix/private/bounce
    /var/spool/postfix/private/defer
    /var/spool/postfix/private/trace
    /var/spool/postfix/private/verify
    /var/spool/postfix/private/proxymap
    /var/spool/postfix/private/proxywrite
    /var/spool/postfix/private/smtp
    /var/spool/postfix/private/relay
    /var/spool/postfix/private/error
    /var/spool/postfix/private/retry
    /var/spool/postfix/private/discard
    /var/spool/postfix/private/local
    /var/spool/postfix/private/virtual
    /var/spool/postfix/private/lmtp
    /var/spool/postfix/private/anvil
    /var/spool/postfix/private/scache
    /var/spool/postfix/public
    /var/spool/postfix/public/pickup
    /var/spool/postfix/public/cleanup
    /var/spool/postfix/public/qmgr
    /var/spool/postfix/public/flush
    /var/spool/postfix/public/showq
    /var/spool/postfix/saved
    /var/spool/postfix/trace
    /var/spool/at
    /var/spool/at/spool
    /var/spool/at/.SEQ

    5、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)

    [root@centos7 ~]#grep -Eo "[[:alpha:]]+" /etc/init.d/functions | sort | uniq -c | sort -nr
    [root@centos7 ~]#sed -nre 's/[^[:alpha:]]+/
    /gp' /etc/init.d/functions | sort -nr | tr -s "
    " | uniq -c | sort -nr
    [root@centos7 ~]#cat /etc/init.d/functions | tr -c "[:alpha:]" "
    " | tr -s "
    " | sort -nr | tr -s "[:space:]" | uniq -c | sort -nr

    6、利用sed取出ifconfig命令中本机的IPv4地址

    [root@centos7 ~]#ifconfig | sed -nr '/inet[[:space:]]+/p' | sed -r 's/.*inet[[:space:]]+(.*)[[:space:]]+netmask.*/1/'
    192.168.30.104 
    192.168.1.109 
    127.0.0.1 
    192.168.122.1

    7、总结yum的配置和使用,包括yum仓库的创建

    检查httpd是否安装

    [root@centos7 ~]#rpm -q httpd
    package httpd is not installed

    安装httpd服务

    [root@centos7 ~]#yum install httpd -y
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    Resolving Dependencies
    --> Running transaction check
    ---> Package httpd.x86_64 0:2.4.6-67.el7.centos will be installed
    --> Processing Dependency: httpd-tools = 2.4.6-67.el7.centos for package: httpd-2.4.6-67.el7.centos.x86_64
    --> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-67.el7.centos.x86_64
    --> Running transaction check
    ---> Package httpd-tools.x86_64 0:2.4.6-67.el7.centos will be installed
    ---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ============================================================================
     Package           Arch         Version                    Repository  Size
    ============================================================================
    Installing:
     httpd             x86_64       2.4.6-67.el7.centos        base       2.7 M
    Installing for dependencies:
     httpd-tools       x86_64       2.4.6-67.el7.centos        base        87 k
     mailcap           noarch       2.1.41-2.el7               base        31 k
    
    Transaction Summary
    ============================================================================
    Install  1 Package (+2 Dependent packages)
    
    Total download size: 2.8 M
    Installed size: 9.6 M
    Downloading packages:
    ----------------------------------------------------------------------------
    Total                                          5.3 MB/s | 2.8 MB  00:00     
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : httpd-tools-2.4.6-67.el7.centos.x86_64                   1/3 
      Installing : mailcap-2.1.41-2.el7.noarch                              2/3 
      Installing : httpd-2.4.6-67.el7.centos.x86_64                         3/3 
      Verifying  : httpd-2.4.6-67.el7.centos.x86_64                         1/3 
      Verifying  : mailcap-2.1.41-2.el7.noarch                              2/3 
      Verifying  : httpd-tools-2.4.6-67.el7.centos.x86_64                   3/3 
    
    Installed:
      httpd.x86_64 0:2.4.6-67.el7.centos                                        
    
    Dependency Installed:
      httpd-tools.x86_64 0:2.4.6-67.el7.centos   mailcap.noarch 0:2.1.41-2.el7  
    
    Complete!

    启动httpd,并设置开机自启动

    [root@centos7 ~]#systemctl start httpd
    [root@centos7 ~]#systemctl enable httpd
    Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

    查看httpd状态

    [root@centos7 ~]#systemctl status httpd
    ● httpd.service - The Apache HTTP Server
       Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
       Active: active (running) since Tue 2019-07-23 02:28:22 CST; 58s ago
         Docs: man:httpd(8)
               man:apachectl(8)
     Main PID: 9052 (httpd)
       Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
       CGroup: /system.slice/httpd.service
               ├─9052 /usr/sbin/httpd -DFOREGROUND
               ├─9053 /usr/sbin/httpd -DFOREGROUND
               ├─9054 /usr/sbin/httpd -DFOREGROUND
               ├─9055 /usr/sbin/httpd -DFOREGROUND
               ├─9056 /usr/sbin/httpd -DFOREGROUND
               └─9057 /usr/sbin/httpd -DFOREGROUND
    
    Jul 23 02:28:21 centos7.localdomain systemd[1]: Starting The Apache HTTP ...
    Jul 23 02:28:21 centos7.localdomain httpd[9052]: AH00558: httpd: Could no...
    Jul 23 02:28:22 centos7.localdomain systemd[1]: Started The Apache HTTP S...
    Hint: Some lines were ellipsized, use -l to show in full.

    在httpd路径下创建yum仓库目录

    [root@centos7 ~]#mkdir -p /var/www/html/centos/{6,7}/os/x86_64/
    [root@centos7 ~]#tree /var/www/html/
    /var/www/html/
    └── centos
        ├── 6
        │   └── os
        │       └── x86_64
        └── 7
            └── os
                └── x86_64
    
    7 directories, 0 files

    把镜像挂载到仓库目录,并检查挂载情况

    [root@centos7 ~]#mount /dev/sr0 /var/www/html/centos/7/os/x86_64/
    mount: /dev/sr0 is write-protected, mounting read-only
    [root@centos7 ~]#df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/sda2       52403200 3995032  48408168   8% /
    devtmpfs          535296       0    535296   0% /dev
    tmpfs             550036       0    550036   0% /dev/shm
    tmpfs             550036    7960    542076   2% /run
    tmpfs             550036       0    550036   0% /sys/fs/cgroup
    /dev/sda3       31441920   35756  31406164   1% /data
    /dev/sda1        1038336  161620    876716  16% /boot
    tmpfs             110008      20    109988   1% /run/user/0
    /dev/sr0         8490330 8490330         0 100% /misc/cd
    tmpfs             110008       0    110008   0% /run/user/1000

    打开浏览器访问http://X.X.X.X/centos/7/os/x86_64

    编写repo文件

    [root@centos7 ~]#cat /etc/yum.repos.d/base.repo
    [base]
    name=base
    baseurl=http://192.168.30.104/centos/7/os/x86_64/
    gpgcheck=0

    清除旧缓存并创建新缓存

    [root@centos7 ~]#yum clean all
    Loaded plugins: fastestmirror, langpacks
    Cleaning repos: base
    Cleaning up everything
    Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
    Cleaning up list of fastest mirrors
    [root@centos7 ~]#yum makecache 
    Loaded plugins: fastestmirror, langpacks
    base                                                 | 3.6 kB     00:00     
    (1/4): base/group_gz                                   | 156 kB   00:00     
    (2/4): base/primary_db                                 | 5.7 MB   00:00     
    (3/4): base/filelists_db                               | 6.7 MB   00:00     
    (4/4): base/other_db                                   | 2.5 MB   00:00     
    Determining fastest mirrors
    Metadata Cache Created

    查看所有仓库

    [root@centos7 ~]#yum repolist 
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    repo id                             repo name                         status
    base                                base                              9,591
    repolist: 9,591

    安装软件测试

    [root@centos7 ~]#yum install tree -y
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    Resolving Dependencies
    --> Running transaction check
    ---> Package tree.x86_64 0:1.6.0-10.el7 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ============================================================================
     Package       Arch            Version                  Repository     Size
    ============================================================================
    Installing:
     tree          x86_64          1.6.0-10.el7             base           46 k
    
    Transaction Summary
    ============================================================================
    Install  1 Package
    
    Total download size: 46 k
    Installed size: 87 k
    Downloading packages:
    tree-1.6.0-10.el7.x86_64.rpm                           |  46 kB   00:00     
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : tree-1.6.0-10.el7.x86_64                                 1/1 
      Verifying  : tree-1.6.0-10.el7.x86_64                                 1/1 
    
    Installed:
      tree.x86_64 0:1.6.0-10.el7                                                
    
    Complete!

    创建yum仓库

    createrepo

    [root@centos7 ~]#cp /misc/cd/Packages/httpd-2.4.6-67.el7.centos.x86_64.rpm /data/
    [root@centos7 ~]#createrepo /data/
    Spawning worker 0 with 1 pkgs
    Spawning worker 1 with 0 pkgs
    Workers Finished
    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Generating sqlite DBs
    Sqlite DBs complete

    8、编写系统初始化脚本reset.sh,包括别名,提示符颜色,yum仓库配置问紧啊,安装tree、ftp、lftp、telnet等包

    [root@centos7 ~]#cat /root/bin/reset.sh 
    #!/bin/bash
    
    echo "Init system"
    sleep 1
    VERSION=`egrep -o "[0-9]" /etc/redhat-release | head -n 1`
    echo "Current system version is Centos $VERSION"
    
    echo "Start setting alias"
    sleep 1
    cat >> /root/.bashrc << END
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    alias cdnet='cd /etc/sysconfig/network-scripts/'
    alias ipconfig='ifconfig | egrep -o "<([[:digit:]]{1,3}.){3}[[:digit:]]{1,3}>" | head -n 1'
    END
    echo "Alias be ready"
    
    echo "Start setting SP1"
    sleep 1
    [ "$VERSION" -eq 7 ] && echo 'PS1="[e[1;36m][u@h W]\$[e[0m]"' >> /etc/profile.d/env.sh && source /etc/profile.d/env.sh && echo "SP1 be ready"
    # [ "$VERSION" -eq 6 ] && echo 'PS1="[e[1;32m][u@h W]\$[e[0m]"' >> /etc/profile.d/env.sh && source /etc/profile.d/env.sh && echo "SP1 be ready"
    
    echo "Start setting yum repo"
    sleep 1
    ls /meida/cdrom/ &> /dev/null || { mkdir /media/cdrom &> /dev/null ; mount /dev/sr0 /media/cdrom &> /dev/null }
    mkdir /etc/yum.repos.d/bak
    mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
    cat >> /etc/yum.repos.d/base.repo << END
    [base]
    name=CentOS "$VERSION"
    baseurl=file:///media/cdrom
    gpgcheck=0
    
    [epel]
    name=epel
    baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
    gpgcheck=0
    END
    echo "Yum repo be ready"
    
    echo "Start intalling rpms"
    sleep 1
    yum clean all && yum makecache &> /dev/null
    yum install tree ftp lftp telnet -y &> /dev/null
    echo "Tree, ftp, lftp, telnet already install"
    
    echo "Start stopping firewall"
    sleep 1
    [ "$VERSION" -eq 7 ] && `systemctl stop firewalld` && `systemctl disable firewalld` &> dev/null && echo "Firewall already stop"
    # [ "$VERSION" -eq 6 ] && `service iptables stop` && `chkconfig iptables off` && echo "Firewall already stop"
    
    echo "Init system over"

    9、在CentOS7上编译安装apache2.4源码包,并启动此服务

    安装Development Tools

    [root@centos7 ~]#yum groupinstall "Development Tools" -y

    安装apr-devel

    [root@centos7 ~]#yum install apr-devel -y

    安装apr-util-devel

    [root@centos7 ~]#yum install apr-util-devel -y

    安装pcre-devel

    [root@centos7 ~]#yum install pcre-devel -y

    创建/app目录

    [root@centos7 ~]#mkdir /app

    解压

    [root@centos7 ~]#tar xvf httpd-2.4.39.tar.bz2

    进入httpd目录并执行configure编译

    [root@centos7 ~]#cd httpd-2.4.39/
    [root@centos7 httpd-2.4.39]#./configure --prefix=/app

    安装

    [root@centos7 httpd-2.4.39]#make -j 8 && make install

    环境变量加上httpd路径

    [root@centos7 ~]#echo "PATH=/app/bin:$PATH" >> /etc/profile.d/env.sh 
    [root@centos7 ~]#. /etc/profile.d/env.sh

    启动httpd

    [root@centos7 ~]#apachectl start

  • 相关阅读:
    软工个人阅读作业3
    阅读作业2
    代码复审
    pair project elevator
    读《移山之道——VSTS软件开发指南》
    软件工程作业--词频统计
    个人阅读作业3
    个人阅读作业2
    代码复审
    结对项目电梯吐血总结
  • 原文地址:https://www.cnblogs.com/keith946/p/11223636.html
Copyright © 2011-2022 走看看