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 @@
ExamplesCopy 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