❶ linux中用什么命令实现对目录文件变化的监控
|#!/bin/bashif [ ! -f check.txt ];then ls >check.txtelif [ ! -f check.old ];then mv check.txt check.old ls >check.txt diff check.txt check.old|grep '^>'|sed 's/>/deleted file:/g' diff check.txt check.old|grep '^<'|sed 's/</created file:/g'else mv check.txt check.old ls >check.txt diff check.txt check.old|grep '^>'|sed 's/>/deleted file:/g' diff check.txt check.old|grep '^<'|sed 's/</created file:/g'fi不知是不是你想要的。。。只实现监控新增的文内件和容删除的文件。
❷ Linux 监控文件被什么进程修改
你好,如果只是监视普通文件操作,一般情况下不需要修改内核专。 运行“strace -e file -o log.txt 可执行文件属名" 即可。对已经运行的程序,用strace -p pid。 最创建子进程的,加-f参数。具体man strace。
❸ 在linux 应用层,有没有能实时监控系统中文件变化的方法
我也不完全理解,但是比你知道的多点。Linux中,分内核态和用户态。回你写的所有的驱动答,都是出于内核态->可以直接使用内核相关资源;应用层,都是用户态->无法直接操作底层的东西 -> 想要操作,比如获得权限,切换到内核态,然后才能操作。你这里的需求,我的理解是:对应你这句“在中断服务程序中操作另一个外设”不知道你的目的和打算用的手段是啥一般的,ISR中,操作别的设备,常见的是:设置对应的(比如该硬件本身,或者别的设备B的)寄存器的对应的位,以便通知其某种事情发送或状态变化了。然后设备B会:要么是由于(被修改了寄存器而)发生了中断,然后可以接着处理其所要做的事情;要么是一直轮训,检测对应的某种资源释放变化,比如上面被改的寄存器的对应的位,发现变化了,再去调用你的函数,做对应的处理。注意:中断,不论是哪个设备的中断,都不应该占用(CPU)太长时间-> 导致别的中断或服务无法及时运行
❹ linux性能监控工具有哪些
1、顶部-Linux进程监控Linux Top命令是性能监视程序,很多系统管理员经常用它监视Linux性能,可以再许多Linux/Unix操作系统下使用,可以显示CPU使用情况、内存使用情况、交换内存、缓存大小、缓冲区大小、进程PID、用户、 命令等等,它还显示高内存和CPU运行流程的利用。2、VmStat-虚拟内存统计Linux VmStat命令用于显示虚拟内存,kernerl线程,磁盘,系统进程,I/O块,中断,CPU活动等的统计信息。默认情况下,vmstat命令在Linux系统下不可用,您需要安装名为sysstat的软件包 ,其中包含vmstat程序。3、Lsof-列出打开的文件许多Linux/Unix系统中使用的Lsof命令,用于显示所有打开文件和进程的列表。包含的开放文件是磁盘文件、网络套接字、管道、设备和进程。使用此命令的主要原因之一是无法卸载磁盘并显示正在使用或打开文件的错误。使用此命令,您可以轻松识别哪些文件正在使用中。4、Tcpmp-网络分组分析器Tcpmp是使用最广泛的命令行、网络数据包分析器或数据包嗅探器程序之一,用于捕获或过滤通过网络在特定接口上接收或传输的TCP/ IP数据包。它还提供了一个选项,可以将捕获的包保存在文件中供以后分析。tcpmp几乎可用于所有主要的Linux发行版。5、Netstat-网络统计Netstat是一个命令行工具,用于监视传入和传出网络数据包统计信息以及接口统计信息,对于每个系统管理员来说,监视网络性能并排除网络相关问题是非常有用的工具。6、Htop-Linux进程监控Htop是一款非常先进的交互式和实时Linux过程监控工具。这与Linux top命令非常相似,但它具有一些丰富的功能,如用户友好的界面来管理进程、快捷键、进程的垂直和水平视图等等。
❺ 13,linux上怎么动态监控一个文件的内容变化
用途说明tail命令可以输出文件的尾部内容,默认情况下它显示文件的最后十行。它常用来动态监视文件的尾部内容的增长情况,比如用来监视日志文件的变化。与tail命令对应的是head命令,用来显示文件头部内容。 常用参数格式:tail file输出指定文件file的尾部内容,默认输出最后十行内容(outputthe last part of files。Print the last 10 lines of each FILE tostandard output. ) 格式:tail file1 file2…指定多个文件时,会显示每个文件的文件名称,再显示该文件的尾部内容(Withmore than one FILE, precede each with a header giving the file name.) 格式:tail格式:tail -不指定文件时,表明从标准输入读取内容,这通常用在管道线后面,把前一个命令的输出作为tail的输入内容(Withno FILE, or when FILE is -, read standard input.) 格式:tail -n file格式:tail -n n file格式:tail –lines=n显示文件最后n 行,比如tail -20 file就是显示文件最后10行,这个参数可以配合其他参数与使用。注意上面三种格式的斜体n 是实际要显示的行数的数值。 注意:tail-n可以显示最后n行的文本内容。那么有没有一种方式显示从n行开始的文本内容,答案是肯定的。tail -n +4file表示显示文件file从第4行开始的内容。从1开始计数。 格式:tail -f file动态跟踪文件file的增长情况(outputappended data as the filegrows),tail会每隔一秒去检查一下文件是否增加新的内容,如果增加就追加在原来的输出后面显示。但这种情况,必须保证在执行tail命令时,文件已经存在。如果想终止tail-f的输出,按Ctrl+C中断tail程序即可。如果按Ctrl+C不能中断输出,那么可以在别的终端上执行killall tail强行终止。 注意:采用tail-f来监控文件变化情况时,在某些情况会不太灵。比如在java应用程序中采用log4j日志时,每隔1个小时生成一个新的日志文件,当前的日志输出在 LOG4J.LOG中,当一个小时过去后,log4j会将LOG4J.LOG改名成LOG4J.yyyy-mm-dd-HH的形式。那么这个时候tail -f就不能动态输出新的日志内容了。tail命令本身提供了很多参数,似乎都不能完美的解决这个问题。最后只好编写了一个脚本ftail.sh来跟踪日 志,详见《Linux下实时跟踪log4j日志文件的bash脚本 – 增强了tail -f的功能 》。刚才我仔细查看了tail的手册页,发现tail -F就能够做到跟踪这种类型的日志。转念一想,这种需求应该早就被Linux世界的人给满足了的。 格式:tail -F file格式:tail–follow=name –retry file功能与tail -ffile相同,也是动态跟踪文件的变化,不同的是执行此命令时文件可以不存在。 以上处理都是针对文本文件的,下面是针对二进制文件的情形。 格式:tail -c n file取文件file的最后n个字节。 格式:tail -c +n file取文件file的第n个字节后的内容。从1开始计数。使用示例示例一 输出文件尾部先使用seq命令输出20个数字保存到1.txt,然后尝试使用tail命令。[[email protected] ~]# seq 20 >1.txt[[email protected] ~]# cat 1.txt1234567891011121314151617181920[[email protected] ~]# tail 1.txt11121314151617181920[[email protected] ~]# tail -3 1.txt181920[[email protected] ~]# tail -n 3 1.txt181920[[email protected] ~]# tail –lines=3 1.txt181920[[email protected] ~]# tail -n +14 1.txt14151617181920[[email protected] ~]# 示例二 动态跟踪tomcat输出动态跟踪tomcat输出。[[email protected] logs]# tail -f catalina.out at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) atorg.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619)2010-12-0313:23:02,236 [http-80-15] DEBUG mhr.roi.MhrManager -MhrGetJobReq={seq=991,job_id='86130469-0006'}2010-12-0313:23:02,301 [http-80-15] DEBUG mhr.roi.MhrManager -MhrGetJobRsp={seq=991,result=0(成功),,info={job_id='86130469-0006',employer_id=86130469,employer_name=无锡富士时装有限公司,,,job_title='|570309|',job_title0='文员',job_type=f(全 职),issue_time='2010-11-0300:00:00.0',work_address='1902',work_address0=无锡 市,desired_count='1',,,,,,job_desc=大专,1年以上5s管理工作经验,电脑操作熟练。,required_experience=1(一年以上),,,,required_degree=15(大专),,,,,,,valid_days=30,access_count=12,expire_time='2010-12-0300:00:00.0',job_status=1(过期),,,,,,contact_name=王小 姐,contact_number=0510-85550088,remarks='★此职位是从后台导入的',enter_time='2010-11-0309:45:11.0',change_time=2010-12-0302:18:05.0,,job_seq=123201,,required_min_age=22,,,accommodations=面议,serve_principal=wjw12580,job_summary=大专,1年以上5s管理工作经验,电脑操作熟练,,}}2010-12-0313:23:02,302 [http-80-15] DEBUG mhr.roi.MhrManager -MhrGetEmployerReq={seq=0,employer_id='86130469'}2010-12-0313:23:02,304 [http-80-15] DEBUG mhr.roi.MhrManager -MhrGetEmployerRsp={seq=0,result=0(成功),,info= {employer_id='86130469',employer_name=无锡富士时装有限公司,employer_region=1902,employer_address=无锡市滨湖镇山水城科技园8号,,employer_desc=无锡 富士时装(集团)有限公司成立于1992年,是中日韩合资企业。主要生产高档针织时装,产品全部外销,连续多年荣获“中国行业500强”、“全国工业重点 行业效益十佳企业”、“无锡市百佳企业”等称号。公司总部位于江苏省无锡市滨湖镇山水城科技园,全新的厂房设施,占地面积30亩。公司分别在苏州、泰兴、 盐城、徐州设有分厂,集团公司现有职工1500多人,年销售额近3亿元。,,,,,,open_mode=5(系统自动操 作),open_time='2010-11-0309:45:10.0',,,,,contact_name=王小 姐,contact_number=0510-85550088,,,,,employer_status=1(已经开通),,,login_password=871386,,agency=false,balance=100.0000,,,,,serve_principal=wjw12580,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,remarks='此帐号由“12580zgz-盐城维克多网络传媒有限公司”导入',enter_time='2010-11-03 09:45:10.0',}}Ctrl+C[[email protected] logs]# 示例三 动态跟踪log4j日志经过我的试验,发现tail -F功能的强大,它等同于–follow=name–retry。如果你跟踪的文件被移动或者改名后, 你还想继续tail它, 你可以使用这个选项。tail手册页中关于–retry的说明:keep trying to open a file even if itis inaccessible when tail starts or if it becomes inaccessible later; useful when following by name, i.e., with –follow=name。 tail命令开始执行时文件不存在或者执行过程中文件不能访问,会不断重试。关于–follow的说明:-f, –follow[={name|descriptor}]output appended data as the file grows; -f, –follow, and –follow=descriptorare equivalent 。–follow=descriptor表明跟踪的是文件描述符, –follow=name表明跟踪的是文件名称。 如果文件名称改掉之后,还想继续跟踪原文件名称对应的尾部内容,就得使用-F选项而不是-f选项了。[[email protected]_server]# tail -F log/IMX.LOG14:13:28.892 INFO ImxConnection[6] imx.server.ImxConnection – RXIMX_ACTIVE_TEST{seq=3460,client_id=1291343201649042,presence_status=1(presence_status_online),}14:13:28.892 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – 006417 (01/02/00) -Connection #9 served14:13:28.892 INFO ImxConnection[6] imx.dbo.ImxOnlineInfoRow – EXEC SQL UPDATEimx_online_info SET last_active_time = '2010-12-03 14:13:28.0' WHERE account ='zhy'14:13:28.894 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – UPDATE imx_online_info SETlast_active_time = '2010-12-03 14:13:28.0' WHERE account = 'zhy'; (1milliseconds)14:13:28.894 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – 006417 (00/02/00) -Connection #9 returned (now AVAILABLE)14:13:29.625 INFO ImxConnection[6] imx.server.ImxConnection – RXIMX_ACTIVE_TEST{seq=3461,client_id=1291343201649042,presence_status=1(presence_status_online),}14:13:29.626 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – 006418 (01/02/00) -Connection #8 served14:13:29.626 INFO ImxConnection[6] imx.dbo.ImxOnlineInfoRow – EXEC SQL UPDATEimx_online_info SET last_active_time = '2010-12-03 14:13:29.0' WHERE account ='zhy'14:13:29.627 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – UPDATE imx_online_info SETlast_active_time = '2010-12-03 14:13:29.0' WHERE account = 'zhy'; (0milliseconds)14:13:29.653 DEBUGImxConnection[6] org.logicalcobwebs.proxool.ImxDB – 006418 (00/02/00) -Connection #8 returned (now AVAILABLE)Ctrl+C[[email protected]_server]#
❻ 诺顿 linux 怎样监控文件
解决方案 双击任务栏诺顿的图标打开诺顿的设置主页: 点击红框中的Norton Protection Center按钮打开设置中心: 点击设置按钮,再点击Norton Internet Security选项: 再点击左侧的个人防火墙按钮: 可以打开或者关闭个人防火墙。
❼ Linux 监控文件被什么进程修改
如果只是监视普通文件操作,一般情况下不需要修改内核。 运行“strace -e file -o log.txt 可执行文件名专" 即可。对已经运行属的程序,用strace -p pid。 最创建子进程的,加-f参数。具体man strace。
❽ Linux gcc或者g++编程 下如何监视文件夹中文件的改变
从编程实现上来说,linux下做这个事情,要比windows上做简单,windows上有相关API提供接口,比如VC下的ReadDirectoryChanges函数,但其实它的功能并不是很完善,我之前曾经做过一个windows下类似的工具,如果要做到很完善的功能,要涉及到windows底层驱动。而linux下做这个事情就简单多了,从内核2.6.13开始,inotify编程接口就已经被加入到系统内核中,用来监控文件系统事件,它能监控到的事件包含文件/文件夹的新建,删除,修改,属性被修改,打开等等,功能比windows API提供的要丰富得多。在linux下输入man inotify即可查看该接口的编程手册,要实现对某个文件夹的监控,只需要使用该接口提供的inotify_init, inotify_add_watch, inotify_rm_watch三个函数即可。具体可以网络inotify,很容易就能找到相关示例代码。
附Linux下inotify编程接口部分截图:
点击图片可以看大图。
❾ java如何实现linux下实时监控文件是否有变化
java 的WatchService 类提供了一种方式可以检查try{WatchService watchService = FileSystems.getDefault().newWatchService();Path path = Paths.get(pathName);// 注册监听器path.register(watchService,StandardWatchEventKinds.ENTRY_CREATE,StandardWatchEventKinds.ENTRY_DELETE);while (true){// 阻塞方式,消费文件回更改事件答List<WatchEvent<?>> watchEvents = watchService.take().pollEvents();for (WatchEvent<?> watchEvent : watchEvents){System.out.printf("[%s]文件发生了[%s]事件。%n", watchEvent.context(), watchEvent.kind());}}}catch (Exception e){}
❿ Linux如何监控目录下的文件情况,一旦有新文件就以硬链接的方式复制到其他目录
#! /bin/bash$FILE_LIST=$(find . -type f -cmin -5 -maxdepth 1)for file in ${FILE_LIST} ;do ln -f ${file} ~/tmp/${file}done ##其中find命令是核心##-type f表示只查找普通文件##-cmin -5表示只查找5分钟之内创建的文件##-maxdepth 1表示查找的目录深度,1表示只查找当前目录,如果不指定-maxdepth将递归查找##ln -f ${file} ~/tmp/${file}是将查找到的文件硬链接到~/tmp目录##你可以根据自己的需要再做相应的修改
未经允许不得转载:山九号 » linux监视文件|Linux 监控文件被什么进程修改