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

#!/bin/bash
echo "start backup"
sleep 2
date=`date "+%Y-%m-%d"`
cp -av /etc /root/etc$date
echo "backup finish"

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

#!/bin/bash
echo "disk use max :`df -h|grep ^/dev/[svm]d |tr -s " " "%"|cut -d% -f5|sort -rn|head -n1`"

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

login

#!/bin/bash
[ -f "/etc/nologin" ] && rm -rf /etc/nologin && echo "User Can Login" ||echo "User Already Login" nologin
#!/bin/bash
[ -f "/etc/nologin" ] && echo "Other User Cannot Login System" ||{ touch /etc/nologin; echo "Other User Cannot Login System"; }

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

find /var -not \( -user root -o -user lp -o -user gdm \)

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

sed -r "s/[^[:alpha:]]+/\n/g" /etc/init.d/functions | sed "/^$/d" |sort|uniq -c

egrep -o "[[:alpha:]]+" /etc/init.d/functions|sort|uniq -c

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

ifconfig | sed -n "2p" |sed -r "s/.*inet (.*) netmask.*/\1/g"

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

yum install 安装
yum groupinstall 组安装
yum remove 卸载
yum groupremove 组卸载
yum list 显示所有包
yum clean all 清除缓存
yum makecache 建立缓存 yum仓库目录/etc/yum.repos.d/
[base]
name=base
baseurl=http:// ftp:// file:///
gpgcheck=1
enabled=1

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

