脚本应用思路

1. 确定命令操作(设计并执行任务)

2. 编写Shell脚本(组织任务过程)

3. 设置计划任务(控制时间,调用任务脚本)

---------------------------------------------

实战-1、实现管理员在登录系统时显示如下信息

1)当前运行的进程数量

2)当前系统的登录用户的数量

3)当前使用的磁盘根分区的使用情况

操作过程如下图:

注意:也可修改/etc/profile配置文件,实现开机运行

脚本源码如下:

#!/bin/bash
# welcome information for login
#
# Print below information:
# 1. The total number of processes.
# 2. The totla number of users who logged in.
# 3. The used status of disk.

echo "##########     Welcome!     ##########"
# 1. The total number of processes.
echo "The total number of processes is $(ps -aux | wc -l)."

# 2. The totla number of users who logged in.
echo "The totla number of users who logged in is $(who | wc -l)."

# 3. The used status of disk.
echo "The used status of disk is $(df -hT | grep root | awk '{print $6}')."

---------------------------------------------

实战-2、编写脚本实现系统服务启动 停止 当前状态的脚本

#!/bin/bash
#service manager script
# status start stop restart

if [ $1 = 'start' ] #start server of $2
    then systemctl start $2 2>>server.logs
elif [ $1 = 'stop' ]  #stop server of $2
    then systemctl stop $2 2>>server.logs
elif [ $1 = 'status' ]  #status server of $2
    then systemctl status $2 2>>server.logs
elif [ $1 = 'restart' ]  #restart server of $2
    then systemctl restart $2 2>>server.logs
fi

---------------------------------------------

实战-3、写运行状况监控脚本

/sh/monitor.sh,用于记录CPU负载、内存和交换空间、磁盘空间、最近的用户登录情况等信息,以及当时的时间信息。

#!/bin/bash
#back monitor CPU Mem Swap Disk LastLogin information to file

# set recored Dir
Dir=/var/log/runrec/

# prepare the environment
mkdir -p $Dir

# get current time
RecTime=$(date +"%Y-%m-%d %H:%M")

# set record filename
RecFile=$Dir$RecTime.log

# get CPU
RecLoad=$(uptime)

# get Mem and Swap
RecMem=$(free -m)

# get Disk
RecDisk=$(df -hT)

# get Last
RecLastLogin=$(last -n 20)

# echo information and saved to RecFile
echo "######################################
Cpu Load information:$RecLoad
Memory information:$RecMem
Disk Usage information:$RecDisk
Last Login 20 users record:$RecLastLogin" >> $RecFile

设置定时备份:

---------------------------------------------

实战-4、过滤出本机echo网卡的MAC地址,并赋值给hwaddr

[root@xiaogan121 sh]# ifconfig | grep ether | awk '{ print $2 }'
00:0c:29:af:03:b2
00:0c:29:af:03:bc
52:54:00:83:20:8c
[root@xiaogan121 sh]# ip=$(ifconfig | grep ether | awk '{ print $2 }')
[root@xiaogan121 sh]# echo $ip
00:0c:29:af:03:b2 00:0c:29:af:03:bc 52:54:00:83:20:8c
[root@xiaogan121 sh]#

---------------------------------------------

实战-5、编写脚本计算当前的内存使用百分比

MemTotal=$(free -m | grep Mem | awk '{ print $2 }')

MemUse=$(free -m | grep Mem | awk '{ print $3 }')

usage=$( expr $( expr  $MemUse \* 100 ) / $MemTotal  )

[root@xiaogan121 sh]# usage=$( expr $( expr $(free -m | grep Mem | awk '{ print $3 }') \* 100 ) / $(free -m | grep Mem | awk '{ print $2 }') )
[root@xiaogan121 sh]# echo $usage
31
[root@xiaogan121 sh]# free -m | grep Mem | awk '{ print $3 }'
311
[root@xiaogan121 sh]# free -m | grep Mem | awk '{ print $2 }'
977
[root@xiaogan121 sh]# free -m
              total        used        free      shared  buff/cache   available
Mem:            977         312         292           7         373         474
Swap:          2047           0        2047
[root@xiaogan121 sh]#

---------------------------------------------

实战-6、计算3 4 的平方和

 

