mirror of
https://github.com/systemd/systemd.git
synced 2024-10-28 20:25:38 +03:00
journalctl: add ability to vacuum and rotate in one step
journalctl --vacuum-*= only vacuums archived files. To archive all active files the rotate operation is used. Let's add a new switch that combines both, so that the user a single command to first move all running journal files into archival and then vacuum them. See: #1017
This commit is contained in:
parent
d03077759e
commit
8df64fd01d
@ -167,6 +167,7 @@ static enum {
|
||||
ACTION_SYNC,
|
||||
ACTION_ROTATE,
|
||||
ACTION_VACUUM,
|
||||
ACTION_ROTATE_AND_VACUUM,
|
||||
ACTION_LIST_FIELDS,
|
||||
ACTION_LIST_FIELD_NAMES,
|
||||
} arg_action = ACTION_SHOW;
|
||||
@ -687,7 +688,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return r;
|
||||
}
|
||||
|
||||
arg_action = ACTION_VACUUM;
|
||||
arg_action = arg_action == ACTION_ROTATE ? ACTION_ROTATE_AND_VACUUM : ACTION_VACUUM;
|
||||
break;
|
||||
|
||||
case ARG_VACUUM_FILES:
|
||||
@ -697,7 +698,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return r;
|
||||
}
|
||||
|
||||
arg_action = ACTION_VACUUM;
|
||||
arg_action = arg_action == ACTION_ROTATE ? ACTION_ROTATE_AND_VACUUM : ACTION_VACUUM;
|
||||
break;
|
||||
|
||||
case ARG_VACUUM_TIME:
|
||||
@ -707,7 +708,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return r;
|
||||
}
|
||||
|
||||
arg_action = ACTION_VACUUM;
|
||||
arg_action = arg_action == ACTION_ROTATE ? ACTION_ROTATE_AND_VACUUM : ACTION_VACUUM;
|
||||
break;
|
||||
|
||||
#if HAVE_GCRYPT
|
||||
@ -896,7 +897,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
break;
|
||||
|
||||
case ARG_ROTATE:
|
||||
arg_action = ACTION_ROTATE;
|
||||
arg_action = arg_action == ACTION_VACUUM ? ACTION_ROTATE_AND_VACUUM : ACTION_ROTATE;
|
||||
break;
|
||||
|
||||
case ARG_SYNC:
|
||||
@ -2120,6 +2121,7 @@ int main(int argc, char *argv[]) {
|
||||
case ACTION_DISK_USAGE:
|
||||
case ACTION_LIST_BOOTS:
|
||||
case ACTION_VACUUM:
|
||||
case ACTION_ROTATE_AND_VACUUM:
|
||||
case ACTION_LIST_FIELDS:
|
||||
case ACTION_LIST_FIELD_NAMES:
|
||||
/* These ones require access to the journal files, continue below. */
|
||||
@ -2237,6 +2239,14 @@ int main(int argc, char *argv[]) {
|
||||
r = list_boots(j);
|
||||
goto finish;
|
||||
|
||||
case ACTION_ROTATE_AND_VACUUM:
|
||||
|
||||
r = rotate();
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
_fallthrough_;
|
||||
|
||||
case ACTION_VACUUM: {
|
||||
Directory *d;
|
||||
Iterator i;
|
||||
|
Loading…
Reference in New Issue
Block a user