1. 跪求linux 下的一个shell脚本来监控指定的目录及其子目录中的任何文件变化然后报告到指定记录文件。
我可以给你提供个思路,可以实现你的需求,同时你自己写出来也专是一个不错的学习机属会,我写过一个“一点触发多点生效”的shell脚本,应用到inotify技术,你可以参考下语法应用。http://hi..com/cong_rong520/blog/item/563ce16e8f0bc8e442169482.html
2. cacti怎么去监控linux下某个文件的大小
cacti居然还有这么强大的功能,坐等大神回答!
3. LINUX下,如何监控文件,得到新写入文件的内容 一个文件不断被写入,要
看tail -f的实现.(coreutils)
4. java如何实现linux下实时监控文件是否有变化
linux下的inotify系统调用可以实现这点,你可以用c来写,然后通知java,或者找找inotify的java binding库 比如 jnotify.sourceforge.net
5. linux如何追踪一个正在变化的文件
tail -n 10 -f filename 查看文件最后10行,动态刷新 -f (flow流动)
6. 诺顿 linux 怎样监控文件
解决方案 双击任务栏诺顿的图标打开诺顿的设置主页: 点击红框中的Norton Protection Center按钮打开设置中心: 点击设置按钮,再点击Norton Internet Security选项: 再点击左侧的个人防火墙按钮: 可以打开或者关闭个人防火墙。
7. linux tail监控日志文件
先用date获取当前日期,格式化后得到文件名。
filename=`date +"%Y-%m-%d"`
tail -n 50 ${filename}.log
8. 在windows下 怎么用java 实现对linux系统下的一个文件夹进行监控
我没法给你源码,但可以给你思路:
【最简单粗暴的】
1. 写一个死循环
2. sleep 个 100 毫秒
3. 第一次启动建立一个HashMap<File, Date>,扫描所有文件并读取创建日期记录下来(包括子文件夹)
4. 记录全部文件的数量 fileCount, lastFileCount
5. 检查是否数量有变,如果木有就没有新增文件
6. 如果有变化,。。。。你懂的,再扫找出不在HashMap里面的就是新增的了
【特殊参考】
参考tomcat、jboss这类服务器软件如何扫面检测部署文件夹下面文件变动的
【高阶】
参考防毒软件设计原理,截获系统IO,有对你指定文件夹的Access操作时,按需记录
9. 在linux内核如何改写内核函数,来监控一个进程对文件做了哪些的操作,并把具体的操作打印出来。
如果只是监视复普通文件操作,一般情制况下不需要修改内核。
运行“strace -e file -o log.txt 可执行文件名" 即可。对已经运行的程序,用strace -p pid。
最创建子进程的,加-f参数。具体man strace。
10. 如何在linux中使用inotify实现文件系统的监控(php接口)
<?php
define('DIRWATCHER_CHANGED',IN_MODIFY|IN_CLOSE_WRITE|IN_MOVE|IN_CREATE|IN_DELETE);
/**
*DirWatcher
*
*@authorCharlesTang<charlestangATfoxmailDOTcom>
*/
classDirWatcher{
private$_callbacks=array();
private$_directories=array();
private$_inotify=null;
publicfunction__construct(){
$this->_inotify=inotify_init();
}
publicfunctionaddDirectory($path,$mask=DIRWATCHER_CHANGED){
$key=md5($path);
if(!isset($this->_directories[$key])){
$wd=inotify_add_watch($this->_inotify,$path,$mask);
$this->_directories[$key]=array(
'wd'=>$wd,
'path'=>$path,
'mask'=>$mask,
);
}
}
publicfunctionremoveDirectory($path){
$key=md5($path);
if(isset($this->_directories[$key])){
$wd=$this->_directories[$key]['wd'];
if(inotify_rm_watch($this->_inotify,$wd)){
unset($this->_directories[$key]);
}
}
}
publicfunctionaddDirectories($directories){
foreach($directoriesas$dir){
if(!is_array($dir)){
$this->addDirectory($dir);
}else{
$this->addDirectory($dir['path'],$dir['mask']);
}
}
}
publicfunctionaddCallback($callback,$params=array(),$priority=9){
$key=md5(var_export($callback,true));
if(!isset($this->_callbacks[$key])){
$this->_callbacks[$key]=array(
'callable'=>$callback,
'params'=>$params,
'priority'=>$priority,
);
usort($this->_callbacks,create_function('$a,$b','return$a["priority"]>$b["priority"];'));
}
}
publicfunctionremoveCallback($callback){
$key=md5(var_export($callback,true));
if(isset($this->_callbacks[$key])){
unset($this->_callbacks[$key]);
}
}
publicfunctionaddCallbacks($callbacks){
foreach($callbacksas$callable){
if(is_callable($callable)){
$callable=array(
'callable'=>$callable,
'params'=>array(),
'priority'=>9,
);
}
$this->addCallback($callable['callable'],$callable['params'],$callable['priority']);
}
}
publicfunctionstartWatch(){
while(TRUE){//启动一个常驻进程,监视目录的变化,事件触发回调函数
$event=inotify_read($this->_inotify);
if(defined('DIRWATCHER_DEBUG')&&DIRWATCHER_DEBUG){
error_log(vsprintf("[wd:%d][mask:%d][cookie:%s]%s",$event[0]));
}
foreach($this->_callbacksas$callable){
call_user_func_array($callable['callable'],array_merge($event,$callable['params']));
}
}
}
publicfunctionstopWatch(){
//没有实现,可以引入pcntl,优雅退出,退出前记得fclose($this->_inotify)
}
}