Cronab fails because shell path not found





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







2















I am looking at the failure output of my crontab.



* * * * * user /usr/bin/python3 /home/user/src/code/prod.py


I get the error /bin/sh: 1: caleb: not found.



This corresponds to



X-Cron-Env: <SHELL=/bin/sh>


which is part of the email the crontab sent me. I created the crontab using



crontab -e


All of it looks like a simple setup is there anything that I am missing?









share







New contributor




caleb baker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 3





    When you run crontab -e it is already using your username so there is no need to add your username to the beginning of the command. The only place on the system that you add the username is in the /etc/crontab file.

    – Terrance
    10 hours ago











  • @Terrance that fixed my problem. i got my solution from cyberciti.biz/faq/… And I looked at the format and paid no attention to the "for system jobs"

    – caleb baker
    10 hours ago




















2















I am looking at the failure output of my crontab.



* * * * * user /usr/bin/python3 /home/user/src/code/prod.py


I get the error /bin/sh: 1: caleb: not found.



This corresponds to



X-Cron-Env: <SHELL=/bin/sh>


which is part of the email the crontab sent me. I created the crontab using



crontab -e


All of it looks like a simple setup is there anything that I am missing?









share







New contributor




caleb baker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 3





    When you run crontab -e it is already using your username so there is no need to add your username to the beginning of the command. The only place on the system that you add the username is in the /etc/crontab file.

    – Terrance
    10 hours ago











  • @Terrance that fixed my problem. i got my solution from cyberciti.biz/faq/… And I looked at the format and paid no attention to the "for system jobs"

    – caleb baker
    10 hours ago
















2












2








2








I am looking at the failure output of my crontab.



* * * * * user /usr/bin/python3 /home/user/src/code/prod.py


I get the error /bin/sh: 1: caleb: not found.



This corresponds to



X-Cron-Env: <SHELL=/bin/sh>


which is part of the email the crontab sent me. I created the crontab using



crontab -e


All of it looks like a simple setup is there anything that I am missing?









share







New contributor




caleb baker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












I am looking at the failure output of my crontab.



* * * * * user /usr/bin/python3 /home/user/src/code/prod.py


I get the error /bin/sh: 1: caleb: not found.



This corresponds to



X-Cron-Env: <SHELL=/bin/sh>


which is part of the email the crontab sent me. I created the crontab using



crontab -e


All of it looks like a simple setup is there anything that I am missing?







16.04 cron





share







New contributor




caleb baker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.










share







New contributor




caleb baker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








share



share






New contributor




caleb baker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 10 hours ago









caleb bakercaleb baker

132




132




New contributor




caleb baker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





caleb baker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






caleb baker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








  • 3





    When you run crontab -e it is already using your username so there is no need to add your username to the beginning of the command. The only place on the system that you add the username is in the /etc/crontab file.

    – Terrance
    10 hours ago











  • @Terrance that fixed my problem. i got my solution from cyberciti.biz/faq/… And I looked at the format and paid no attention to the "for system jobs"

    – caleb baker
    10 hours ago
















  • 3





    When you run crontab -e it is already using your username so there is no need to add your username to the beginning of the command. The only place on the system that you add the username is in the /etc/crontab file.

    – Terrance
    10 hours ago











  • @Terrance that fixed my problem. i got my solution from cyberciti.biz/faq/… And I looked at the format and paid no attention to the "for system jobs"

    – caleb baker
    10 hours ago










3




3





When you run crontab -e it is already using your username so there is no need to add your username to the beginning of the command. The only place on the system that you add the username is in the /etc/crontab file.

– Terrance
10 hours ago





When you run crontab -e it is already using your username so there is no need to add your username to the beginning of the command. The only place on the system that you add the username is in the /etc/crontab file.

– Terrance
10 hours ago













@Terrance that fixed my problem. i got my solution from cyberciti.biz/faq/… And I looked at the format and paid no attention to the "for system jobs"

– caleb baker
10 hours ago







@Terrance that fixed my problem. i got my solution from cyberciti.biz/faq/… And I looked at the format and paid no attention to the "for system jobs"

– caleb baker
10 hours ago












1 Answer
1






active

oldest

votes


















5














