Linux入门-第七周
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入门-第七周的更多相关文章
- 20135302魏静静——linux课程第七周实验及总结
linux课程第七周实验及总结 实验及学习总结 1. 编译链接的过程和ELF可执行文件格式(以hello为例) GNU编译系统编译源码: 首先,运行C预处理器(cpp),将.c文件翻译成.i文件——g ...
- Linux入门-第六周
1.总结IP地址规划 IP地址的合理规划是网络设计中最重要的一环,在大型网络中必须对IP地址进行统一规划并得到实施.IP地址规划的好坏影响到网络路由协议算法的效率,影响到网络的性能,影响到网络的拓展, ...
- linux入门教程(七) linux系统用户以及用户组管理
关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...
- Linux入门基础(七):Linux软件管理基础
源代码形式 绝大多数开源软件都是直接以源代码形式发布 源代码一般会被打包成tar.gz的归档压缩文件 程序源代码需要编译成为二进制形式之后才能够运行 源代码基本编译流程 : ./configure 检 ...
- Linux入门-第五周
1.磁盘lvm管理,完成下面要求,并写出详细过程: 1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv; ...
- Linux入门-第三周
1.总结vim命令行模式常见快捷方式,以及vim查找,替换的方法 vim [options] [file ..] +# 打开文件后,让光标处于第#行的行首,(默认行尾) 举例vim +10 /etc/ ...
- Linux入门-第八周
1.用shell脚本实现自动登录机器 #!/usr/bin/expectset ip 192.168.2.192set user rootset password rootspawn ssh $use ...
- linux作业--第七周
1.解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔5分钟.防火墙命令为:iptables - ...
- Linux内核设计第七周 ——可执行程序的装载
Linux内核设计第七周 ——可执行程序的装载 第一部分 知识点总结 一.预处理.编译.链接和目标文件的格式 1.可执行程序是怎么得来的 编译链接的过程 预处理阶段 gcc -E -o XX.cpp ...
随机推荐
- 练习六:斐波那契数列(fibonacci)
题目:斐波那契数列. 程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……. 在数学上,斐波那契数列 ...
- HDU 2586——How far away ?——————【LCA模板题】
How far away ? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 修改response,报错Cannot call getWriter(), getOutputStream() already called
往response里面改数据,然后系统报这个错 此时直接return null即可解决 但是,要想返回相应的页面呢? 可以直接在response里设置返回的页面
- C#中接口的深入浅出【转】
C#中接口的深入浅出 假设我们公司有两种程序员:VB程序员,指的是用VB写程序的程序员,用clsVBProgramer这个类表示:Delphi程序员指的是用Delphi写程序的程序员,用clsDelp ...
- 开始使用JQuery 方法
使用jQuery需要3个基本步骤: 1. 下载jQuery.js并保存在网页可以存取的位置.下载链接:dowload 2. 在HTML的head里引用jQuery.js 3. 运用jQuery的方法 ...
- HhashMap HashTable ConcurrentHashMap
hashMap hashTable concurrentHashMap hashMap的效率高于hashTable,hashMap是线程不安全的,并发时hashMap put方法容易引起死循环,导致c ...
- 初始html(常用标签)
今天我们来学习Web前端的一些知识,这一阶段需要记忆的东西相对来说比较多,需要花时间记忆以及做好练习. 一.HTML初识 1.web服务本质 import socket def main(): soc ...
- 零基础逆向工程24_C++_01_类_this指针_继承本质_多层继承
1 类内的成员函数和普通函数的对比 1.1 主要是从参数传递.压栈顺序.堆栈平衡来总结. 1.参数传递:成员函数多传一个this指针 2.压栈顺序:成员函数会将this指针压栈,在函数调用取出 3.堆 ...
- Oracle Hyperion Planning 11.1 .1:创建与管理应用程序 第1课:Planning概述
第1课:Planning概述 1.说明 Oracle Enterprise Performance Management system Oracle Enterprise Performance Ma ...
- 使用Python开发环境Wing IDE设立项目注意事项
使用Wing IDE的第一步是建立一个项目文件,这样Wing IDE就可以找到并分析源代码,存储工作. Wing IDE会自动以默认的项目进行启动.在本教程中用户也可以使用这个默认项目进行示例操作.如 ...