summaryrefslogtreecommitdiff
path: root/savelog.8
blob: 0ad6095b9bd2602474fade24798367720192db82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
.\" -*- nroff -*-
.TH SAVELOG 8 "30 Jun 2010" "Debian"
.SH NAME
savelog \- save a log file
.SH SYNOPSIS
.B savelog
[\-m mode] [\-u user] [\-g group] [\-t] [\-p] [\-c cycle] [\-l] [\-j]
[\-J] [\-1\ .\|.\ \-9] [\-C] [\-d] [\-l] [\-r rolldir] [\-n] [\-q] [\-D dateformat] file ...
.SH DESCRIPTION
The
.B savelog
command saves and optionally compresses old copies of files.  Older versions
of
.I file
are named:
.RS

.IR "file" "." "<number>" "" "<compress_suffix>"

.RE
where
.I <number>
is the version number, 0 being the newest.  Version numbers > 0 are compressed
unless
.B \-l
prevents it.  Version number 0 is not compressed because a process might still
have
.I file
opened for I/O.  Only
.I cycle
versions of the file are kept.

If the file does not exist and
.B \-t
was given, it will be created.

For files that do exist and have lengths greater than zero, the following
actions are performed:

.IP 1)
Version numbered files are cycled.  Version
.IR "file" "." "2"
is moved to version
.IR "file" "." "3",
version
.IR "file" "." "1"
is moved to version
.IR "file" "." "2",
and so on.  Finally version
.IR "file" "." "0"
is moved to version
.IR "file" "." "1",
and version
.I "file"
is deleted.  Both
compressed names and uncompressed names are cycled, regardless of
.BR \-l .
Missing version files are ignored.

.IP 2)
The new
.IR "file" "." "1"
is compressed unless the
.B \-l
flag was given.  It is changed subject to the
.BR "\-m" ", " "\-u" ", and " "\-g"
flags.

.IP 3)
The main
.IR "file"
is moved to
.IR "file" "." "0".

.IP 4)
If the
.BR "\-m" ", " "\-u" ", " "\-g" ",  " "\-t" ", or " "\-p"
flags are given, then an empty
.I file
is created subject to the given flags.  With the
.B \-p
flag, the file is created with the same owner, group, and permissions as
before.

.IP 5)
The new
.IR "file" "." "0"
is changed subject to the
.BR "\-m" ", " "\-u" ", and " "\-g"
flags.

.SH OPTIONS
.TP
.B "\-m mode"
chmod the log files to mode, implies
.B \-t
.TP
.B "\-u user"
chown log files to user, implies
.B \-t
.TP
.B "\-g group"
chgrp log files to group, implies
.B \-t
.TP
.B "\-c cycle"
Save cycle versions of the logfile (default: 7). The
.I cycle
count must be at least 2.
.TP
.B \-t
touch new logfile into existence
.TP
.B \-l
don't compress any log files (default: do compress)
.TP
.B \-p
preserve owner, group, and permissions of logfile
.TP
.B \-j
compress with bzip2 instead of gzip
.TP
.B \-J
compress with xz instead of gzip

For xz no strength option is set, and xz decides on the default based on the total amount of physical RAM. Note that xz can use a very large amount of memory for the higher compression levels.
.TP
.B \-1\ .\|.\ \-9
compression strength or memory usage (default: 9, except for xz)
.TP
.B \-C
force cleanup of cycled logfiles
.TP
.B \-d
use standard date for rolling
.TP
.B "\-D dateformat"
override date format, in the form of
.I [MMDDhhmm[[CC]YY][.ss]]
.TP
.B \-r
use
.I rolldir
instead of . to roll files
.TP
.B \-n
do not rotate empty files
.TP
.B \-q
be quiet
.SH BUGS
If a process is still writing to
.IR "file.0" ","
and savelog moves it to
.I file.1
and compresses it, data could be lost.

.SH "SEE ALSO"
.BR logrotate (8)