If you are using crontab -e that set of Cron tasks runs as the user which crontab -e was executed as - that is, your user user.



Therefore, you should only provide the cron entry WITHOUT the user bits, i.e.:



* * * * * /usr/bin/python3 /home/user/src/code/prod.py


The user definition you were attempting to use should only be used in the system crontab in /etc/crontab and in entries in cron definitions under /etc/cron.d/.






share|improve this answer


























  • Not to nitpick, but the "cron user" probably has /usr/bin in its $PATH. So, * * * * * python3 /home/user/src/code/prod.py will probably work.

    – Seamus
    10 hours ago






  • 2





    @Seamus when using crontabs it's generally better to use full paths just to rule out that problem.

    – Thomas Ward
    10 hours ago











  • It's redundant... but I suppose that could be considered "generally better", for some. I'm only trying to point out that the "cron user" does have an environment, and it can be determined if it's not known.

    – Seamus
    10 hours ago








  • 1





    @Seamus I often have to explain to people why their jobs that run fine from a bash prompt don't work correctly under cron (or Autosys etc.). I tell them that it's best to use the full path to everything they can, and explicitly set PATH= what they want it to be, rather than rely on "probably".

    – Monty Harder
    6 hours ago












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
});


}
});






caleb baker is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1131213%2fcronab-fails-because-shell-path-not-found%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









5














If you are using crontab -e that set of Cron tasks runs as the user which crontab -e was executed as - that is, your user user.



Therefore, you should only provide the cron entry WITHOUT the user bits, i.e.:



* * * * * /usr/bin/python3 /home/user/src/code/prod.py


The user definition you were attempting to use should only be used in the system crontab in /etc/crontab and in entries in cron definitions under /etc/cron.d/.






share|improve this answer


























  • Not to nitpick, but the "cron user" probably has /usr/bin in its $PATH. So, * * * * * python3 /home/user/src/code/prod.py will probably work.

    – Seamus
    10 hours ago






  • 2





    @Seamus when using crontabs it's generally better to use full paths just to rule out that problem.

    – Thomas Ward
    10 hours ago











  • It's redundant... but I suppose that could be considered "generally better", for some. I'm only trying to point out that the "cron user" does have an environment, and it can be determined if it's not known.

    – Seamus
    10 hours ago








  • 1





    @Seamus I often have to explain to people why their jobs that run fine from a bash prompt don't work correctly under cron (or Autosys etc.). I tell them that it's best to use the full path to everything they can, and explicitly set PATH= what they want it to be, rather than rely on "probably".

    – Monty Harder
    6 hours ago
















5














If you are using crontab -e that set of Cron tasks runs as the user which crontab -e was executed as - that is, your user user.



Therefore, you should only provide the cron entry WITHOUT the user bits, i.e.:



* * * * * /usr/bin/python3 /home/user/src/code/prod.py


The user definition you were attempting to use should only be used in the system crontab in /etc/crontab and in entries in cron definitions under /etc/cron.d/.






share|improve this answer


























  • Not to nitpick, but the "cron user" probably has /usr/bin in its $PATH. So, * * * * * python3 /home/user/src/code/prod.py will probably work.

    – Seamus
    10 hours ago






  • 2





    @Seamus when using crontabs it's generally better to use full paths just to rule out that problem.

    – Thomas Ward
    10 hours ago











  • It's redundant... but I suppose that could be considered "generally better", for some. I'm only trying to point out that the "cron user" does have an environment, and it can be determined if it's not known.

    – Seamus
    10 hours ago








  • 1





    @Seamus I often have to explain to people why their jobs that run fine from a bash prompt don't work correctly under cron (or Autosys etc.). I tell them that it's best to use the full path to everything they can, and explicitly set PATH= what they want it to be, rather than rely on "probably".

    – Monty Harder
    6 hours ago














5












5








5







If you are using crontab -e that set of Cron tasks runs as the user which crontab -e was executed as - that is, your user user.



Therefore, you should only provide the cron entry WITHOUT the user bits, i.e.:



* * * * * /usr/bin/python3 /home/user/src/code/prod.py


The user definition you were attempting to use should only be used in the system crontab in /etc/crontab and in entries in cron definitions under /etc/cron.d/.






share|improve this answer















