[Nagiosplug-devel] tip for plugin development and temp files

Matthieu Fournet fournet.matthieu at gmail.com
Tue Dec 27 22:44:45 CET 2011


Hi all,

I'd like to add my 10 cents to the plugins developer guidelines (at section
"3.3. Don't make temp files unless absolutely required",
http://nagiosplug.sourceforge.net/developer-guidelines.html#AEN254),
regarding the use of temporary files.

Of course I agree with this piece of advice, but considering there's no
other solution than creating a temp file (carefully, and cleaning
everything before leaving !), there's one more rule developers have to keep
in mind : make temp files name unique.
Indeed, we all tend to name temp files like "tmp" or "temp", or whatever.
But in case of concurrent executions (the same plugin is run on the same
poller for 2 differents hosts, OR 2 distinct plugins running simultaneously
create temp files), you'll end up with both plugin trying to read / write /
open / delete the same file, and you may encounter some "file not found"
errors, whereas while running plugins manually, everything works just fine.

So my advice would be to name temp files like :

tmp_[plugin_name]_[timestamp]

or any combination so that temp files never collide.

Hope this helps ;-)

Cheers

Matthieu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nagios-plugins.org/archive/devel/attachments/20111227/aec7b0f7/attachment.html>


More information about the Devel mailing list