【问题标题】:AWS Elastic Beanstalk delete file cacheAWS Elastic Beanstalk 删除文件缓存
【发布时间】:2016-04-03 13:18:56
【问题描述】:

如何删除缓存文件?我在 AWS Elastic Beanstalk 中运行 Opencart。

当它扩展到少数实例时,我不知道如何删除所有缓存,除非我必须 ssh 进去这样做。

【问题讨论】:

    标签: caching amazon-web-services amazon-elastic-beanstalk


    【解决方案1】:

    您可以使用.ebextensions 设置一个cron 和一个干净的脚本。 我们将 Sidekiq 用于我们的 crons(我们是一家 ruby​​ 商店)。这是我们的.ebextensions/sidekiq.conf

    "/opt/elasticbeanstalk/hooks/appdeploy/pre/04_stop_sidekiq":
    mode: "000777"
    owner: root
    group: root
    content: |
      #!/bin/sh
      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_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user)
      EB_APP_CURRENT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
      EB_APP_PIDS_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_pid_dir)
    
      # Setting up correct environment and ruby version so that bundle can load all gems
      source $EB_SUPPORT_DIR/envvars
      source $EB_SCRIPT_DIR/use-app-ruby.sh
    
      if [ -f /var/app/support/pids/sidekiq.pid ]; then
        pid=$(cat /var/app/support/pids/sidekiq.pid)
        echo "sending 'USR1' to pid $pid"
        kill -USR1 $pid || :
        rm -rf /var/app/support/pids/sidekiq.pid
        sleep 30
        kill -9 $pid || :
      fi
    
     "/opt/elasticbeanstalk/hooks/appdeploy/post/50_restart_sidekiq":
    mode: "000777"
    owner: root
    group: root
    content: |
      #!/bin/sh
    
      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_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user)
      EB_APP_CURRENT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
      EB_APP_PIDS_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_pid_dir)
    
      # Setting up correct environment and ruby version so that bundle can load all gems
      source $EB_SUPPORT_DIR/envvars
      source $EB_SCRIPT_DIR/use-app-ruby.sh
    
      # Now we can do the actual restart of the worker. Make sure to have double quotes when using env vars in the command.
      cd $EB_APP_CURRENT_DIR
    
      if [ -f /var/app/support/pids/sidekiq.pid ]; then
        pid=$(cat /var/app/support/pids/sidekiq.pid)
        echo "Force Killing pid $pid"
        kill -USR1 $pid || :
        rm -rf /var/app/support/pids/sidekiq.pid
        sleep 30
        kill -9 $pid || :
      fi
    
      sleep 10
    
      su -s /bin/bash -c "bundle exec sidekiq -C /var/app/current/config/sidekiq.yml" $EB_APP_USER
    
      echo "done running sidekiq as daemon"
    

    【讨论】:

    • 你能提供脚本吗?例如删除 /system/cache/ 文件夹
    • 不知道您的设置,不,我不能。此外,stackoverflow 并不意味着为其他人提供代码,只是故障排除帮助
    • 至少有一些示例代码可以,stackoverflow 是为了指导用户,当然不是完整的代码。或者您发送一个网站链接作为指南。
    猜你喜欢
    • 2011-08-03
    • 2017-04-01
    • 2013-04-11
    • 2019-10-17
    • 2019-08-11
    • 2021-12-30
    • 2015-09-26
    • 2013-03-21
    相关资源
    最近更新 更多