NSClient++ Help (#1) - CheckFile syntax (#398) - Message List
Hello,
I'm using CheckFile to count the number of files in a directory but I don't seem to get the results I expect. The Wiki only shows NRPE syntax so I've had to scrape up test commands from the forums. Here's what I've been doing and receiving.
CheckFile file=C:\NSClient\test\*.msg MaxWarn=1 MaxCrit=2 d \NSClient++.cpp(910) Injecting: CheckFile: file=C:\NSClient\test\*.msg, MaxWar n=1, MaxCrit=2 d \NSClient++.cpp(946) Injected Result: OK 'CheckFile ok' d \NSClient++.cpp(947) Injected Performance Result: ''no files found'=0;1;2; ' OK:CheckFile ok|'no files found'=0;1;2;
There are 7 .msg files in that directory so I don't think I should be getting an OK. I found a thread here which suggests to run CheckFile2 so here is the output on that.
CheckFile2 file=C:\NSClient\test\*.msg MaxWarn=1 MaxCrit=2 d \NSClient++.cpp(910) Injecting: CheckFile2: file=C:\NSClient\test\*.msg, MaxWa rn=1, MaxCrit=2 d \CheckDisk.cpp(556) result: 1 -- 0 d \CheckDisk.cpp(556) result: 1 -- 0 d \CheckDisk.cpp(556) result: 1 -- 0 d \CheckDisk.cpp(556) result: 1 -- 0 d \CheckDisk.cpp(556) result: 1 -- 0 d \CheckDisk.cpp(556) result: 1 -- 0 d \CheckDisk.cpp(556) result: 1 -- 0 d \NSClient++.cpp(946) Injected Result: OK 'CheckFile ok' d \NSClient++.cpp(947) Injected Performance Result: ''no files found'=0;1;2; ' OK:CheckFile ok|'no files found'=0;1;2;
What am I missing?
-
Message #1518
Next version (next nightly) will have an option called:
master-syntax which is the "over all" syntax for the command. It takes three options (and char data):
- %list% A list of all "files" (syntax controls this)
- %files% number of files
- %matches% number of files matched
Like so:
CheckFile2 MinWarn=10 MinCrit=10 path=D:\WINDOWS\system32 filter+size=gt:0 truncate=10 ignore-errors "master-syntax=%matches%/%files%" OK:7177/7...|'found files'=7177;10;10;
(the truncate above sort of destroyed my output but you get the idea I guess)
Michael Medin
mickem12/13/09 16:37:42 (3 years ago) -
Message #1515
So I've gotten this running and set up an alias for nrpe checks and it works perfectly. However, there is an aesthetic issue that I would like to know if there is a fix for. The command I'm using sends back a listing of all the files found in a directory but I would MUCH rather it sent back a file count. Is this currently possible?
cjastacio12/10/09 02:06:45 (3 years ago) -
Message #1253
(There is one I just checked)
mickem07/05/09 15:19:04 (4 years ago) -
Message #1252
The problem is the returned sting which is (usually) limited to something like 1024 chars.
There might be a truncate=123 option you can add and if not I should add one...
MickeM
mickem07/05/09 15:18:25 (4 years ago) -
Message #1242
So after trying out with the above fix on my test directory I seem to have some more issues.
CheckFile2 path=C:\NSClient\test\ pattern=*.msg filter+size=>0 MaxWarn=300 MaxCr it=500 d NSClient++.cpp(1034) Injecting: CheckFile2: path=C:\NSClient\test\, pattern=*. msg, filter+size=>0, MaxWarn=300, MaxCrit=500 d \CheckDisk.cpp(112) Input is: C:\NSClient\test\ / 10 d \CheckDisk.cpp(126) File pattern: C:\NSClient\test\\*.msg d \CheckDisk.cpp(613) result: 1 -- 1 ...GOES ON FOR THE NUMBER OF *.msg FILES IN THE DIRECTORY... d \CheckDisk.cpp(136) File pattern: C:\NSClient\test\\*.* d \NSCHelper.cpp(73) String (9543) to long to fit inside buffer(4096) : 00d68957 b5 e NSClient++.cpp(1062) UNKNOWN: Return buffer to small to handle this command. BAD_CODE:
There are 252 messages in that directory. Is checkfile unable to handle the number of files I'm looking for here?
castacio06/22/09 21:01:39 (4 years ago) -
Message #1241
Anyone experiencing this issue....
I found an open ticket here and Mike's suggestion of using path=c:\mydir and pattern=*.txt worked for me in my test directory.
castacio06/22/09 20:32:22 (4 years ago) -
Message #1233
It seems that 0.3.6 has a problem with the file related checks.. I shall investigate tomorrow..
mickeM
mickem06/17/09 07:28:00 (4 years ago) -
Message #1231
Great! Your suggestion worked!! Now I have upgraded to 3.6 and it seems that filtering by file type doesn't work.
CheckFile2 file=C:\NSClient\test\*.msg MaxWarn=1 MaxCrit=2 filter+size=>0 d NSClient++.cpp(1034) Injecting: CheckFile2: file=C:\NSClient\test\*.msg, MaxWa rn=1, MaxCrit=2, filter+size=>0 d \CheckDisk.cpp(112) Input is: C:\NSClient\test\*.msg / ffffffff d \CheckDisk.cpp(126) File pattern: C:\NSClient\test\*.msg\*.* d \CheckDisk.cpp(136) File pattern: C:\NSClient\test\*.msg\*.* d NSClient++.cpp(1070) Injected Result: OK 'CheckFile ok' d NSClient++.cpp(1071) Injected Performance Result: ''no files found'=0;1;2; ' OK:CheckFile ok|'no files found'=0;1;2;
What's with the added /*.* mask? I can just do a check on the number of all files in a directory but that could be dangerous in some situations. Is this a bug I can get around?
castacio06/17/09 00:32:31 (4 years ago) -
Message #1224
humm, off the top of my head... a criteria?
I am not sure about defaults CheckFile2 works much like CheckEventLog but I would start adding a criteria like filter+size=>0 or some such.
Again off the top of my head, can see about looking into this is more detail later on.
mickeM
mickem06/10/09 06:56:34 (4 years ago)








