У меня есть ruby script, который подключается к ведро Amazon S3 и загружает последнюю производственную резервную копию. Я тестировал script (что очень просто), и он отлично работает.
Однако, когда я планирую, что этот script запускается как задание cron, он, кажется, терпит неудачу, когда он загружает драгоценный камень Amazon (aws-s3).
Первые несколько строк моего script выглядят следующим образом:
#!/usr/bin/env ruby
require 'aws/s3'
Как я уже сказал, когда я запускаю этот script вручную, он отлично работает. Когда я запускаю его с помощью запланированного задания cron, он терпит неудачу, когда он пытается загрузить драгоценный камень:
`require ': нет такого файла для загрузки - aws/s3 (LoadError)
Crontab для этого script выглядит следующим образом:
0 3 * * * ~/Downloader/download.rb > ~/Downloader/output.log 2>&1
Я изначально думал, что это может быть потому, что cron работает как другой пользователь, но когда я делаю "whoami" в начале моего ruby script, он говорит мне, что он работает как тот же пользователь, которого я всегда использую.
Я также выполнил инициализацию пакета и добавил gem в свой gemfile, но это, похоже, не влияет.
Почему cron не загружает драгоценный камень? Я запускаю Ubuntu.