zoukankan      html  css  js  c++  java
  • Linux入门-第七周

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

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

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

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

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

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

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

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

      login.sh

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

      nolog.sh

    1 #!/bin/bash
    2 [ -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之和

    1  #!/bin/bash
    2  var1=`cat /etc/passwd | head -n10 | tail -n1 | cut -d: -f3`    #定义var1为/etc/passwd文件第10行的第三列字符串的值
    3  var2=`cat /etc/passwd | head -n20 | tail -n1 | cut -d: -f3`    #定义var2为/etc/passwd文件第20行的第三列字符串的值
    4  let var3=var1+var2                             #使用let命令计算var1+var2=var3的值
    5  echo "sumid: $var3"                            #输出sumid的结果
  • 相关阅读:
    Papervision3D Essentials中文版,附Papervision3D_2.1.920.swc和章节练习源码
    谷歌Chrome浏览器上安装调试(debugger)版本的Flash Player
    Flash运行时错误代码解释说明
    XML
    Android手机与电脑互通
    mysql
    j2ee
    Linux
    C_obj
    maven
  • 原文地址:https://www.cnblogs.com/061713xlhj/p/10809094.html
Copyright © 2011-2022 走看看