0

我正在尝试将 gem 集成到我的 elasticbeanstalk amazon linux 1 中,但在我的 schedule.rb 中,它在尝试创建我的输出错误文件时抛出了权限被拒绝错误。

这是我的日程安排.rb

require 'dotenv/load'
set :job_template, "TZ=\"Asia/Kuala_Lumpur\" bash -c ':job'"
env :PATH, ENV['PATH']

every 1.minute do  
  if (ENV['RAILS_APP_TYPE'] == "single") && (ENV['RACK_ENV'] ==  'develop')
    rake 'sidekiq:send_alert', :output => {:error => "log/sidekiq_check_error.log", :standard => "log/sidekiq_check.log"}
  end
end

这是我的 .ebextensions/whenever.config

commands:
  create_post_dir:
    command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post"
    ignoreErrors: true
files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/update_cron_tab.sh":
    mode: "000755"
    content: |
      #!/bin/sh
      RAILS_APP_TYPE=$(/opt/elasticbeanstalk/bin/get-config environment -k RAILS_APP_TYPE)
      RACK_ENV=$(/opt/elasticbeanstalk/bin/get-config environment -k RACK_ENV)
      echo "WHENEVER GEM CRON"
      echo "$RACK_ENV"
      EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
      EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir)
      EB_APP_CURRENT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
      EB_CONFIG_APP_LOGS=$(/opt/elasticbeanstalk/bin/get-config container -k app_log_dir)
      echo "$EB_CONFIG_APP_LOGS"
      touch "$EB_APP_CURRENT_DIR/log/sidekiq_check.log"
      touch "$EB_APP_CURRENT_DIR/log/sidekiq_check_error.log"

      sudo chown webapp:webapp "$EB_APP_CURRENT_DIR/log/sidekiq_check.log"
      sudo chown webapp:webapp "$EB_APP_CURRENT_DIR/log/sidekiq_check_error.log"

      . $EB_SUPPORT_DIR/envvars
      . $EB_SCRIPT_DIR/use-app-ruby.sh

      echo '* * * * * TZ="Asia/Kuala_Lumpur" bash -c 'cd $EB_APP_CURRENT_DIR && RAILS_ENV=$RACK_ENV' bundle exec rake sidekiq:send_alert --silent >> $EB_APP_CURRENT_DIR/log/sidekiq_check.log 2>> $EB_APP_CURRENT_DIR/log/sidekiq_check_error.log'
      sudo su - webapp -c "cd $EB_APP_CURRENT_DIR; whenever --update-crontab --set environment='$RACK_ENV'"
      sudo su - webapp  -c "crontab -l"

每当部署它时,我最终都会在我的/var/spool/mail/ec2-user文件中收到一个错误,提示权限被拒绝log/sidekiq_check.log

我收到此错误是否有原因?我该如何解决?

4

0 回答 0