1-22-shell脚本基本应用-实验手册的更多相关文章

  1. Miniconda 安装 & Pip module 安装 & Shell 脚本调用 Miniconda 虚拟环境手册(实战项目应用)

    (实战项目应用) 1. 下载Miniconda 两个安装方式: 方式1:wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Min ...

  2. Shell脚本编程总结及速查手册

    Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算符/if语句/循环控制/… 但在开始之前, 我想先理清Shell语言与Shell之间的关系. ...

  3. 让你提前知道软件开发(22):shell脚本文件操作

    文章1部分 再了解C语言 shell脚本中的文件操作 [文章摘要] 编写shell脚本时,经常会涉及到对文件的操作,比方从文件里读取一行数据.向文件追加一行数据等. 完毕文件读写操作的方法有非常多,了 ...

  4. Linux编程 22 shell编程(输出和输入重定向,管道,数学运算命令,退出脚本状态码)

    1. 输出重定向 最基本的重定向是将命令的输出发送到一个文件中.在bash shell中用大于号(>) ,格式如下:command > inputfile.例如:将date命令的输出内容, ...

  5. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---22

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  6. 2019.11.13课堂实验之用Linux下的shell脚本完成两文本交替输出

    有两个文本如下,实际中并不知道两文本各有多少行: 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccc ...

  7. 实验五:shell脚本编程

    项目 内容 这个作业属于哪个课程 班级课程的主页链接 这个作业的要求在哪里 作业要求链接地址 学号-姓名 17043133-木腾飞 作业学习目标 1.了解shell 脚本的概念及应用2.掌握shell ...

  8. 实验五 shell脚本编程

    项目 内容 这个作业属于哪个课程 课程链接 这个作业的要求在哪里 作业要求 学号-姓名 17041428-朱槐健 作业学习目标 1. 了解shell脚本的概念及使用 2.掌握shell脚本语言的基本语 ...

  9. 实验五shell脚本编程

    项目 内容 这个作业属于哪个课程 <班级课程的主页链接> 这个作业的要求在哪里 作业要求链接地址 学号-姓名 17043220-万文文 作业学习目标 1)了解shell脚本的概念及使用.2 ...

随机推荐

  1. MongoDB简单CRUD场景

    MongoDB简单CRUD命令操作 (1)新建数据库:use 数据库名 (2)显示所有数据库:show dbs; (3)新建集合(两种方式)  隐式创建:在创建集合的同时往集合里面添加数据---db. ...

  2. C++实现去掉string字符串前后的空白字符

    C++标准库提供的字符串类string没有提供类似CString中Trim方法,该方法功能为去除字符串前后的空白字符.利用string自身一些方法可以很容易实现该功能. 如下: void Trim(s ...

  3. C++学习笔记-隐式成员函数

    通过一个例子来复习C++操作符重载及隐式成员函数.MyString类模仿标准string类,简单的实现了构造一个字符串.字符串比较.取单个字符等功能.如下: #ifndef MYSTRING_H_ # ...

  4. java通过URL获取文本内容

    原文地址https://www.cnblogs.com/myadmin/p/7634262.html public static String readFileByUrl(String urlStr) ...

  5. 一步一步学EF系列一【最简单的一个实例】

    整个文章我都会用最简单,最容易让人理解的方式给大家分享和共同学习.(由于live Writer不靠谱 又得补发一篇) 一.安装 Install-Package EntityFramework 二.简单 ...

  6. 如何注册iClap账号?

    iClap是一个以产品为基础,集成员工日常所需工具,打通项目工作流程,实现员工自我工作管理.项目管理和企业管理三个体系协同的管理规范系统. 工具/原料 iPhone/Android/浏览器 Teamb ...

  7. spark[源码]-任务调度源码分析[三]

    前言 在上一篇文章中,我主要是讲解了DAG阶段的处理,spark是如何将一个job根据宽窄依赖划分出多个stage的,在最后一步中是将生成的TaskSet提交给了TaskSchedulerInmpl的 ...

  8. Druid学习之路 (四)Druid的数据采集格式

    作者:Syn良子 出处:https://www.cnblogs.com/cssdongl/p/9715735.html 转载请注明出处 Druid的数据采集格式 Druid可以采集非标准化的数据诸如J ...

  9. iOS 所有设备一览 && CoreFoundation源码

    1. 所有设备一览 https://en.wikipedia.org/wiki/List_of_iOS_devices 2. CoreFoundation源码(可以看看runloop.runtime的 ...

  10. java 加密解密

    https://www.cnblogs.com/kingsleylam/category/752546.html <java加密与解密艺术>代码可抄袭.