欢迎您来到悍铭数据中心,开始互联网之旅!

新闻中心

BSD家族大观 --1. FreeBSD

 Swatch - simple watcher 

◎安装 
更新相关档案(cvsup) 
/usr/ports/security/swatch # make install 
/usr/ports/security/swatch # make clean 

◎语法 
swatch 
[ --config-file file ] [ --restart-time time ] 
[--input-record-separator regex ] 
[ [ --examine file_to_examine ] | [ --read-pipe program_to_pipe_from ] | [ --tail file_to_tail ] ] 
[ --daemon ] 

◎swatch叙述: 
Swatch是被设计用来监视系统动作的程式。 
为了要让Swatch能够更加的强大,他需要一个用以比对的设定档。 

◎命令列的参数: 
--config-file=filename or -c filename 
此参数告诉swatch到哪里去寻找他的设定档案。 
预设值是放在${HOME}/.swatchrc 。 

--help 
显示使用说明。 

--input-record-separator=regular_expression 
此参数告诉swatch使用规则表示式来描绘每笔记录的边界。 
预设值是return。 

--restart-time=[ ]hh:mm[am|pm] or -r [ ]hh:mm[am|pm] 
在特定的时间之後重新启动,hh代表小时,mm代表分钟。 
若am/pm被省略,则使用24小时制。 
若时间前加有" "这个符号,则代表从新启动时间为, 
从目前时间再加上特定时间,此时am/pm会被忽略。. 

--script-dir=/path/to/directory 
这个参数将产生的暂存script档案存放到特定的资料夹, 
而不是使用者的家目录之下。 
强烈建议,您不要使用别的使用者也有权限写入的资料夹, 
举例来说/tmp。 

--version or -V 
显示版本资讯。 

以下的参数,不能并存,只能选择其一执行。 

--tail-file=filename or -t filename 
当他们被附加到某一档案时,以行为单位检视文字档案。 

--read-pipe=command or -p command 
从命令检视输入。 

--examine=filename or -f filename 
将filename视为检视档案来检视。swatch将会进行一个个别检视经由这个档案。 

以下的参数纯粹用於除错过程,但是为了完整性仍将其列出。 

--dump-script[=filename] 
当watcher script产生时,不执行之反而将其写入到一个档案或者到标准输出。 

若swatch在无参数状态执行,如同加入下列参数执行。 

swatch --config-file=~/.swatchrc --tail- 
file=/var/log/syslog 

若 /var/log/messages 存在,则 

swatch --config-file=~/.swatchrc --tail- 
file=/var/log/messages 

若设定档不存在,以下的设定则被使用。 

watchfor /.*/ 
echo modes=random 

搜寻比对档案中所有以.*开头的行 
并且用随机模式显示色彩型态。 

◎设定档说明: 
这个设定档由swatch(8)程式去界定什麽型态的表达样式需要被搜寻比对。 

每一行需包含一个关键字及一个关键字的值(有时是选择性的)。 
关键字及其值,以一个空白键或等号"="分隔。 

watchfor regex 

ignore regex 

echo [modes] 
以何种颜色显示符合的行。 
这些模式能在xterm上显示,其中Normal(正常字)是预设值。 
可用的值: 
normal(正常字),bold(粗体), underscore(底线), blink(闪烁), inverse(倒反), 
black(黑), red(红), green(绿),yellow(黄), blue(蓝), magenta(品红), 
cyan(青绿), white(白), black_h, red_h,green_h, yellow_h, 
blue_h, magenta_h, cyan_h,white_h. 
_h表示高亮度色彩。 

bell [N] 
显示符合的行,并且送出N次的响声。(预设值为1次) 

exec command 
执行某命令。这个命令可能包含变因(取代符合的行)。 
$N 将会取代在符合行中的第N个field。 
$0 或 $* 将会完全取代符合行。 

mail [addresses=address:address:...][,subject=your_text_here] 
当内容符合时,送出邮件给这些邮件位置的人。 
预设的邮件收件人为执行此程式的使用者。 

pipe command[,keep_open] 
将符合内容导为命令,使用keep_open参数来强制执行, 
直到另一个导管被执行或swatch结束。 

write [user:user:...] 
将符合内容以write方式来通知使用者。 

throttle hours:minutes:seconds,[use=message|regex] 
使用这个参数来限制产生符合样式的次数。 

use=regex参数造成throttling以规则表示式为基础,而不是message 
(预设值为use=message) 

continue 
使用这个参数会让swatch在完成目前比对之後, 
继续尝试去比对其他样式。 

quit 
使用这个参数会使swatch立刻清除并结束。 

◎特别参数 
此参数可以用在上面任何一个参数。 

when=day_of_week:hour_of_day 

此参数定义,视窗的时间及日期,此时动作被执行。 
举例说明: 

mail=sysad-pager@somehost.somedomain,when=1-6:8-17 

◎设定档举例: 
watchfor /file system full/ 
echo 
bell 
throttle 01:00 

这个例子是一行包含"file system full"的字串,将会被显示及萤幕发出声响, 
多样的(合的)讯息例子将不会被显示, 
若他们出现时间与第一次出现时刻相距在一分钟之内。 
此参数可以避免有心人士利用swatch进行攻击... 

◎说明:虽然每个swatchrc只能记录一个日档,但您可以同时执行多个swatch ... 
swatch -c .swatchrc.01 
swatch -c .swatchrc.02 

◎执行状况: 
1.以纯粹的swatch命令 
$swatch

产生结果如下...最後我用ctrl c中断 您也可以用&背景执行。 


其中用紫色涂起来的表示个人帐号与swatch无关故省略 
很明显可以看到因为我没有设定任何设定档 
所以他也读不到,所以swatch用预设状态执行... 
然後他会显示预设的设定值(前面有说明在此省略) 

然後显示swatch的启动时间... 
等待一阵子之後..有一个使用者登入成功用高亮度色彩记录下来了... 
目的达到所以中断之..。 

当然失败的也会被纪录... 

你一定觉得这个讯息没有什麽用处吧..? 
别懒了...修改一下设定档.. 
举例说明: 
watchfor /failed|reject/ 
echo yellow_h 

换成您想要的关键字 至於改成什麽?看个人功力.... 
什麽样的程度是你所关心的系统报告...自行取.. 

香港云主机