Yes. The output is from
which bash
Yes. The output is from
which bash
There seems to be a difference in the paths. The working script has /bin/bash
whereas this one has /usr/bin/bash
His issue is the script doesn't even fire though, which is most perplexing.
Bash location shouldn't matter really though as most systems have both:
[felix@gemini Movies]$ ls -al /bin/bash
-rwxr-xr-x. 1 root root 2187664 May 13 08:18 /bin/bash
[felix@gemini Movies]$ ls -al /usr/bin/bash
-rwxr-xr-x. 1 root root 2187664 May 13 08:18 /usr/bin/bash
[felix@gemini Movies]$
I still can't figure it out.. any ideas?
Atleast Ubuntu doesn't have it in both locations (checked on both 16.04 & 18.04).
And the error is that the binary is not found, not that the script is not found, since the stderr has the line number mentioned too.
@jiru Can you change it to /bin/bash
and try ?
Oh the error is line 1 not found. You are correct. Great find!
No dice:
root@omvdocker:~# crontab -l
PATH=/bin/bash
30 * * * * ({ /srv/vaultfs/rootfs/storage/scripts/rclone/root/root_backup.sh; } | tee /tmp/U9GhC8Gz09FCqrfo.stdout) 3>&1 1>&2 2>&3 | tee /tmp/U9GhC8Gz09FCqrfo.stderr
23 * * * * /opt/rclone/scripts/gvault-move.sh >> /tmp/myjob.log 2>&1
#51 * * * * env >> /tmp/myjob.log
root@omvdocker:~# tail -f /tmp/myjob.log
/bin/sh: 1: /opt/rclone/scripts/gvault-move.sh: not found
Can you run the script from the command line?
Can you share the latest contents?
Yes, via sh /opt/rclone/scripts/gvault-move.sh
#!/usr/bin/bash
if pidof -o %PPID -x "gvault-move.sh"; then
echo $(date "+%Y/%m/%d %H:%M:%S")" WARN : Cron attempted to start the move the local data mirror to vault: but the process is already running." >> /opt/rclone/logs/vault-upload.log
exit 1
fi
echo $(date "+%Y/%m/%d %H:%M:%S")" INFO : Cron started the rclone move subroutine" >> /opt/rclone/logs/vault-upload.log
# Move older local files to the cloud
rclone move \
/srv/dev-disk-by-label-Buffer/mirror/ vault: \
--log-level INFO \
--log-file /opt/rclone/logs/vault-upload.log \
--stats 0 \
--exclude-from /opt/rclone/exclude/gvault \
--drive-chunk-size 64M \
--delete-empty-src-dirs \
--user-agent gvaultapp \
--fast-list
exit
I think sh puts in the sh shell rather than using the first line.
Can you just run it with:
/opt/rclone/scripts/gvault-move.sh
and does that work?
I meant changing the path in the script itself. The first line is /usr/bin/bash
. Can you try with /bin/bash
instead ?
Here's the output:
root@omvdocker:~# /opt/rclone/scripts/gvault-move.sh
-bash: /opt/rclone/scripts/gvault-move.sh: /usr/bin/bash: bad interpreter: No such file or directory
Or make a backup and reinstall the os.
Also you can try this script on one vps like vutlr.
That indeed was the solution.
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.