If you are using crontab -e that set of Cron tasks runs as the user which crontab -e was executed as - that is, your user user.



Therefore, you should only provide the cron entry WITHOUT the user bits, i.e.:



* * * * * /usr/bin/python3 /home/user/src/code/prod.py


The user definition you were attempting to use should only be used in the system crontab in /etc/crontab and in entries in cron definitions under /etc/cron.d/.







share|improve this answer














share|improve this answer



share|improve this answer








edited 10 hours ago

























answered 10 hours ago









Thomas WardThomas Ward

45.1k23125178




45.1k23125178













  • Not to nitpick, but the "cron user" probably has /usr/bin in its $PATH. So, * * * * * python3 /home/user/src/code/prod.py will probably work.

    – Seamus
    10 hours ago






  • 2





    @Seamus when using crontabs it's generally better to use full paths just to rule out that problem.

    – Thomas Ward
    10 hours ago











  • It's redundant... but I suppose that could be considered "generally better", for some. I'm only trying to point out that the "cron user" does have an environment, and it can be determined if it's not known.

    – Seamus
    10 hours ago








  • 1





    @Seamus I often have to explain to people why their jobs that run fine from a bash prompt don't work correctly under cron (or Autosys etc.). I tell them that it's best to use the full path to everything they can, and explicitly set PATH= what they want it to be, rather than rely on "probably".

    – Monty Harder
    6 hours ago



















  • Not to nitpick, but the "cron user" probably has /usr/bin in its $PATH. So, * * * * * python3 /home/user/src/code/prod.py will probably work.

    – Seamus
    10 hours ago






  • 2





    @Seamus when using crontabs it's generally better to use full paths just to rule out that problem.

    – Thomas Ward
    10 hours ago











  • It's redundant... but I suppose that could be considered "generally better", for some. I'm only trying to point out that the "cron user" does have an environment, and it can be determined if it's not known.

    – Seamus
    10 hours ago








  • 1





    @Seamus I often have to explain to people why their jobs that run fine from a bash prompt don't work correctly under cron (or Autosys etc.). I tell them that it's best to use the full path to everything they can, and explicitly set PATH= what they want it to be, rather than rely on "probably".

    – Monty Harder
    6 hours ago

















Not to nitpick, but the "cron user" probably has /usr/bin in its $PATH. So, * * * * * python3 /home/user/src/code/prod.py will probably work.

– Seamus
10 hours ago





Not to nitpick, but the "cron user" probably has /usr/bin in its $PATH. So, * * * * * python3 /home/user/src/code/prod.py will probably work.

– Seamus
10 hours ago




2




2





@Seamus when using crontabs it's generally better to use full paths just to rule out that problem.

– Thomas Ward
10 hours ago





@Seamus when using crontabs it's generally better to use full paths just to rule out that problem.

– Thomas Ward
10 hours ago













It's redundant... but I suppose that could be considered "generally better", for some. I'm only trying to point out that the "cron user" does have an environment, and it can be determined if it's not known.

– Seamus
10 hours ago







It's redundant... but I suppose that could be considered "generally better", for some. I'm only trying to point out that the "cron user" does have an environment, and it can be determined if it's not known.

– Seamus
10 hours ago






1




1





@Seamus I often have to explain to people why their jobs that run fine from a bash prompt don't work correctly under cron (or Autosys etc.). I tell them that it's best to use the full path to everything they can, and explicitly set PATH= what they want it to be, rather than rely on "probably".

– Monty Harder
6 hours ago





@Seamus I often have to explain to people why their jobs that run fine from a bash prompt don't work correctly under cron (or Autosys etc.). I tell them that it's best to use the full path to everything they can, and explicitly set PATH= what they want it to be, rather than rely on "probably".

– Monty Harder
6 hours ago










caleb baker is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















caleb baker is a new contributor. Be nice, and check out our Code of Conduct.













caleb baker is a new contributor. Be nice, and check out our Code of Conduct.












caleb baker is a new contributor. Be nice, and check out our Code of Conduct.
















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.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1131213%2fcronab-fails-because-shell-path-not-found%23new-answer', 'question_page');
}
);

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







Popular posts from this blog

What other Star Trek series did the main TNG cast show up in?

Berlina muro

Berlina aerponto