script学习,如何用linux监控你的同事?
環(huán)境:CentOS7
一、為什么要學(xué)習(xí)script命令
當(dāng)你在終端或控制臺(tái)上工作時(shí),你想記錄下自己做了些什么嗎?當(dāng)你跟一些Linux管理員同時(shí)在系統(tǒng)上干活,你想知道別人干了什么嗎?當(dāng)你讓別人遠(yuǎn)程到你的服務(wù)器,幫你解決問(wèn)題時(shí),你想學(xué)習(xí)別人的經(jīng)驗(yàn)嗎?當(dāng)你懷疑你的同事時(shí),你想監(jiān)控他干了什么嗎?或者想實(shí)現(xiàn)學(xué)生作業(yè)的完成證明,兩人遠(yuǎn)程或者說(shuō)異臺(tái)電腦的同步指導(dǎo)操作, 那么,你就可以使用script命令。二、 什么是script命令
script 是一個(gè)神奇命令,可以使用script工具記錄用戶(hù)在當(dāng)前終端的所有的操作,已經(jīng)輸出到屏幕的內(nèi)容。將這些信息保存到指定的文本文件中。? 也就是說(shuō),script命令在你需要記錄或者存檔終端活動(dòng)時(shí)可能很有用,記錄文件會(huì)存儲(chǔ)為文本文件,所以可以很方便地用文本編輯器打開(kāi)。 在使用script命令將終端的會(huì)話過(guò)程錄制下來(lái)之后,可以使用 scriptreplay將其錄制的結(jié)果播放給他人觀看。 script 的好處就在于你在終端中的所有操作、敲過(guò)的命令和打印出的結(jié)果它都可以原原本本地進(jìn)行錄制。可以應(yīng)用于教學(xué)、演示、審計(jì)。三、script命令的基本用法操作
選項(xiàng):
-a, --append??????????? 附加輸出
-c, --command <command> 運(yùn)行命令而不是交互式shell
-e, --return??????????? 返回子進(jìn)程的退出代碼
-f, --flush???????????? 每次寫(xiě)入后運(yùn)行flush--force???????????? 使用輸出文件,即使它是一個(gè)鏈接
-q, --quiet???????????? 可以使script命令以靜默模式運(yùn)行-t, --timing[=<file>]?? 指明輸出錄制的時(shí)間數(shù)據(jù)
-V, --version?????????? 輸出版本信息并退出
-h, --help?????????????
顯示此幫助并退出終端會(huì)話錄制。
script -t 2>demo.time -a demo.his?? #開(kāi)始錄像,ctrl+d或者exit結(jié)束2>? 完整輸出demo.time 對(duì)時(shí)間線的記錄demo.his? 對(duì)操作命令等內(nèi)容的記錄scriptreplay demo.time demo.his
四、實(shí)例,玩轉(zhuǎn)script
1.情景一:自己想記錄自己輸入的命令,用于教學(xué)或者想實(shí)現(xiàn)學(xué)生作業(yè)的完成證明
##開(kāi)始錄像,直接輸入命令回車(chē)就好,其中-t用于存儲(chǔ)時(shí)序文件,這里導(dǎo)入到stderr,再重定向到test.time中,-q表示靜默的方式,-a追加到test.his中,-f除了看視頻回放還可以看日志,主要用于教學(xué)
##注意事項(xiàng):必須是以exit 和ctrl+d結(jié)束,不然就會(huì)破壞時(shí)間線的記錄,那只能看日志記錄
[root@uplooking /tmp/liu]# script -t 2>test.time -q -a -f test.his
##回放視頻,通過(guò)ls可以查看有兩個(gè)文件
[root@uplooking /tmp/liu]# ls
test.his? test.time
##回放視頻,test.time 對(duì)時(shí)間線的記錄,test.his? 對(duì)操作命令等內(nèi)容的記錄,而且這兩個(gè)文件很小,可以拷貝到需要播放的機(jī)器上進(jìn)行播放。
[root@uplooking /tmp/liu]# scriptreplay test.time test.his
##也可以查看日志記錄
[root@uplooking /tmp/liu]# cat test.his
?
2.情景二:想知道你的同事在做什么
?##在對(duì)方家目錄.bash_profile文件中加上下面內(nèi)容,有些人會(huì)說(shuō)我可以看他家目錄的.history文件啊,但注意這個(gè)文件只要不是正常下線的都不會(huì)記錄,而且只能看命令,不能看命令輸出結(jié)果,就是回顯?
##變量是定義文件存放的位置和每次時(shí)間,并且只要他一登陸就會(huì)自動(dòng)錄像,exec就是防止他發(fā)現(xiàn)kill掉自己的進(jìn)程,只要kill掉,他的終端就會(huì)掉線
m_path1=/data/mon/`date +%F-%H:%M`.time
m_path2=/data/mon/`date +%F-%H:%M`.his
exec script -t 2>$m_path1 -a -f -q $m_path2
?3.情景三:我想實(shí)現(xiàn)想監(jiān)控誰(shuí)就監(jiān)控誰(shuí),不想監(jiān)控就取消,那說(shuō)的就是下面這個(gè)腳本啦
#!/bin/bash ## 描述:可以對(duì)某個(gè)用戶(hù)實(shí)施錄像,并且回放,可以實(shí)施進(jìn)行教學(xué) ## 作者:小劉 ## 聯(lián)系方式:xiaoli@qq.com ## TEL:13777773695 ## 版本:V_1.0 ## 注意錄制視頻時(shí),時(shí)間不要太長(zhǎng),不然內(nèi)存和磁盤(pán)占用空間大 read -p "請(qǐng)輸入你要錄像的用戶(hù):" user ##判斷用戶(hù)是否存在,如果不存在則退出 id $user &>/dev/null if [ $? -ne 0 ] then echo "$user不存在" exit 1 fi ##判斷用戶(hù)是否已經(jīng)被錄像 m_user(){path="/home/$user/.bash_profile"num=`cat $path |grep '\<script\>' |wc -l`if [ $num -eq 1 ]thenecho "$user已經(jīng)被錄像"exitfi } ##對(duì)用戶(hù)實(shí)施錄像 m_mon(){path="/home/$user/.bash_profile"chattr +a $pathecho "m_path1=/data/mon/\`date +%F-%H:%M\`.time" >>$pathecho "m_path2=/data/mon/\`date +%F-%H:%M\`.his" >>$pathecho "script -t 2>\$m_path1 -a -f -q \$m_path2" >> $pathecho "正在實(shí)施錄像....."} ##取消錄像 m_cancael(){path="/home/$user/.bash_profile"chattr -a $pathsed -i '/\<script\>/ozvdkddzhkzd' $pathsed -i '/\<m_path1\>/ozvdkddzhkzd' $pathsed -i '/\<m_path2\>/ozvdkddzhkzd' $pathsed -i '/\<'$user'\>/ozvdkddzhkzd' /root/mon_user.txtecho "正在實(shí)施取消錄像....."read -p "實(shí)施錄像請(qǐng)按:y 取消錄像請(qǐng)按:n 查詢(xún)被錄像用戶(hù)請(qǐng)按q:" yes case $yes in y) m_user m_mon echo "$user" >> /root/mon_user.txt ;; n) m_cancael ;; q) cat /root/mon_user.txt ;; *) echo "error:input error" exit 1 esac
?
轉(zhuǎn)載于:https://www.cnblogs.com/github-cn/p/11267891.html
總結(jié)
以上是生活随笔為你收集整理的script学习,如何用linux监控你的同事?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 消息队列之常见问题
- 下一篇: Linux下C语言编程-进程的创建