shell calling another shell program fails when run by crontabWhich shell interpreter runs a script with no shebang?What is the difference in these two bash environments?Crontab does not run?SASL authentication fails when called from crontabWhy does my cronjob not execute my shell-script?Run shell script from crontab after server stop/start/restartTask not run by crontabbash script locked at if statement when executedMy backup_system.sh file didn't run under crontabProgram will not run on CRONTABRun Makefile through CrontabMakefile fails when trying to run a C program
Is it appropriate to ask a former professor to order a library book for me through ILL?
How to distinguish easily different soldier of ww2?
Should we avoid writing fiction about historical events without extensive research?
How to recover against Snake as a heavyweight character?
What does *dead* mean in *What do you mean, dead?*?
What is the best index strategy or query SELECT when performing a search/lookup BETWEEN IP address (IPv4 and IPv6) ranges?
A running toilet that stops itself
I am the light that shines in the dark
I am the person who abides by rules but breaks the rules . Who am I
Does the US political system, in principle, allow for a no-party system?
How does learning spells work when leveling a multiclass character?
Precision notation for voltmeters
What is the orbit and expected lifetime of Crew Dragon trunk?
Why would /etc/passwd be used every time someone executes `ls -l` command?
Will the concrete slab in a partially heated shed conduct a lot of heat to the unconditioned area?
Does an unused member variable take up memory?
Why do phishing e-mails use faked e-mail addresses instead of the real one?
Professor forcing me to attend a conference, I can't afford even with 50% funding
Can I negotiate a patent idea for a raise, under French law?
How can I have x-axis ticks that show ticks scaled in powers of ten?
Can Witch Sight see through Mirror Image?
Insult for someone who "doesn't know anything"
Create chunks from an array
Why does this boat have a landing pad? (SpaceX's GO Searcher) Any plans for propulsive capsule landings?
shell calling another shell program fails when run by crontab
Which shell interpreter runs a script with no shebang?What is the difference in these two bash environments?Crontab does not run?SASL authentication fails when called from crontabWhy does my cronjob not execute my shell-script?Run shell script from crontab after server stop/start/restartTask not run by crontabbash script locked at if statement when executedMy backup_system.sh file didn't run under crontabProgram will not run on CRONTABRun Makefile through CrontabMakefile fails when trying to run a C program
I have scheduled to run the run.sh program like this:
16 09 07 * * root /opt/db_maintain/run.sh > /opt/db_maintain/temp-log
and here is the run.sh:
#/bin/bash
#********* Saman *********
TM=$(date --date='40 days ago' '+%F %T')
TARGET=/opt/db_maintain/main.sh
source $TARGET "$TM"
I have also granted the execute permission to the following files:
run.sh
main.sh
When I run the program manually, it redirects from run.sh to main.sh with no problems. However,
after scheduling it, crontab runs successfully as I checked it with putting some echo statements in run.sh, but I have no idea why run.sh cannot redirect to main.sh, even when I give main.sh execute privileges.
Do you have any idea?
Update: I found out the problem, but I do not know why it behaves like this. In run.sh I was writing #!/bin/bash, but in main.sh, I was writing #!/usr/bin/env bash
after I changed #!/bin/bash in run.sh to #!/usr/bin/env bash, it started working. why is this happening? what is the difference between them?
debian shell-script cron
add a comment |
I have scheduled to run the run.sh program like this:
16 09 07 * * root /opt/db_maintain/run.sh > /opt/db_maintain/temp-log
and here is the run.sh:
#/bin/bash
#********* Saman *********
TM=$(date --date='40 days ago' '+%F %T')
TARGET=/opt/db_maintain/main.sh
source $TARGET "$TM"
I have also granted the execute permission to the following files:
run.sh
main.sh
When I run the program manually, it redirects from run.sh to main.sh with no problems. However,
after scheduling it, crontab runs successfully as I checked it with putting some echo statements in run.sh, but I have no idea why run.sh cannot redirect to main.sh, even when I give main.sh execute privileges.
Do you have any idea?
Update: I found out the problem, but I do not know why it behaves like this. In run.sh I was writing #!/bin/bash, but in main.sh, I was writing #!/usr/bin/env bash
after I changed #!/bin/bash in run.sh to #!/usr/bin/env bash, it started working. why is this happening? what is the difference between them?
debian shell-script cron
You can see this answer.
– taliezin
Apr 7 '15 at 6:10
1
This does not make any sense. If#!/bin/bash
worked when you ranrun.sh
manually, then it should work just fine undercron
.
– Scott
Apr 7 '15 at 6:57
changing relative paths to absolute solved the problem. but, they should both act the same as all files are residing in the same directory. do you have any idea?
– Saman
Apr 8 '15 at 7:49
add a comment |
I have scheduled to run the run.sh program like this:
16 09 07 * * root /opt/db_maintain/run.sh > /opt/db_maintain/temp-log
and here is the run.sh:
#/bin/bash
#********* Saman *********
TM=$(date --date='40 days ago' '+%F %T')
TARGET=/opt/db_maintain/main.sh
source $TARGET "$TM"
I have also granted the execute permission to the following files:
run.sh
main.sh
When I run the program manually, it redirects from run.sh to main.sh with no problems. However,
after scheduling it, crontab runs successfully as I checked it with putting some echo statements in run.sh, but I have no idea why run.sh cannot redirect to main.sh, even when I give main.sh execute privileges.
Do you have any idea?
Update: I found out the problem, but I do not know why it behaves like this. In run.sh I was writing #!/bin/bash, but in main.sh, I was writing #!/usr/bin/env bash
after I changed #!/bin/bash in run.sh to #!/usr/bin/env bash, it started working. why is this happening? what is the difference between them?
debian shell-script cron
I have scheduled to run the run.sh program like this:
16 09 07 * * root /opt/db_maintain/run.sh > /opt/db_maintain/temp-log
and here is the run.sh:
#/bin/bash
#********* Saman *********
TM=$(date --date='40 days ago' '+%F %T')
TARGET=/opt/db_maintain/main.sh
source $TARGET "$TM"
I have also granted the execute permission to the following files:
run.sh
main.sh
When I run the program manually, it redirects from run.sh to main.sh with no problems. However,
after scheduling it, crontab runs successfully as I checked it with putting some echo statements in run.sh, but I have no idea why run.sh cannot redirect to main.sh, even when I give main.sh execute privileges.
Do you have any idea?
Update: I found out the problem, but I do not know why it behaves like this. In run.sh I was writing #!/bin/bash, but in main.sh, I was writing #!/usr/bin/env bash
after I changed #!/bin/bash in run.sh to #!/usr/bin/env bash, it started working. why is this happening? what is the difference between them?
debian shell-script cron
debian shell-script cron
edited 4 hours ago
Rui F Ribeiro
41.2k1481140
41.2k1481140
asked Apr 7 '15 at 4:52
SamanSaman
1361312
1361312
You can see this answer.
– taliezin
Apr 7 '15 at 6:10
1
This does not make any sense. If#!/bin/bash
worked when you ranrun.sh
manually, then it should work just fine undercron
.
– Scott
Apr 7 '15 at 6:57
changing relative paths to absolute solved the problem. but, they should both act the same as all files are residing in the same directory. do you have any idea?
– Saman
Apr 8 '15 at 7:49
add a comment |
You can see this answer.
– taliezin
Apr 7 '15 at 6:10
1
This does not make any sense. If#!/bin/bash
worked when you ranrun.sh
manually, then it should work just fine undercron
.
– Scott
Apr 7 '15 at 6:57
changing relative paths to absolute solved the problem. but, they should both act the same as all files are residing in the same directory. do you have any idea?
– Saman
Apr 8 '15 at 7:49
You can see this answer.
– taliezin
Apr 7 '15 at 6:10
You can see this answer.
– taliezin
Apr 7 '15 at 6:10
1
1
This does not make any sense. If
#!/bin/bash
worked when you ran run.sh
manually, then it should work just fine under cron
.– Scott
Apr 7 '15 at 6:57
This does not make any sense. If
#!/bin/bash
worked when you ran run.sh
manually, then it should work just fine under cron
.– Scott
Apr 7 '15 at 6:57
changing relative paths to absolute solved the problem. but, they should both act the same as all files are residing in the same directory. do you have any idea?
– Saman
Apr 8 '15 at 7:49
changing relative paths to absolute solved the problem. but, they should both act the same as all files are residing in the same directory. do you have any idea?
– Saman
Apr 8 '15 at 7:49
add a comment |
1 Answer
1
active
oldest
votes
The #!
-line in main.sh
does not matter at all since you're using source
to run it in the same execution environment as run.sh
.
Your run.sh
, as presented in the question, does not have a #!
-line at all. It has a comment reading
#/bin/bash
as its first line.
This ought to mean that it will be executed by /bin/sh
. The /bin/sh
shell does not have a source
command and you should therefore get some kind of "command not found" error from the script when cron runs it (check root's email).
Related:
- Which shell interpreter runs a script with no shebang?
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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%2funix.stackexchange.com%2fquestions%2f194739%2fshell-calling-another-shell-program-fails-when-run-by-crontab%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
The #!
-line in main.sh
does not matter at all since you're using source
to run it in the same execution environment as run.sh
.
Your run.sh
, as presented in the question, does not have a #!
-line at all. It has a comment reading
#/bin/bash
as its first line.
This ought to mean that it will be executed by /bin/sh
. The /bin/sh
shell does not have a source
command and you should therefore get some kind of "command not found" error from the script when cron runs it (check root's email).
Related:
- Which shell interpreter runs a script with no shebang?
add a comment |
The #!
-line in main.sh
does not matter at all since you're using source
to run it in the same execution environment as run.sh
.
Your run.sh
, as presented in the question, does not have a #!
-line at all. It has a comment reading
#/bin/bash
as its first line.
This ought to mean that it will be executed by /bin/sh
. The /bin/sh
shell does not have a source
command and you should therefore get some kind of "command not found" error from the script when cron runs it (check root's email).
Related:
- Which shell interpreter runs a script with no shebang?
add a comment |
The #!
-line in main.sh
does not matter at all since you're using source
to run it in the same execution environment as run.sh
.
Your run.sh
, as presented in the question, does not have a #!
-line at all. It has a comment reading
#/bin/bash
as its first line.
This ought to mean that it will be executed by /bin/sh
. The /bin/sh
shell does not have a source
command and you should therefore get some kind of "command not found" error from the script when cron runs it (check root's email).
Related:
- Which shell interpreter runs a script with no shebang?
The #!
-line in main.sh
does not matter at all since you're using source
to run it in the same execution environment as run.sh
.
Your run.sh
, as presented in the question, does not have a #!
-line at all. It has a comment reading
#/bin/bash
as its first line.
This ought to mean that it will be executed by /bin/sh
. The /bin/sh
shell does not have a source
command and you should therefore get some kind of "command not found" error from the script when cron runs it (check root's email).
Related:
- Which shell interpreter runs a script with no shebang?
answered Jul 18 '18 at 21:08
KusalanandaKusalananda
134k17255418
134k17255418
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- 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%2funix.stackexchange.com%2fquestions%2f194739%2fshell-calling-another-shell-program-fails-when-run-by-crontab%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
You can see this answer.
– taliezin
Apr 7 '15 at 6:10
1
This does not make any sense. If
#!/bin/bash
worked when you ranrun.sh
manually, then it should work just fine undercron
.– Scott
Apr 7 '15 at 6:57
changing relative paths to absolute solved the problem. but, they should both act the same as all files are residing in the same directory. do you have any idea?
– Saman
Apr 8 '15 at 7:49