Running mrtg on FreeBSD
Ian Smith
smithi at nimnet.asn.au
Sun Nov 27 15:39:17 GMT 2005
Re: freebsd-questions Digest, Vol 114, Issue 23
> Message: 6
> Date: Sun, 27 Nov 2005 05:25:26 -0500
> From: "matt ." <fasterdisco at gmail.com>
> On 11/26/05, Glenn Dawson <glenn at antimatter.net> wrote:
> >
> > At 05:24 PM 11/26/2005, matt . wrote
> > I don't think it's a bug in the port. I've installed it many times
> > recently and not had any problems.
> >
> > What version of Perl are you using? Version of FreeBSD?
> >
> > It looks as if the FindBin perl module is failing to find the correct
> > location of the mrtg script, which then causes it to look for rateup
> > in the wrong place.
Yes, specifically it seems to be returning '' instead of
'/usr/local/bin' which was to be prepended to '/rateup'
[.. system and perl versions ..]
> The only thing the same is the version of my MRTG port.
>
> I was unable to find the which module installs FindBin. I checked
> freshports.org and didn't find any port specifically related to anything
> called FindBin. Thanks.
>
> matt
[..]
> > > > Still seeing the same error. I created /usr/local/www/mrtg owned by
> > > > mrtg:mrtg. I run the following in mrtg's crontab:
> > > >
> > > > */5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
> > > > --debug=cfg,dir --logging /var/log/mrtg.log
> > > >
> > > > And I see the debug check the config and dir structures ok:
> > > >
> > > > 2005-11-26 19:58:00 -- --dir: ensure path IN: '/usr/local/www/mrtg'
> > > > 2005-11-26 19:58:00 -- --dir: ensure path OUT: '/usr/local/www/mrtg/'
> > > > 2005-11-26 19:58:00 -- --dir: imagehtml =
> > > > 2005-11-26 19:58:00 -- Use of uninitialized value in concatenation (.)
> > or
> > > > string at /usr/local/bin/mrtg line 720.
> > > > 2005-11-26 19:58:00 -- Use of uninitialized value in concatenation (.)
> > or
> > > > string at /usr/local/bin/mrtg line 720.
> > > > 2005-11-26 19:58:00 -- ERROR: Can't Execute '/rateup'
> > > >
> > > > Still trying to execute /rateup. This works flawlessly when run by
> > root.
> > > > I don't get it.
Smells like permissions, if root can, and mrtg:mrtg can't ..
> > > > Here is line 720 of /usr/local/bin/mrtg:
> > > >
> > > > ((($MRTG_lib::OS eq 'NT' or $MRTG_lib::OS eq 'OS2') and (-e
> > > > "${FindBin::Bin}${MRTG_lib::SL}rateup.exe")) or
> > > > (($MRTG_lib::OS eq 'NW') and (-e "SYS:/Mrtg/bin/rateup.nlm")) or
> > > > (-x "${FindBin::Bin}${MRTG_lib::SL}rateup")) or
> > > > die "ERROR: Can't Execute
> > > > '${FindBin::Bin}${MRTG_lib::SL}rateup'\n";
Assuming FindBin::Bin and/or MRTG-lib::SL doesn't need to run as root
(?), maybe not all of /usr, /usr/local and /usr/local/bin are world
readable/executable (o+rx), or maybe rateup itself isn't executable by
mrtg:mrtg?
Just a hunch, cheers, Ian
More information about the freebsd-questions
mailing list