Crontab Running script at startup
I have a .sh that executes a command. I want to use crontab -e and enter into the file @reboot /path/to/command.
How do execute this in one command instead of separately running crontab -e then manually insert the line and then saving the file.
bash cron
add a comment |
I have a .sh that executes a command. I want to use crontab -e and enter into the file @reboot /path/to/command.
How do execute this in one command instead of separately running crontab -e then manually insert the line and then saving the file.
bash cron
add a comment |
I have a .sh that executes a command. I want to use crontab -e and enter into the file @reboot /path/to/command.
How do execute this in one command instead of separately running crontab -e then manually insert the line and then saving the file.
bash cron
I have a .sh that executes a command. I want to use crontab -e and enter into the file @reboot /path/to/command.
How do execute this in one command instead of separately running crontab -e then manually insert the line and then saving the file.
bash cron
bash cron
asked Jun 2 '17 at 15:22
Murda RalphMurda Ralph
612
612
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
When you use crontab -e
a file will be created at /var/spool/cron/crontabs/
which its name is equal to your uesername.
So just redirect your desired line to this file:
echo "@reboot /path/to/file.sh" | sudo tee -a /var/spool/cron/crontabs/$USER
- using
tee -a
we are tellingtee
to append@reboot /path/to/file.sh
at the end of this file instead of overwriting it. - if it's not there it will be created.
add a comment |
Probably the right way to do it - as explained in How to programmatically add new crontab file without replacing previous one - is to dump the existing crontab to a temporary file, modify it, then read it back in. For example:
cmd='@reboot /path/to/file'
tmpfile=$(mktemp) && crontab -l > "$tmpfile"
cmd='@reboot /path/to/command'
grep -Fxq "$cmd" "$tmpfile" || echo "$cmd" >> "$tmpfile"
crontab "$tmpfile" && rm -- "$tmpfile"
A "quick'n'dirty" option - if you don't care about checking - would be
crontab -l | sed '$a@reboot /path/to/command' | crontab -
assuming GNU sed, which allows a
ppend text on one line.
Note: unlike writing to /var/spool/cron/crontabs
directly, this approach doesn't need sudo
(because crontab
is setuid).
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%2f921491%2fcrontab-running-script-at-startup%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
When you use crontab -e
a file will be created at /var/spool/cron/crontabs/
which its name is equal to your uesername.
So just redirect your desired line to this file:
echo "@reboot /path/to/file.sh" | sudo tee -a /var/spool/cron/crontabs/$USER
- using
tee -a
we are tellingtee
to append@reboot /path/to/file.sh
at the end of this file instead of overwriting it. - if it's not there it will be created.
add a comment |
When you use crontab -e
a file will be created at /var/spool/cron/crontabs/
which its name is equal to your uesername.
So just redirect your desired line to this file:
echo "@reboot /path/to/file.sh" | sudo tee -a /var/spool/cron/crontabs/$USER
- using
tee -a
we are tellingtee
to append@reboot /path/to/file.sh
at the end of this file instead of overwriting it. - if it's not there it will be created.
add a comment |
When you use crontab -e
a file will be created at /var/spool/cron/crontabs/
which its name is equal to your uesername.
So just redirect your desired line to this file:
echo "@reboot /path/to/file.sh" | sudo tee -a /var/spool/cron/crontabs/$USER
- using
tee -a
we are tellingtee
to append@reboot /path/to/file.sh
at the end of this file instead of overwriting it. - if it's not there it will be created.
When you use crontab -e
a file will be created at /var/spool/cron/crontabs/
which its name is equal to your uesername.
So just redirect your desired line to this file:
echo "@reboot /path/to/file.sh" | sudo tee -a /var/spool/cron/crontabs/$USER
- using
tee -a
we are tellingtee
to append@reboot /path/to/file.sh
at the end of this file instead of overwriting it. - if it's not there it will be created.
edited Jun 2 '17 at 15:46
answered Jun 2 '17 at 15:31
RavexinaRavexina
32k1482112
32k1482112
add a comment |
add a comment |
Probably the right way to do it - as explained in How to programmatically add new crontab file without replacing previous one - is to dump the existing crontab to a temporary file, modify it, then read it back in. For example:
cmd='@reboot /path/to/file'
tmpfile=$(mktemp) && crontab -l > "$tmpfile"
cmd='@reboot /path/to/command'
grep -Fxq "$cmd" "$tmpfile" || echo "$cmd" >> "$tmpfile"
crontab "$tmpfile" && rm -- "$tmpfile"
A "quick'n'dirty" option - if you don't care about checking - would be
crontab -l | sed '$a@reboot /path/to/command' | crontab -
assuming GNU sed, which allows a
ppend text on one line.
Note: unlike writing to /var/spool/cron/crontabs
directly, this approach doesn't need sudo
(because crontab
is setuid).
add a comment |
Probably the right way to do it - as explained in How to programmatically add new crontab file without replacing previous one - is to dump the existing crontab to a temporary file, modify it, then read it back in. For example:
cmd='@reboot /path/to/file'
tmpfile=$(mktemp) && crontab -l > "$tmpfile"
cmd='@reboot /path/to/command'
grep -Fxq "$cmd" "$tmpfile" || echo "$cmd" >> "$tmpfile"
crontab "$tmpfile" && rm -- "$tmpfile"
A "quick'n'dirty" option - if you don't care about checking - would be
crontab -l | sed '$a@reboot /path/to/command' | crontab -
assuming GNU sed, which allows a
ppend text on one line.
Note: unlike writing to /var/spool/cron/crontabs
directly, this approach doesn't need sudo
(because crontab
is setuid).
add a comment |
Probably the right way to do it - as explained in How to programmatically add new crontab file without replacing previous one - is to dump the existing crontab to a temporary file, modify it, then read it back in. For example:
cmd='@reboot /path/to/file'
tmpfile=$(mktemp) && crontab -l > "$tmpfile"
cmd='@reboot /path/to/command'
grep -Fxq "$cmd" "$tmpfile" || echo "$cmd" >> "$tmpfile"
crontab "$tmpfile" && rm -- "$tmpfile"
A "quick'n'dirty" option - if you don't care about checking - would be
crontab -l | sed '$a@reboot /path/to/command' | crontab -
assuming GNU sed, which allows a
ppend text on one line.
Note: unlike writing to /var/spool/cron/crontabs
directly, this approach doesn't need sudo
(because crontab
is setuid).
Probably the right way to do it - as explained in How to programmatically add new crontab file without replacing previous one - is to dump the existing crontab to a temporary file, modify it, then read it back in. For example:
cmd='@reboot /path/to/file'
tmpfile=$(mktemp) && crontab -l > "$tmpfile"
cmd='@reboot /path/to/command'
grep -Fxq "$cmd" "$tmpfile" || echo "$cmd" >> "$tmpfile"
crontab "$tmpfile" && rm -- "$tmpfile"
A "quick'n'dirty" option - if you don't care about checking - would be
crontab -l | sed '$a@reboot /path/to/command' | crontab -
assuming GNU sed, which allows a
ppend text on one line.
Note: unlike writing to /var/spool/cron/crontabs
directly, this approach doesn't need sudo
(because crontab
is setuid).
edited Jun 2 '17 at 17:50
answered Jun 2 '17 at 17:40
steeldriversteeldriver
66.6k11107179
66.6k11107179
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%2f921491%2fcrontab-running-script-at-startup%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