diff --git a/man/systemd-journal-remote.xml b/man/systemd-journal-remote.xml index d7750e416eb..d37b9b20210 100644 --- a/man/systemd-journal-remote.xml +++ b/man/systemd-journal-remote.xml @@ -106,6 +106,8 @@ + SOURCES + When is given as a positional argument, events will be read from standard input. Other positional arguments will be treated as filenames @@ -124,6 +126,20 @@ instance, e.g. http://some.host:19531/ or https://some.host:19531/. + + + + + Program to invoke to retrieve data. The journal + event stream must be generated on standard output. + + Examples: + + --getter='curl "-HAccept: application/vnd.fdo.journal" https://some.host:19531/' + + --getter='wget --header="Accept: application/vnd.fdo.journal" -O- https://some.host:19531/' + + Passive sources can be specified in the following @@ -225,8 +241,9 @@ escaped hostname of the source endpoint of the connection, or the numerical address if the hostname cannot be determined. - In case of "active" sources, the output file name must - always be given explicitly. + In the case that "active" sources are given by the positional + arguments or option, the output file name + must always be given explicitly. @@ -265,20 +282,6 @@ The default is no. - - - - Program to invoke to retrieve data. The journal - event stream must be generated on standard output. - - Examples: - - --getter='curl "-HAccept: application/vnd.fdo.journal" https://some.host:19531/' - - --getter='wget --header="Accept: application/vnd.fdo.journal" -O- https://some.host:19531/' - - - @@ -288,7 +291,7 @@ Examples Copy local journal events to a different journal directory: -journalctl -o export | systemd-journal-remote -o /tmp/dir - +journalctl -o export | systemd-journal-remote -o /tmp/dir/foo.journal - diff --git a/src/journal-remote/journal-remote.c b/src/journal-remote/journal-remote.c index 1ed350649cf..7201421d915 100644 --- a/src/journal-remote/journal-remote.c +++ b/src/journal-remote/journal-remote.c @@ -1495,10 +1495,15 @@ static int parse_argv(int argc, char *argv[]) { arg_split_mode = JOURNAL_WRITE_SPLIT_NONE; } - if (arg_split_mode == JOURNAL_WRITE_SPLIT_NONE - && arg_output && is_dir(arg_output, true) > 0) { - log_error("For SplitMode=none, output must be a file."); - return -EINVAL; + if (arg_split_mode == JOURNAL_WRITE_SPLIT_NONE && arg_output) { + if (is_dir(arg_output, true) > 0) { + log_error("For SplitMode=none, output must be a file."); + return -EINVAL; + } + if (!endswith(arg_output, ".journal")) { + log_error("For SplitMode=none, output file name must end with .journal."); + return -EINVAL; + } } if (arg_split_mode == JOURNAL_WRITE_SPLIT_HOST