Escape in systemd.timer
I have trouble to escape the following part of my systemd.timer
--files-from=<(ssh -p 182 web-iot.com 'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;')
tried so far:
--files-from=\<(ssh -p 182 web-iot.com \'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;\')
without success, i could use a shell file but i think it should be possible.
Full systemd.timer exec:
ExecStartPre=/usr/bin/rsync
--verbose
--archive
--times
--partial
--delete
--progress
--bwlimit=7000
--rsh="ssh -p 182"
--files-from=\<(ssh -p 182 web-iot.com 'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;')
web-iot.com:/mnt/backups/postgresql/box/snapshots/
/var/lib/postgresql/backups/box
systemd
add a comment |
I have trouble to escape the following part of my systemd.timer
--files-from=<(ssh -p 182 web-iot.com 'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;')
tried so far:
--files-from=\<(ssh -p 182 web-iot.com \'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;\')
without success, i could use a shell file but i think it should be possible.
Full systemd.timer exec:
ExecStartPre=/usr/bin/rsync
--verbose
--archive
--times
--partial
--delete
--progress
--bwlimit=7000
--rsh="ssh -p 182"
--files-from=\<(ssh -p 182 web-iot.com 'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;')
web-iot.com:/mnt/backups/postgresql/box/snapshots/
/var/lib/postgresql/backups/box
systemd
Can you provide the complete line? Including which systemd directive you're using?
– Olorin
Jan 24 at 8:28
added full comand
– opHASnoNAME
Jan 24 at 8:31
add a comment |
I have trouble to escape the following part of my systemd.timer
--files-from=<(ssh -p 182 web-iot.com 'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;')
tried so far:
--files-from=\<(ssh -p 182 web-iot.com \'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;\')
without success, i could use a shell file but i think it should be possible.
Full systemd.timer exec:
ExecStartPre=/usr/bin/rsync
--verbose
--archive
--times
--partial
--delete
--progress
--bwlimit=7000
--rsh="ssh -p 182"
--files-from=\<(ssh -p 182 web-iot.com 'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;')
web-iot.com:/mnt/backups/postgresql/box/snapshots/
/var/lib/postgresql/backups/box
systemd
I have trouble to escape the following part of my systemd.timer
--files-from=<(ssh -p 182 web-iot.com 'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;')
tried so far:
--files-from=\<(ssh -p 182 web-iot.com \'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;\')
without success, i could use a shell file but i think it should be possible.
Full systemd.timer exec:
ExecStartPre=/usr/bin/rsync
--verbose
--archive
--times
--partial
--delete
--progress
--bwlimit=7000
--rsh="ssh -p 182"
--files-from=\<(ssh -p 182 web-iot.com 'find /mnt/backups/postgresql/box/snapshots/ -mtime -7 -type f -exec basename {} ;')
web-iot.com:/mnt/backups/postgresql/box/snapshots/
/var/lib/postgresql/backups/box
systemd
systemd
edited Jan 24 at 8:31
opHASnoNAME
asked Jan 24 at 8:22
opHASnoNAMEopHASnoNAME
1135
1135
Can you provide the complete line? Including which systemd directive you're using?
– Olorin
Jan 24 at 8:28
added full comand
– opHASnoNAME
Jan 24 at 8:31
add a comment |
Can you provide the complete line? Including which systemd directive you're using?
– Olorin
Jan 24 at 8:28
added full comand
– opHASnoNAME
Jan 24 at 8:31
Can you provide the complete line? Including which systemd directive you're using?
– Olorin
Jan 24 at 8:28
Can you provide the complete line? Including which systemd directive you're using?
– Olorin
Jan 24 at 8:28
added full comand
– opHASnoNAME
Jan 24 at 8:31
added full comand
– opHASnoNAME
Jan 24 at 8:31
add a comment |
1 Answer
1
active
oldest
votes
<( )
is process substitution, it's a special Bash syntax (also in some other shells, but not in dash). Systemd doesn't use a shell to run the command in Exec*
lines, and it only does some minimal processing itself (including very specific variable expansion, templating, etc.).
So you cannot use <( )
in the ExecStartPre
line directly. At the very least, you'll have to wrap it in a shell:
ExecStartPre=/bin/bash -c '/usr/bin/rsync
--verbose
--archive
--times
--partial
...
(and escape accordingly). Then systemd will run bash, and bash will process the process substitution.
But it would be better to use a shell script here.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1112426%2fescape-in-systemd-timer%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
<( )
is process substitution, it's a special Bash syntax (also in some other shells, but not in dash). Systemd doesn't use a shell to run the command in Exec*
lines, and it only does some minimal processing itself (including very specific variable expansion, templating, etc.).
So you cannot use <( )
in the ExecStartPre
line directly. At the very least, you'll have to wrap it in a shell:
ExecStartPre=/bin/bash -c '/usr/bin/rsync
--verbose
--archive
--times
--partial
...
(and escape accordingly). Then systemd will run bash, and bash will process the process substitution.
But it would be better to use a shell script here.
add a comment |
<( )
is process substitution, it's a special Bash syntax (also in some other shells, but not in dash). Systemd doesn't use a shell to run the command in Exec*
lines, and it only does some minimal processing itself (including very specific variable expansion, templating, etc.).
So you cannot use <( )
in the ExecStartPre
line directly. At the very least, you'll have to wrap it in a shell:
ExecStartPre=/bin/bash -c '/usr/bin/rsync
--verbose
--archive
--times
--partial
...
(and escape accordingly). Then systemd will run bash, and bash will process the process substitution.
But it would be better to use a shell script here.
add a comment |
<( )
is process substitution, it's a special Bash syntax (also in some other shells, but not in dash). Systemd doesn't use a shell to run the command in Exec*
lines, and it only does some minimal processing itself (including very specific variable expansion, templating, etc.).
So you cannot use <( )
in the ExecStartPre
line directly. At the very least, you'll have to wrap it in a shell:
ExecStartPre=/bin/bash -c '/usr/bin/rsync
--verbose
--archive
--times
--partial
...
(and escape accordingly). Then systemd will run bash, and bash will process the process substitution.
But it would be better to use a shell script here.
<( )
is process substitution, it's a special Bash syntax (also in some other shells, but not in dash). Systemd doesn't use a shell to run the command in Exec*
lines, and it only does some minimal processing itself (including very specific variable expansion, templating, etc.).
So you cannot use <( )
in the ExecStartPre
line directly. At the very least, you'll have to wrap it in a shell:
ExecStartPre=/bin/bash -c '/usr/bin/rsync
--verbose
--archive
--times
--partial
...
(and escape accordingly). Then systemd will run bash, and bash will process the process substitution.
But it would be better to use a shell script here.
answered Jan 24 at 8:36
OlorinOlorin
2,657924
2,657924
add a comment |
add a comment |
Thanks for contributing an answer to Ask Ubuntu!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1112426%2fescape-in-systemd-timer%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Can you provide the complete line? Including which systemd directive you're using?
– Olorin
Jan 24 at 8:28
added full comand
– opHASnoNAME
Jan 24 at 8:31