Hi Thomas
The absolute path was the answer.
Your explanation has added to my limited knowledge :-)
Thanks
Clive
On 19/09/16 23:04, Thomas Schmitt wrote:
Hi,
Clive Menzies wrote:
rsync_opts="-av --exclude-from=exclude_list --delete --delete-excluded"
exclude_list=/root/uhuru_backup/exclude_list
rsync: failed to open exclude file exclude_list: No such file or directory (2)
The decisive difference between dialog and cron could be the
current working directory.
Try with an absolute path as parameter to --exclude-from= :
rsync_opts="-av --exclude-from=/root/uhuru_backup/exclude_list --delete
--delete-excluded"
Or if you want to use the variable exclude_list, set it first.
Then evaluate it by $exclude_list in the definition of variable rsync_opts:
exclude_list=/root/uhuru_backup/exclude_list
rsync_opts="-av --exclude-from=$exclude_list --delete --delete-excluded"
This should yield the same rsync_opts content as above line.
echo "Currently at line 17">>$log_file
/root/uhuru_backup/uhuru.daily.sh: line 17: $log_file: ambiguous redirect
Hm. To what value did you set the variable log_file ?
If i set it to "/tmp/log_file", then the echo works in dash and bash.
(We have to expect that cron uses the shell dash, whereas the dialog
shell is probably bash.)
If i set it to empty text, then dash complains
dash: 2: Syntax error: newline unexpected
bash says
-bash: syntax error near unexpected token `newline'
A blank would do it in bash but not in dash:
$ log_file="/tmp/log file"
$ echo "Currently at line 17">>$log_file
-bash: $log_file: ambiguous redirect
dash is brutal enough to really create a file "/tmp/log file".
Have a nice day :)
Thomas
--
Clive Menzies
http://freecriticalthinking.org