Ну, вы уже сказали, что использовали абсолютные пути, поэтому проблема с номером 1 решена.
Далее нужно проверить разрешения.Какому пользователю запускается задание cron?Имеет ли он все необходимые разрешения?
Затем небольшая хитрость: если у вас есть сценарий оболочки, который не работает и не запускается в терминале, мне нравится перенаправлять вывод его в некоторые файлы.В самом начале сценария добавьте:
exec &>/tmp/my.log
Это перенаправит STDOUT и STDERR на /tmp/my.log
.Тогда было бы также неплохо добавить строку:
set -x
Это заставит bash распечатать, какую команду она собирается выполнить и на каком уровне вложенности.
Удачной отладки!