The rotate_rds*() functions are wrappers around base::saveRDS() that
create a backup of the destination file (if it exists) instead of just
overwriting it.
rotate_rds(
object,
file = "",
ascii = FALSE,
version = NULL,
compress = TRUE,
refhook = NULL,
...,
on_change_only = FALSE
)rotate_rds_date(
object,
file = "",
ascii = FALSE,
version = NULL,
compress = TRUE,
refhook = NULL,
...,
age = -1L,
on_change_only = FALSE
)
rotate_rds_time(
object,
file = "",
ascii = FALSE,
version = NULL,
compress = TRUE,
refhook = NULL,
...,
age = -1L,
on_change_only = FALSE
)
the path to file (invisibly)
R object to serialize.
a connection or the name of the file where the R object is saved to or read from.
a logical. If TRUE or NA, an ASCII
representation is written; otherwise (default), a binary one is used.
See the comments in the help for save.
the workspace format version to use. NULL
specifies the current default version (3). The only other supported
value is 2, the default from R 1.4.0 to R 3.5.0.
a logical specifying whether saving to a named file is
to use "gzip" compression, or one of "gzip",
"bzip2" or "xz" to indicate the type of compression to
be used. Ignored if file is a connection.
a hook function for handling reference objects.
Arguments passed on to rotate, rotate_date, rotate_time
max_backupsmaximum number of backups to keep
an integer scalar: Maximum number of backups to keep
In addition for timestamped backups the following value are supported:
a Date scalar: Remove all backups before this date
a character scalar representing a Date in ISO format (e.g. "2019-12-31")
a character scalar representing an Interval in the form "<number> <interval>" (see below for more info)
sizescalar integer, character or Inf. Backup/rotate only if
file is larger than this size. Integers are interpreted as bytes. You
can pass character vectors that contain a file size suffix like 1k
(kilobytes), 3M (megabytes), 4G (gigabytes), 5T (terabytes). Instead
of these short forms you can also be explicit and use the IEC suffixes
KiB, MiB, GiB, TiB. In Both cases 1 kilobyte is 1024 bytes, 1
megabyte is 1024 kilobytes, etc... .
(if age and size are provided, both criteria must be TRUE to
trigger rotation)
dircharacter scalar. The directory in which the backups
of file are stored (defaults to dirname(file))
compressionWhether or not backups should be compressed
dry_runlogical scalar. If TRUE no changes are applied to the
file system (no files are created or deleted)
verboselogical scalar. If TRUE additional informative messages
are printed
create_filelogical scalar. If TRUE create an empty file in
place of file after rotating.
formata scalar character that can be a subset of of valid
strftime() formatting strings. The default setting is
"%Y-%m-%d--%H-%M-%S".
You can use an arbitrary number of dashes anywhere in the format, so
"%Y-%m-%d--%H-%M-%S" and "%Y%m%d%H%M%S" are both legal.
T and _ can also be used as separators. For example, the following
datetime formats are also possible:
%Y-%m-%d_%H-%M-%S (Python logging default),
%Y%m%dT%H%M%S (ISO 8601)
All datetime components except %Y are optional. If you leave out part
of the timestamp, the first point in time in the period is assumed. For
example (assuming the current year is 2019) %Y is identical to
2019-01-01--00-00-00.
The timestamps must be lexically sortable, so "%Y-%m-%d" is legal,
"%m-%d-%Y" and %Y-%d are not.
nowThe current Date or time (POSIXct) as a scalar. You can pass a
custom value here to to override the real system time. As a convenience you
can also pass in character strings that follow the guidelines outlined
above for format, but please note that these differ from the formats
understood by as.POSIXct() or as.Date().
overwritelogical scalar. If TRUE overwrite backups if a backup
of the same name (usually due to timestamp collision) exists.
logical scalaror a list. Rotate only if object
is different from the object saved in file. If a list, arguments
that will be passed on to data.table::all.equal (only when both obects
are data.tables)
minimum age after which to backup/rotate a file; can be
a character scalar representing an Interval in the form
"<number> <interval>" (e.g. "2 months", see Intervals section below).
a Date or a character scalar representing a Date for
a fixed point in time after which to backup/rotate. See format for
which Date/Datetime formats are supported by rotor.
(if age and size are provided, both criteria must be TRUE to
trigger rotation)
dest <- tempfile()
rotate_rds(iris, dest)
rotate_rds(iris, dest)
rotate_rds(iris, dest)
list_backups(dest)
# cleanup
unlink(list_backups(dest))
unlink(dest)
Run the code above in your browser using DataLab