Commit Graph

198 Commits

Author SHA1 Message Date
markj
ae5107476a If we fail to send a signal after rotation, print the pidfile from which
the corresponding PID was obtained.

PR:		194143
Submitted by:	Lyndon Nerenberg <lyndon@orthanc.ca>
MFC after:	1 week
2014-10-08 17:44:30 +00:00
bdrewery
aace37bc20 Make it more explicitly clear that -t will not change filename.
MFC after:	3 days
2014-09-23 13:58:39 +00:00
bdrewery
03ffe04fa7 - Include /etc/newsyslog.conf.d/* and /usr/local/etc/newsyslog.conf.d/* by
default for newsyslog(8).

  The /usr/local/etc/newsyslog.conf.d will give packages an opportunity to
  install a default configuration to handle their own log files.

MFC after:	2 weeks
Relnotes:	yes
2014-05-20 03:00:20 +00:00
imp
2118f42afd Use src.opts.mk in preference to bsd.own.mk except where we need stuff
from the latter.
2014-05-06 04:22:01 +00:00
jmmv
b2e51e38a8 Migrate tools/regression/{usr.bin/lastcomm,usr.sbin}/ to the new tests layout.
This change was originally going to only migrate the usr.sbin tests but, as
it turns out, the usr.sbin/sa/ tests require files from usr.bin/lastcomm/
so it's better to just also migrate the latter at the same time.  The other
usr.bin tests will be moved separately.

To make these tests work within the test suite, some of them have required
changes to prevent modifying the source directory and instead just rely on
the current directory for file manipulation.
2014-03-16 04:09:22 +00:00
bdrewery
ed4da82552 Fix newsyslog(8) to use the size of the file instead of the blocks it
takes on disk, as advertised in newsyslog.conf(5).

This fixes newsyslog(8) on ZFS with compression enabled to not have
large files compared to the expected rotation size.

  # grep remotes/messages /etc/newsyslog.conf
  /var/log/remote/messages       root:info       640  5     500  *     JC
  # ls -alh /var/log/remote/messages
  -rw-r-----  1 root  info    3.2M Jan 31 20:02 /var/log/remote/messages
  # newsyslog -vN|grep remote/messages
  /var/log/remote/messages <5J>: size (Kb): 464 [500] --> skipping
  # stat -f "st_size: %z st_blocks: %b" /var/log/remote/messages
  st_size: 3372627 st_blocks: 928
  # zfs get -H compressratio zroot/syslogs
  zroot/syslogs    compressratio   3.77x   -

With fix:

  # newsyslog -v | grep remote/messages
  /var/log/remote/messages <5J>: size (Kb): 3338 [500] --> trimming log....

Approved by:	bapt (mentor)
PR:		docs/150877
Reported by:	Joshua Isom <jrisom@gmail.com>
MFC after:	2 weeks
2014-02-02 14:11:34 +00:00
markj
cce3845835 Initialize the struct tm before handing it to strptime(3).
PR:		183550
MFC after:	2 weeks
2013-11-04 02:50:43 +00:00
kientzle
d8a47ede29 Fix -Wunsequenced
Submitted by:	dt71@gmx.com
2013-06-29 15:58:03 +00:00
markj
44ec97062d We want to stat the archived log file rather than the logfile itself.
PR:		bin/179122
Submitted by:	Oliver Fromme <olli@secnetix.de>
MFC after:	3 days
2013-06-02 01:10:49 +00:00
markj
dbafd2120e Some filesystems (NFS in particular) do not fill out the d_type field when
returning directory entries through readdir(3). In this case we need to
obtain the file type ourselves; otherwise newsyslog -t will not be able to
find archived log files and will fail to both delete old log files and to
do interval-based rotations properly.

Reported by:	jilles
Reviewed by:	jilles
MFC after:	2 weeks
2013-05-12 01:58:04 +00:00
markj
3110b3975c Fix interval-based rotations when the -t flag is used. In this case, find
the most-recently archived logfile and use its mtime to determine whether
or not to rotate, as in the non-timestamped case.

Previously we would just try to use the mtime of <logfile>.0, which always
results in a rotation since it generally doesn't exist in the -t case.

PR:		bin/166448
Approved by:	emaste (co-mentor)
Tested by:	Marco Steinbach <coco executive-computing.de>
MFC after:	2 weeks
2013-03-26 23:11:30 +00:00
markj
d68a3343d3 Rename the run_cmd field to sw_runcmd to make it consistent with the
other fields in struct sigwork_entry.

Approved by:	rstone (co-mentor)
MFC after:	1 week
2013-01-27 06:03:57 +00:00
markj
6491a8b599 Ensure that newsyslog -n prints the correct message for a rotation rule
that uses the 'R' flag.

Reviewed by:	gad
Approved by:	rstone (co-mentor)
MFC after:	1 week
2013-01-27 06:02:38 +00:00
markj
eb5455fa48 When the 'R' flag is used with a newsyslog.conf entry, some fields of
the corresponding struct sigwork_entry were left uninitialized,
potentially causing an early return from do_sigwork(). Ensure that these
fields are initialized, and handle the 'R' flag properly in
do_sigwork().

PR:		bin/175330
Reviewed by:	gad
Approved by:	rstone (co-mentor)
MFC after:	1 week
2013-01-27 06:01:35 +00:00
markj
fe63c3a52a Make sure to update the mtime of a logfile after archiving it. This
ensures that the next rotation happens at the correct time when using
interval-based rotations.

PR:		bin/174438
Reviewed by:	gad
Approved by:	rstone (co-mentor)
MFC after:	1 week
2013-01-03 16:14:51 +00:00
markj
e8588e6c07 Have -n imply -r, since dry-run mode obviously doesn't require root
privileges.

Approved by:	rstone (co-mentor)
MFC after:	1 week
2013-01-03 16:12:48 +00:00
markj
f951ee4fbb Fix a typo in an error message.
Approved by:	rstone (co-mentor)
MFC after:	1 week
2013-01-03 16:11:24 +00:00
ed
c23d2a42d7 More -Wmissing-variable-declarations fixes.
In addition to adding missing `static' keywords:
- bin/dd: Pull in `extern.h' to guarantee consistency with source file.
- libexec/rpc.rusersd: Move shared globals into an extern.h.
- libexec/talkd: Move `debug' and `hostname' into extern.h.
- usr.bin/cksum: Put counters in extern.h, as they are used by ckdist/mtree.
- usr.bin/m4: Move `end_result' into extern.h.
- usr.sbin/services_mkdb: Move shared globals into an extern.h.
2012-10-20 10:33:15 +00:00
ae
b3b0c82b64 We don't need to check the result of sending signal when -R option is
specified.

Submitted by:	Ilya A. Arkhipov
MFC after:	1 week
2012-07-09 07:37:10 +00:00
joel
f132ae9eaa mdoc: fix mandoc "Oc breaks Op" warning. 2012-06-09 09:54:07 +00:00
joel
401c81aaa9 Minor spelling fixes. 2012-06-03 11:29:48 +00:00
gleb
53af2dbdca Hide DIR definition by making it an opaque struct typedef.
Introduce dirfd() libc exported symbol replacing macro with same name,
preserve _dirfd() macro for internal use.

Replace dirp->dd_fd with dirfd() call. Avoid using dirfd as variable
name to prevent shadowing global symbol.

Sponsored by:	Google Summer Of Code 2011
2012-05-19 12:44:27 +00:00
eadler
1ef5fe44d3 Remove trailing whitespace per mdoc lint warning
Disussed with:	gavin
No objection from:	doc
Approved by:	joel
MFC after:	3 days
2012-03-29 05:02:12 +00:00
glebius
6e96eb9cc7 Fix a sentence in a paragraph that describes time and interval based
trimming. This sentence vaguely can be interpreted as if it was speaking
about time and size interaction, while it wasn't about it.
2012-03-21 07:02:17 +00:00
glebius
14f4e1dc58 Don't run through time checks when entry is definitely oversized. This
leads to newsyslog rotating on (size OR time) if both are specified.

PR:		100018, 160432
2012-03-21 06:51:45 +00:00
uqs
b5c7b0dfe9 Further fix a typo and spelling classic correctly in function names,
too.

Submitted by:	Ben Kaduk <minimarmot@gmail.com>
2012-01-05 21:36:36 +00:00
ed
e7e5b53bf1 Replace index() and rindex() calls with strchr() and strrchr().
The index() and rindex() functions were marked LEGACY in the 2001
revision of POSIX and were subsequently removed from the 2008 revision.
The strchr() and strrchr() functions are part of the C standard.

This makes the source code a lot more consistent, as most of these C
files also call into other str*() routines. In fact, about a dozen
already perform strchr() calls.
2012-01-03 18:51:58 +00:00
uqs
415a3a9b96 Spelling fixes for usr.sbin/ 2011-12-30 10:58:14 +00:00
eadler
3c01e31040 - Remove extraneous null ptr deref checks
- Fix memory leak

Submitted by:	Slono Slono <slonoman2011@yandex.ru>
Approved by:	jhb
MFC after:	1 week
2011-12-21 20:27:41 +00:00
sobomax
1bbc0ba66b Add new modifier - "R", when it is specified the path to pid file
will be considered as a path to a binary or a shell script to be executed
after rotation has been completed instead of sending signal to the process
id in that file.

Sponsored by:	Sippy Software, Inc.
From the:	FreeBSD hacking lounge at BSDCan
2011-05-14 03:00:55 +00:00
simon
5a46569c8d Fix an old bug in newsyslog where we kept one log file more than was
requested in newsyslog.conf.  This was only the case using the non-time
based filenames (.0, .1, .2 etc.).

The change also makes newsyslog clean clean up the old extra logfile so
users don't end up with a single stale logfile which won't be rotated
out.

This change also cleans up some code a bit to avoid more copy / paste
code and removes some old copy / paste code in the process.

PR:		bin/76697
MFC after:	2 weeks
2011-04-21 16:31:05 +00:00
dougb
1aed79fd1e Add an example for the use of the <include> entry to help others
who are as slow as I am.

Discussed with:	gordon
2011-03-26 00:34:35 +00:00
ru
23b678467d Sync manpage's SYNOPSIS with program's usage. 2011-03-09 17:07:36 +00:00
sobomax
271f830ef2 Make code more friendly to the non-C99 compilers - don't allocate
local variables in the `for' loop declaration. This allows trunk
newsyslog.c to be compiled on 7.x. This change should be no-op from
the functional POV.
2011-02-22 09:11:47 +00:00
mm
082f7a5a82 Use correct alphabetical order for xz(1) in SEE ALSO section
of newsyslog manpages.

Reported by:	maxim
MFC after:	3 weeks
2011-01-31 11:30:26 +00:00
mm
0d3cc98e60 Add xz(1) support to newsyslog.
Rewrite and simplify logfile compression code.

Approved by:	gad
MFC after:	3 weeks
2011-01-31 10:57:54 +00:00
brian
c9b13950eb Make -S functional.
MFC after:	1 week
2010-12-31 01:10:42 +00:00
simon
63a10f10ab Fix a typo in a comment.
MFC after:	3 days
2010-11-21 11:50:16 +00:00
brian
c77452c8de Add a -S switch to override the default syslog pid file. This can be useful
if syslogd's -P switch or a syslogd alternative is being used.

MFC after:	3 weeks
2010-07-23 09:11:47 +00:00
simon
1af623ef42 Add support for creating the archived log filenames using a time-stamp
instead of the traditional simple counter.

Using the time-stamp based file-names, once a log file is archived, it
will not change name until it is deleted.  This means that many backup
systems will only perform one backup of the archived log file, instead
for performing a new backup of the logfile upon each logfile rotation.

This implementation is separate from the patches in the mentioned PR,
as I wasn't aware of the existence of the PR until after I had
implemented the same functionality as the patches in the PR provide.
Unlike the PR, this new code does honor the 'log count' in
newsyslog.conf so old logfiles are deleted.  This new code does not
currently support never deleting the archived logfiles.

PR:		bin/29363
MFC after:	3 weeks
2010-07-22 11:23:18 +00:00
gordon
4fcdf7caa6 Add file include processing for newsyslog.
Format for the include line in /etc/newsyslog.conf is:
<include> /etc/defaults/newsyslog.conf

Other notes of interest:
Globbing is supported in <include> statements.
Properly detect circular include loop dependencies.

Reviewed by:	gad@
Approved by:	wes@ (mentor)
MFC after:	2 months
2010-05-29 22:55:59 +00:00
gordon
5224579be4 Convert newsyslog to using queue(3) macros instead of a home rolled version.
Reviewed by:	gad@
Approved by:	wes@ (mentor)
MFC after:	2 months
2010-05-29 22:52:17 +00:00
uqs
64c451d29e mdoc: move remaining sections into consistent order
This pertains mostly to FILES, HISTORY, EXIT STATUS and AUTHORS sections.

Found by:	mdocml lint run
Reviewed by:	ru
2010-05-13 12:08:11 +00:00
delphij
bf268284cc Add a new option, -P, which reverts newsyslog(8) to the old behavior,
which stops to proceed further, as it is possible that processes which
fails to create PID file get screwed by rotation.

Requested by:	stas
MFC after:	2 weeks
X-MFC with:	r200806
2010-01-20 01:07:38 +00:00
ed
073cafdd42 The last big commit: let usr.sbin/ use WARNS=6 by default. 2010-01-02 11:07:44 +00:00
delphij
5fbacdf9a7 Don't consider non-existence of a PID file an error, we should be able
to proceed anyway as this most likely mean that the process has been
terminated.

PR:		bin/140397
Submitted by:	Dan Lukes <dan obluda cz>
MFC after:	1 month
2009-12-21 20:12:01 +00:00
sobomax
043844f182 Fix 6-year old cut&paste error. The # could be escaped with '\', not
with '\\'.

MFC after:	2 weeks
2008-06-26 07:02:47 +00:00
delphij
bf18e9a1d9 Fix two typos. 2008-01-30 22:11:59 +00:00
remko
c61182e0fc s/effect/affect/
PR:		docs/118266
Submitted by:	"Kim Scarborough" <sluggo at unknown dot nu>
MFC After:	3 days
2007-11-27 06:50:21 +00:00
ru
081fcce9b9 Markup fixes. 2006-09-29 17:57:04 +00:00