1、编写脚本实现传入进程PID,查看对应进程/proc下CPU、内存指标。

 #!/bin/bash
read -p "Input PID Value: " pid    #读取PID进程号
pid_exist=`ps aux|awk '{print $2}'|grep -w $pid`      #定义一个字符串,通过grep命令,显示当前查找所有用户所有程序并打印出来
if [ ! $pid_exist ];then    #如果pid不存在,然后
echo "$pid is not exist!!"              #输出pid is not exist!!
else                                #否则
echo "Memory Usage :"                 #输出内存使用情况
cat /proc/$pid/status | grep ^Vm         #通过grep命令进行精确查找用cat命令查看到/proc下pid进程物理内存使用状态
echo "Cpu Usage : "            #输出CPU使用情况
echo " PID LWP CPU% :"          #输出PID LWP CPU%情况
ps -eLo pid,lwp,pcpu | grep $pid      #使用grep命令筛选出用ps -eLo命令查看到的pid进程的pid,lwp,pcpu信息
fi                                 #结束

关于/proc/$PID/status中的各种参数表示意义,见此文章

2、编写脚本实现每分钟检查一个主机端口是否存活(提示使用nmap),如果检查到的端口不在线,sleep 10s,如果三次都不存在,记录到日志。

 #!/bin/bash
var1=`nmap 118.24.208.144`                                 #定义var1为一个主机IP
var2=`nmap 118.24.208.144 | grep ^[-] | awk '{print $2}'| wc -l`         #定义var2为一个主机IP,使用grep查看端口号,然后通过awk命令筛选第二列关键字,用wc命令统计数量
for i in {..}; do                                      #定义尝试次数i为1-3;然后
echo 'Execute '$i' times'                              #输出Execute 次数 时间
if [ $var2 -eq ];then                              #如果var2等于0,那么
sleep 1s                                    #休眠1秒
else                                          #否则
echo $var1 >> nmap.log                             #输出var1参数至nmap.log
fi                                          #
done                                               #脚本完成

3、编写脚本/root/bin/excute.sh ,判断参数文件是3否为sh后缀的普通文件,如果是,添加所有人可执行权限,否则提示用户非脚本文件

 #!/bin/bash
read -p "Please input a filename: " file      #使用read命令,接收来自键盘输入的file参数
if [[ $file =~ .*sh$ ]] ; then            #如果file文件名为.sh结束的文件,然后
if [ -f $file ] ; then            #-f 表示忽略不存在的文件,然后
chmod a+x $file           #文件存在,则给文件加x权限
echo "success"            #输出success
fi                        #
else                            #否则
echo '非脚本文件'               #输出非脚本文件
fi                            #

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

  login.sh

 #!/bin/bash
[ -f /date/nologin ] && (rm -f /data/nologin;echo " delete /data/nologin success") || echo "already can access"

  nolog.sh

 #!/bin/bash
[ -f /data/nologin ] && echo "already can not access"||(touch /data/nologin $$echo "create /data/nologin success")

5、编写脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第10个用户和第20个用户的ID之和

  #!/bin/bash
var1=`cat /etc/passwd | head -n10 | tail -n1 | cut -d: -f3`    #定义var1为/etc/passwd文件第10行的第三列字符串的值
var2=`cat /etc/passwd | head -n20 | tail -n1 | cut -d: -f3`    #定义var2为/etc/passwd文件第20行的第三列字符串的值
let var3=var1+var2                             #使用let命令计算var1+var2=var3的值
echo "sumid: $var3"                            #输出sumid的结果

Linux入门-第七周的更多相关文章

  1. 20135302魏静静——linux课程第七周实验及总结

    linux课程第七周实验及总结 实验及学习总结 1. 编译链接的过程和ELF可执行文件格式(以hello为例) GNU编译系统编译源码: 首先,运行C预处理器(cpp),将.c文件翻译成.i文件——g ...

  2. Linux入门-第六周

    1.总结IP地址规划 IP地址的合理规划是网络设计中最重要的一环,在大型网络中必须对IP地址进行统一规划并得到实施.IP地址规划的好坏影响到网络路由协议算法的效率,影响到网络的性能,影响到网络的拓展, ...

  3. linux入门教程(七) linux系统用户以及用户组管理

    关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...

  4. Linux入门基础(七):Linux软件管理基础

    源代码形式 绝大多数开源软件都是直接以源代码形式发布 源代码一般会被打包成tar.gz的归档压缩文件 程序源代码需要编译成为二进制形式之后才能够运行 源代码基本编译流程 : ./configure 检 ...

  5. Linux入门-第五周

    1.磁盘lvm管理,完成下面要求,并写出详细过程: 1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv; ...

  6. Linux入门-第三周

    1.总结vim命令行模式常见快捷方式,以及vim查找,替换的方法 vim [options] [file ..] +# 打开文件后,让光标处于第#行的行首,(默认行尾) 举例vim +10 /etc/ ...

  7. Linux入门-第八周

    1.用shell脚本实现自动登录机器 #!/usr/bin/expectset ip 192.168.2.192set user rootset password rootspawn ssh $use ...

  8. linux作业--第七周

    1.解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔5分钟.防火墙命令为:iptables - ...

  9. Linux内核设计第七周 ——可执行程序的装载

    Linux内核设计第七周 ——可执行程序的装载 第一部分 知识点总结 一.预处理.编译.链接和目标文件的格式 1.可执行程序是怎么得来的 编译链接的过程 预处理阶段 gcc -E -o XX.cpp ...

随机推荐

  1. 09-----JS事件流的概念(重点)

    在学习jQuery的事件之前,大家必须要对JS的事件有所了解.看下文 时间的概念 HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件.页面的滚动事件onscroll等等,可以 ...

  2. FZU Problem 2238 Daxia & Wzc's problem

    Daxia在2016年5月期间去瑞士度蜜月,顺便拜访了Wzc,Wzc给他出了一个问题: Wzc给Daxia等差数列A(0),告诉Daxia首项a和公差d; 首先让Daxia求出数列A(0)前n项和,得 ...

  3. jquery checkbox点击选中,再点击取消选中

    if(n==1){ if($("#abs1").is(':checked')){ $("#abs1").prop("checked",fal ...

  4. Java获取系统信息(用户目录,临时目录等)

    java.version Java运行时环境版本 java.vendor Java运行时环境供应商 java.vendor.url Java供应商的 URL java.home Java安装目录 ja ...

  5. 现代java开发指南系列

    [翻译]现代java开发指南系列 [翻译]现代java开发指南 第一部分 [翻译]现代java开发指南 第二部分 [翻译]现代java开发指南 第三部分

  6. DataBinding初探 数据绑定的用法 ,import 集合类型,绑定的表达式,访问集合类型2

    数据绑定的用法 import语法   <data> <import type="android.view.view"/> </data>   如 ...

  7. 消息中间件之MQ详解及四大MQ比较

    一.消息中间件相关知识 1.概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一.当今市面上有很多主流 ...

  8. jstack的使用方法

    背景 记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高 ...

  9. agc015F - Kenus the Ancient Greek(结论题)

    题意 题目链接 $Q$组询问,每次给出$[x, y]$,定义$f(x, y)$为计算$(x, y)$的最大公约数需要的步数,设$i \leqslant x, j \leqslant y$,求$max( ...

  10. java网络编程—TCP(1)

    演示tcp的传输的客户端和服务端的互访. 需求:客户端给服务端发送数据,服务端收到后,给客户端反馈信息. 客户端: 1,建立socket服务.指定要连接主机和端口. 2,获取socket流中的输出流. ...