#!/bin/bash
#
#********************************************************************
#Author: DreamDZhu
#QQ: 852749070
#Date: 2019-01-30
#FileName: autoInitSystem.sh
#Description: AutoInitSystem
#********************************************************************
#decide current system os
echo "Start Init System,Please Waiting Some Time~~"
sleep 2
version=`egrep -o "[0-9]" /etc/redhat-release |head -n1`
echo "Current System Version is Centos $version"
echo "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 IPOUT='ifconfig | egrep -o "\<([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}\>" | head -1'
alias p='poweroff'
alias cl='clear'
`if [ "$version" -eq 7 ];then
ps1="\[\e[1;36m\][\u@\h \W]\$\[\e[0m\]"
elif [ "$version" -eq 6 ];then
ps1="\[\e[1;33m\][\u@\h \W]\$\[\e[0m\]"
else
ps1="\[\e[1;35m\][\u@\h \W]\$\[\e[0m\]"
fi`
PS1=$ps1
END
echo "Alias and PS1 be Ready~"
echo "Start Setting Yum Repository..."
sleep 1
#mount cd rom
mkdir /media/cdrom
mount /dev/sr0 /media/cdrom
mkdir /etc/yum.repos.d/bak
#move system Centos repo
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
cat >>/etc/yum.repos.d/bash.repo<<END
[base]
name=Centos "$version"
baseurl=file:///media/cdrom
gpgcheck=0 [epel]
name=Aliyun
baseurl=https://mirrors.aliyun.com/epel/$version/x86_64
gpgcheck=1
gpgkey=file:///media/cdrom/RPM-GPG-KEY-CentOS-$version
END
echo "Yum Repo be Ready~"
echo "Start Install Rpms"
sleep 1
yum cleanall && yum makecache
yum -y install tree && yum -y install ftp && yum -y install lftp && yum -y install telnet
echo "tree ,ftp,lftp,telnet already Install~"
if [ $version -eq 7 ];then
systemctl stop firewalld
systemctl disable firewalld
elif [ $version -eq 6 ];then
service iptables stop
chkconfig iptables off
else
echo "Please Manual Stop Firewall"
echo "Init System Over"

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

./configure --help 可以查看这个程序源码的可改编译选项

解压四个包
tar xvf apr-1.4.5.tar.gz
tar xvf apr-util-1.3.12.tar.bz2
tar xvf httpd-2.4.33.tar.bz2
tar xvf pcre-8.10.tar.gz 先编译apr依赖包
mkdir -p /usr/local/apr
cd /data/apr-1.4.5/
./configure --prefix=/usr/local/apr
make -j 2 && make install 再编译apr-util
mkdir -p /usr/local/apr-util
cd apr-util-1.3.12/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
make -j 2 && make install 编译安装pcre依赖包
mkdir -p /usr/local/pcre
cd /data/pcre-8.10/
./configure --prefix=/usr/local/pcre
make -j 2 && make install 最后编译安装http
mkdir /app
mkdir /etc/httpd24
./configure --prefix=/app --sysconfdir=/etc/httpd24 --enable-ssl --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util (--disable-proxy)
make -j 4 && install 由于我们安装在app,所以需要手动开启,或者配置PATH
/app/bin/apachectl start 安装时要注意配置文件的路径!!!
编译错误解决
基于Make工具编译软件; n Make编译报错信息如下: mod_proxy_balancer.c:25:24: fatal error: apr_escape.h: No such file or directory,#include "apr_escape.h" `/data/sh/20180330/httpd-2.4.33/modules/proxy' make[2]: *** [shared-build-recursive] Error 1 解决方法:
l 跳过该错误,后期指定该模块,一般安装不成功,推荐解决该问题;
l 或者编译参数可以去掉该模块,禁止该模块,添加--disable-proxy;
l 更换软件版本,考虑到操作系统和软件兼容性问题;

shell 练习题 - 第三周的更多相关文章

  1. # 2019-2020-3 《Java 程序设计》第三周总结

    2019-2020-3 <Java 程序设计>第三周知识总结 1.类的定义 语法格式如下(加[]表示可选项): [修饰符] class 类名 { 属性定义(声明) 方法定义(声明)} 2. ...

  2. 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...

  3. linux内核分析第三周

    20135103王海宁 linux内核分析第三周 http://mooc.study.163.com/course/USTC-1000029000  按照课堂提供的方法,命令行一行行敲上去,我是手机缓 ...

  4. 《Linux内核分析》第三周学习报告

    <Linux内核分析>第三周学习报告                                    ——构造一个简单的Linux系统MenuOS 姓名:王玮怡  学号:201351 ...

  5. 《Linux内核分析》第三周学习小结 构造一个简单的Linux系统OS

    郝智宇 无转载 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第三周 构造一个简单的Linux系统Me ...

  6. 《Linux内核分析》第三周学习笔记

    <Linux内核分析>第三周学习笔记 构造一个简单的Linux系统MenuOS 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.stud ...

  7. LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS

    LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163. ...

  8. 《Linux内核分析》 第三周 构造一个简单的Linux系统MenuOS

    Linux内核分析 第三周 构造一个简单的Linux系统MenuOS 张嘉琪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...

  9. Linux内核分析——第三周学习笔记20135308

    第三周 构造一个简单的Linux系统MenuOS 计算机三个法宝: 1.存储程序计算机 2.函数调用堆栈 3.中断 操作系统两把宝剑: 1.中断上下文的切换:保存现场和恢复现场 2.进程上下文的切换 ...

随机推荐

  1. MySQL server has gone away和Maximum execution time of 120 seconds exceeded

    今天在写采集时碰到两个问题1.MySQL server has gone away2.Maximum execution time of 120 seconds exceeded 采集程序写好运行大概 ...

  2. PAT甲级——1111 Online Map (单源最短路经的Dijkstra算法、priority_queue的使用)

    本文章同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90041078   1111 Online Map (30 分) ...

  3. ios Realm的使用 本地数据存储

    引入需要的文件 pod 'RealmSwift' pod 'Realm' 然后在命令行使用 (首先应该cd到项目的根目录)输入 pod install 等待下载就行了(这个下载有点费劲,其他的插件包下 ...

  4. 1.检索数据 ---SQL

    相关提示: 结束SQL语句 多条SQL语句必须以分号(:)分隔.多数DBMS不需要在单条SQL语句后加分号,但也有DBMS可能必须在单条SQL语句后加上分号.当然,如果愿意可以总是加上分号.事实上,即 ...

  5. ES6新特性使用小结(六)

    十三.promise 异步编程 ①.使用 promise 模拟异步操作 { //ES5 中的 callback 解决 异步操作问题 let ajax = function (callback) { c ...

  6. SpringBoot整合Redis使用Restful风格实现CRUD功能

    前言 本篇文章主要介绍的是SpringBoot整合Redis,使用Restful风格实现的CRUD功能. Redis 介绍 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-valu ...

  7. VS连接Access数据库--连接字符串及执行查询语句的方法(增删改查,用户名查重,根据用户获取密码查询)

    ACCESS数据的连接及语句执行操作,不难,久不用会生疏,每次都要找资料,干脆自己整理下,记录下来,需要的时候,直接查看,提高效率.也供初学者参考 1.连接字符串 public static stri ...

  8. Vue部分知识

    一.本尊建议的学习顺序:https://zhuanlan.zhihu.com/p/23134551(侵删) 二.安装: 1.安装 Node.js,可以去Node.js的官网上下载: 2.(非必选)如果 ...

  9. Java面向对象(继承、抽象类)

    面向对象 今日内容介绍 u 继承 u 抽象类 第1章 继承 1.1 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成 ...

  10. dubbo服务降级(2)

    dubbo降级服务 使用dubbo在进行服务调用时,可能由于各种原因(服务器宕机/网络超时/并发数太高等),调用中就会出现RpcException,调用失败. 服务降级就是指在由于非业务异常导致的服务 ...