shell的应用程序:监视系统用户(详解)
来源:互联网 发布:40不惑50知天命60 编辑:程序博客网 时间:2024/06/05 16:58
unix的脚本--报告所有的登陆和注销情况详解
Logic
-------------------
get list of users(call it prev)//建立了一个在脚本运行时已登录用户的列表,并按照用户名进行排序
while true
sleep
get list of users(call it curr)
compare lists
in prev,not in curr->logout
int curr,not int prev->login
make prev=curr
repeat
——————————————————————————————————————————————————————————————
shell code
-----------------------
who | sort>prev //who命令输出用户列表,sort命令将列表作为输入读进,然后输出一个排序号的列表
//who | sort:告诉shell同时执行who和sort,将who的输出直接作为sort的输入
//sort>prev:告诉shell将sort的输出送至prev文件中。若此文件不存在,则创建此文件;若此文件存在,则替换其内容。
while true>prev //prev:前一个列表。curr:当前列表
sleep 60; //休眠一分钟
who|sort>curr // 脚本在文件curr中创建一个新的用户列表
echo"logged.out"
comm -13 prev curr //comm:比较两个排序过的列表,并将此三列打印出来,这里的每一列代表一个子集。
//比较两个文件可以得到三个子集:仅文件1有的行,仅文件2有的行,两者共有的行
//可以使用命令行选项来让结果只出现其中的任意一列或者二列。
//比如:comm -23 prev curr#删除第二列和第三列的=>仅显示prev中的内容;前一个列表中有而当前列表没有的登陆记录:注销的用户
//comm -13 prev curr#删除第二列和第三列的=>仅显示curr中的内容;当前列表中有而前一个列表中没有的登陆记录:新登陆用户
mv curr prev //将当前列表文件curr更名为prev并替换原来的prev
done
——————————————————————————————————————————————————————————————————
watch.sh脚本体现了三个重要的思路:
1.shell脚本的功能——与c语言比简单易用
2.软件工具的灵活性——每一个工具完成一项特定的、通用的功能
3.I/O重定向和管道的使用和作用
解释:
工具:指的是能够完成特定通用任务的功能的助手。
例如:man 可以查询关键词的用法;kill可以管理进程;
sort工具的作用是:从一个数据流中读取字节,再将结果输出到另一个流中,同时若有错误发生,则将错误报告给第三个流。
参考网站:http://blog.sina.com.cn/s/blog_54447c9001009j3w.html
- shell的应用程序:监视系统用户(详解)
- Activity监视应用程序的启动
- 监视模块启动的SHELL
- Delphi应用程序的调试(三)监视变量
- Android 编程下监视应用程序的启动
- 完美监视你的应用程序--Xamarin洞察
- Android 编程下监视应用程序的启动
- Shell写的一个进程监视脚本
- VC++实现监视系统的键盘操作(1)
- 用户空间审计系统应用程序
- Windows下的强力系统监视工具.
- 基于udp的监视系统示例
- linux系统的CPU和memory监视
- shell中curl 用户详解
- shell中curl 用户详解
- 在应用程序中监视剪贴板的变化和内容
- 在Java应用程序中监视CPU的使用
- 在Java应用程序中监视CPU的使用
- 面向程序员的数据库访问性能优化法则
- javascript判断文本语言类型
- RobotFramework & Selenium2Library 安装指南
- GPS Camera网络相机
- 设计模式:工厂方法模式
- shell的应用程序:监视系统用户(详解)
- Android静态注册内部类广播BroadcastReceiver
- ant 打包生成APK与eclipse打包生成APK比较
- ZOJ-1029(POJ-1083、HDU-1050) Moving Tables
- MySQL 存储过程的基本用法
- Memaker model relationship
- DSR on Openstack POC
- AMQP
- tmux 初体验