Well, there is always SUID root ;). Perl is supported from version 4.0, python from 4.9 so I guess perl plugin is more "mature", tho i dont think it matters for that kind of hack. But please don't leave that as only option, any sysadmin worth his salt will prefer to have that kind of things either in cron or logrotate. Or make plugin simple, like "system('/some/where/rotate_metic')" so it can be used standalone<br>
<br><div class="gmail_quote">2011/6/17 O G <span dir="ltr"><<a href="mailto:otis_junk@yahoo.com">otis_junk@yahoo.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div style="color:#000;background-color:#fff;font-family:times new roman, new york, times, serif;font-size:12pt"><div><span>Hello,</span></div><div><span></span> </div><div><span>Hm, would exec plugin work? I was under the impression that:</span></div>
<div><span><br>* Collectd has to run as root</span></div><div><span>* Exec plugin has to run as non-root user: "If the daemon runs as root, you <i>have to</i> configure another user ID with which the new process is created." from <a href="http://collectd.org/wiki/index.php/Plugin:Exec" target="_blank">http://collectd.org/wiki/index.php/Plugin:Exec</a></span></div>
<div><span></span> </div><div><span>Because of the above, the script running as exec plugin wouldn't have the privileges to remove root-owned files collectd created.</span></div><div><span></span> </div><div><span>So our original questions are:<br>
<br>1) Is either Perl or Python plugin support available in all collectd
packages or at least collectd packages the most popular Linux distros use?<br> <br>2) Should we use Perl or Python for this - are they equal in terms of capabilities, limitations, and being updated with every collectd release?<br>
</span></div><div><span>Many thanks,</span></div><div><span>Otis</span></div><div><span></span> </div><div><br></div><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><div style="font-family:times new roman, new york, times, serif;font-size:12pt">
<font size="2" face="Arial"><div style="margin:5px 0px;padding:0px;border:1px solid rgb(204, 204, 204);line-height:0;font-size:0px" readonly></div><b><span style="font-weight:bold">From:</span></b> Mariusz Gronczewski <<a href="mailto:xani666@gmail.com" target="_blank">xani666@gmail.com</a>><br>
<b><span style="font-weight:bold">To:</span></b> O G <<a href="mailto:otis_junk@yahoo.com" target="_blank">otis_junk@yahoo.com</a>><br><b><span style="font-weight:bold">Cc:</span></b>
""<a href="mailto:collectd@verplant.org" target="_blank">collectd@verplant.org</a>"" <<a href="mailto:collectd@verplant.org" target="_blank">collectd@verplant.org</a>><br><b><span style="font-weight:bold">Sent:</span></b> Friday, June 17, 2011 12:31 PM<br>
<b><span style="font-weight:bold">Subject:</span></b> Re: [collectd] Need advice: Perl or Pyhon for writing plugins?<br></font><u></u>
<div>Well simplest would be just running (any) program using "exec" plugin... collectd will just restart it when it dies<u></u>But then logrotate is pretty much standard for any linux boxes and it's included in repo of most UNIX-es, why reinvent the wheel ? Or use cron ('add one line here' is not too hard even for pretty dumb clients ;))<u></u>
<u></u><div>2011/6/16 O G <span dir="ltr"><<a href="mailto:otis_junk@yahoo.com" rel="nofollow" target="_blank">otis_junk@yahoo.com</a>></span><u></u><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204, 204, 204);border-left-width:1px;border-left-style:solid">
<div><div style="color:rgb(0, 0, 0);font-family:times new roman, new york, times, serif;font-size:12pt;background-color:rgb(255, 255, 255)"><div><span>Hello,</span></div><div><span></span> </div><div><span>By "collectd-generated files/logs" I really mean files with metric info that collectd generates, like this for example:</span></div>
<div><span></span> </div><div>$ ls -al cpu-0/cpu-idle-2011-06-*<u></u>-rw-r--r-- 1 root root 180986 2011-06-14 23:59 cpu-0/cpu-idle-2011-06-14<u></u>-rw-r--r-- 1 root root 180987 2011-06-15 23:59 cpu-0/cpu-idle-2011-06-15<u></u>-rw-r--r-- 1 root root 129827 2011-06-16 17:14 cpu-0/cpu-idle-2011-06-16</div>
<div> </div><div>The thinking behind writing a collectd plugin that removes old files like those above is precisely to eliminate the need for external tool (which needs to be installed and/or configured). We have a performance monitoring service (see <a href="http://sematext.com/spm/index.html" target="_blank">http://sematext.com/spm/index.html</a> ) that requires users to install collectd on their servers (because we get info about CPU, disk, etc. from collectd). We want to minimize what they need to install or configure on their own, so instead of telling them "Hey, you need to install logrotate and use our logrotate config file and make sure this is run from cron every night...", we would like to have a "collectd plugin for collectd old file removal" that ships with our software and that collectd would just automatically run, thus making our users' lives simpler.</div>
<div> </div><div>Is there a better or simpler way to achieve this?</div><div>Maybe I need to start a separate thread on this subject...</div><div> </div><div>Thanks,</div><div>Otis</div><div><br> </div><div style="font-family:times new roman, new york, times, serif;font-size:12pt">
<div style="font-family:times new roman, new york, times, serif;font-size:12pt"><font size="2" face="Arial"><div style="margin:5px 0px;padding:0px;border:1px solid rgb(204, 204, 204);line-height:0;font-size:0px">
</div><b><span style="font-weight:bold">From:</span></b> XANi <<a href="mailto:xani666@gmail.com" rel="nofollow" target="_blank">xani666@gmail.com</a>><br><b><span style="font-weight:bold">To:</span></b> O G <<a href="mailto:otis_junk@yahoo.com" rel="nofollow" target="_blank">otis_junk@yahoo.com</a>><br>
<b><span style="font-weight:bold">Cc:</span></b> "<a href="mailto:collectd@verplant.org" rel="nofollow" target="_blank">collectd@verplant.org</a>" <<a href="mailto:collectd@verplant.org" rel="nofollow" target="_blank">collectd@verplant.org</a>><br>
<b><span style="font-weight:bold">Sent:</span></b> Wednesday, June 15, 2011 5:54 PM<br><b><span style="font-weight:bold">Subject:</span></b> Re: [collectd] Need advice: Perl or Pyhon for writing plugins?<br></font><u></u><div>
Dnia 2011-06-14, wto o godzinie 10:39 -0700, O G pisze:
<blockquote type="CITE">
<pre>Hello,
My team and I are interested in writing a plugin that cleans old collectd-generated files/logs (so we don't have to rely on an external config/tool like logrotate to clean up after collectd). We've written such a plugin in Java, but discovered that Java plugin support is not included in all/many collectd packages out there, so we can't count on this working for all Linux distros, for example.
Thus, we are now considering writing this plugin in either Perl or Python.
So our questions are:
1) Is either Perl or Python plugin support available in all collectd packages or at least collectd packages the most popular Linux distros use?
2) Should we use Perl or Python for this - are they equal in terms of capabilities, limitations, and being updated with every collectd release?
Any help would be *greatly* appreciated.
Thanks,
Otis
</pre>
</blockquote>
What exactly do you mean by "collectd-generated files/logs" ? daemon logs, .rrd files, both or something else.<u></u>
And why it have to be collectd plugin, you can make standalone program and just communicate via unixsock with collectd.<u></u>
<u></u>
<table width="100%" cellpadding="0" cellspacing="0">
<tbody><tr>
<td>
<pre>--
Mariusz Gronczewski (XANi) <<a href="mailto:xani666@gmail.com" rel="nofollow" target="_blank">xani666@gmail.com</a>>
GnuPG: 0xEA8ACE64
<a href="http://devrandom.pl" target="_blank">http://devrandom.pl</a>
</pre>
</td>
</tr>
</tbody></table>
</div><u></u><u></u></div></div></div></div><br>_______________________________________________<br>
collectd mailing list<br>
<a href="mailto:collectd@verplant.org" rel="nofollow" target="_blank">collectd@verplant.org</a><br>
<a href="http://mailman.verplant.org/listinfo/collectd" target="_blank">http://mailman.verplant.org/listinfo/collectd</a><br>
<br></blockquote></div><u></u>
</div><u></u><u></u></div></div></div></div><br>_______________________________________________<br>
collectd mailing list<br>
<a href="mailto:collectd@verplant.org">collectd@verplant.org</a><br>
<a href="http://mailman.verplant.org/listinfo/collectd" target="_blank">http://mailman.verplant.org/listinfo/collectd</a><br>
<br></blockquote></div><br>