Change command line option for log rotation, from -b/-c --> -R b:c
We want to use -b for binding to an address:port, like FreeBSD/NetBSD supports using this option. Unfortunately breaks existing setups in the wild already. Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
parent
b66090ce4f
commit
4f5124cb79
@ -11,12 +11,6 @@ sysklogd \- Linux system logging utilities.
|
|||||||
.RB [ " \-a "
|
.RB [ " \-a "
|
||||||
.I socket
|
.I socket
|
||||||
]
|
]
|
||||||
.RB [ " \-b "
|
|
||||||
.I size
|
|
||||||
]
|
|
||||||
.RB [ " \-c "
|
|
||||||
.I count
|
|
||||||
]
|
|
||||||
.RB [ " \-d " ]
|
.RB [ " \-d " ]
|
||||||
.RB [ " \-f "
|
.RB [ " \-f "
|
||||||
.I config file
|
.I config file
|
||||||
@ -32,6 +26,9 @@ sysklogd \- Linux system logging utilities.
|
|||||||
.RB [ " \-p"
|
.RB [ " \-p"
|
||||||
.IB socket
|
.IB socket
|
||||||
]
|
]
|
||||||
|
.RB [ " \-R "
|
||||||
|
.I size:count
|
||||||
|
]
|
||||||
.RB [ " \-r " ]
|
.RB [ " \-r " ]
|
||||||
.RB [ " \-s "
|
.RB [ " \-s "
|
||||||
.I domainlist
|
.I domainlist
|
||||||
@ -111,32 +108,6 @@ within the syslogd.c source file. An example for a chroot() daemon is
|
|||||||
described by the people from OpenBSD at
|
described by the people from OpenBSD at
|
||||||
<http://www.guides.sk/psionic/dns/>.
|
<http://www.guides.sk/psionic/dns/>.
|
||||||
.TP
|
.TP
|
||||||
.BI "\-b " "size"
|
|
||||||
This option controls the max size of files in the built-in log-rotation.
|
|
||||||
When present on the command line it activates log rotation of all files
|
|
||||||
with the given maximum size. It is also possible to control log rotate
|
|
||||||
per log file, see
|
|
||||||
.BR syslog.conf (5)
|
|
||||||
for details.
|
|
||||||
|
|
||||||
The size argument takes optional modifiers; k, M, G. E.g., 100M is
|
|
||||||
100MB, 42k is 42 kB, etc.
|
|
||||||
|
|
||||||
Default: disabled (0).
|
|
||||||
.TP
|
|
||||||
.BI "\-c " "count"
|
|
||||||
This option controls the max number of files kept by the built-in
|
|
||||||
log-rotation. To activate the built-in log rotation this option must be
|
|
||||||
combined with the
|
|
||||||
.BI "\-b"
|
|
||||||
option. The number of files kept include both gzipped files and the
|
|
||||||
first rotated (not zipped) file. It is also possible to control log
|
|
||||||
rotate per log file, see
|
|
||||||
.BR syslog.conf (5)
|
|
||||||
for details.
|
|
||||||
|
|
||||||
Default: 5.
|
|
||||||
.TP
|
|
||||||
.B "\-d"
|
.B "\-d"
|
||||||
Turns on debug mode. Using this the daemon will not proceed a
|
Turns on debug mode. Using this the daemon will not proceed a
|
||||||
.BR fork (2)
|
.BR fork (2)
|
||||||
@ -187,6 +158,23 @@ is started and controlled by
|
|||||||
You can specify an alternative unix domain socket instead of
|
You can specify an alternative unix domain socket instead of
|
||||||
.IR /dev/log "."
|
.IR /dev/log "."
|
||||||
.TP
|
.TP
|
||||||
|
.BI "\-R " "size[:count]"
|
||||||
|
This option controls the max size and number of backup files kept by the
|
||||||
|
built-in log-rotation. When present on the command line it activates
|
||||||
|
log rotation of all files with the given maximum size. It is also
|
||||||
|
possible to control log rotate per log file, see
|
||||||
|
.BR syslog.conf (5)
|
||||||
|
for details.
|
||||||
|
|
||||||
|
The size argument takes optional modifiers; k, M, G. E.g., 100M is
|
||||||
|
100MB, 42k is 42 kB, etc.
|
||||||
|
|
||||||
|
The optional number of files kept include both gzipped files and the
|
||||||
|
first rotated (not zipped) file. The default for this, when omitted,
|
||||||
|
is 5.
|
||||||
|
|
||||||
|
Default: disabled.
|
||||||
|
.TP
|
||||||
.B "\-r"
|
.B "\-r"
|
||||||
This option will enable the facility to receive message from the
|
This option will enable the facility to receive message from the
|
||||||
network using an internet domain socket with the syslog service (see
|
network using an internet domain socket with the syslog service (see
|
||||||
|
20
src/compat.h
20
src/compat.h
@ -100,4 +100,24 @@ static inline int strtobytes(char *arg)
|
|||||||
return bytes;
|
return bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void parse_rotation(char *optarg, off_t *size, int *num)
|
||||||
|
{
|
||||||
|
char buf[100];
|
||||||
|
char *c;
|
||||||
|
int sz = 0, cnt = 0;
|
||||||
|
|
||||||
|
strlcpy(buf, optarg, sizeof(buf));
|
||||||
|
c = strchr(buf, ':');
|
||||||
|
if (c) {
|
||||||
|
*c++ = 0;
|
||||||
|
cnt = atoi(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
sz = strtobytes(buf);
|
||||||
|
if (sz > 0)
|
||||||
|
*size = sz;
|
||||||
|
if (cnt)
|
||||||
|
*num = cnt;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* SYSKLOGD_COMPAT_H_ */
|
#endif /* SYSKLOGD_COMPAT_H_ */
|
||||||
|
20
src/logger.c
20
src/logger.c
@ -219,26 +219,6 @@ static int usage(int code)
|
|||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void parse_rotation(char *optarg, off_t *size, int *num)
|
|
||||||
{
|
|
||||||
char buf[100];
|
|
||||||
char *c;
|
|
||||||
int sz = 0, cnt = 0;
|
|
||||||
|
|
||||||
strlcpy(buf, optarg, sizeof(buf));
|
|
||||||
c = strchr(buf, ':');
|
|
||||||
if (c) {
|
|
||||||
*c++ = 0;
|
|
||||||
cnt = atoi(c);
|
|
||||||
}
|
|
||||||
|
|
||||||
sz = strtobytes(buf);
|
|
||||||
if (sz > 0)
|
|
||||||
*size = sz;
|
|
||||||
if (cnt)
|
|
||||||
*num = cnt;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int c, rc, num = 5;
|
int c, rc, num = 5;
|
||||||
|
@ -353,8 +353,8 @@ int AcceptRemote = 0; /* receive messages that come via UDP */
|
|||||||
char **StripDomains = NULL; /* these domains may be stripped before writing logs */
|
char **StripDomains = NULL; /* these domains may be stripped before writing logs */
|
||||||
char **LocalHosts = NULL; /* these hosts are logged with their hostname */
|
char **LocalHosts = NULL; /* these hosts are logged with their hostname */
|
||||||
int NoHops = 1; /* Can we bounce syslog messages through an intermediate host. */
|
int NoHops = 1; /* Can we bounce syslog messages through an intermediate host. */
|
||||||
int RotateSz = 0; /* Max file size (bytes) before rotating, disabled by default */
|
static off_t RotateSz = 0; /* Max file size (bytes) before rotating, disabled by default */
|
||||||
int RotateCnt = 5; /* Max number (count) of log files to keep, set with -c <NUM> */
|
static int RotateCnt = 5; /* Max number (count) of log files to keep, set with -c <NUM> */
|
||||||
extern int errno;
|
extern int errno;
|
||||||
|
|
||||||
/* Function prototypes. */
|
/* Function prototypes. */
|
||||||
@ -413,7 +413,7 @@ int main(int argc, char *argv[])
|
|||||||
funix[i] = -1;
|
funix[i] = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((ch = getopt(argc, argv, "46Aa:b:c:dhf:l:m:np:rs:v?")) != EOF) {
|
while ((ch = getopt(argc, argv, "46Aa:dhf:l:m:np:R:rs:v?")) != EOF) {
|
||||||
switch ((char)ch) {
|
switch ((char)ch) {
|
||||||
case '4':
|
case '4':
|
||||||
family = PF_INET;
|
family = PF_INET;
|
||||||
@ -434,14 +434,6 @@ int main(int argc, char *argv[])
|
|||||||
fprintf(stderr, "Out of descriptors, ignoring %s\n", optarg);
|
fprintf(stderr, "Out of descriptors, ignoring %s\n", optarg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'b': /* Max file size (bytes) before rotating log file. */
|
|
||||||
RotateSz = strtobytes(optarg);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'c': /* Number (count) of log files to keep. */
|
|
||||||
RotateCnt = atoi(optarg);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'd': /* debug */
|
case 'd': /* debug */
|
||||||
Debug = 1;
|
Debug = 1;
|
||||||
break;
|
break;
|
||||||
@ -475,6 +467,10 @@ int main(int argc, char *argv[])
|
|||||||
funixn[0] = optarg;
|
funixn[0] = optarg;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'R':
|
||||||
|
parse_rotation(optarg, &RotateSz, &RotateCnt);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'r': /* accept remote messages */
|
case 'r': /* accept remote messages */
|
||||||
AcceptRemote = 1;
|
AcceptRemote = 1;
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user