1

我的工作部署脚本因upload via sftp failed on XX.XXX.XXX.XXX: Net::SFTP::StatusException (Net::SFTP::StatusException write /tmp/20130610114941.tar.gz (4, "failure"))错误而失败。

这是我的部署脚本

require "rvm/capistrano"
require "bundler/capistrano"


set :rvm_type, :user

set :rvm_ruby_string, 'ruby-2.0.0-p0'

set :user, "deployer"
set :application, "myapp"
set :deploy_to, "/home/#{user}/apps/#{application}"

set :bundle_dir, "/home/#{user}/.rvm/gems/ruby-2.0.0-p0"

server "XX.XXX.XXX.XXX", :web, :app, :db, primary: true

set :use_sudo, false

set :deploy_via, :copy
set :repository, "."

set :copy_exclude, %w[.git log tmp .DS_Store]
set :scm, :none

default_run_options[:pty] = true

after "deploy", "deploy:cleanup" # keep only the last 5 releases

namespace :deploy do
  task :start do
    ;
  end
  task :stop do
    ;
  end
  task :restart, roles: :app, except: {no_release: true} do
    run "touch #{deploy_to}/current/tmp/restart.txt"
  end
end

任何想法?

谢谢

编辑:刚刚检查,我的磁盘空间已满。显然这是我的问题。一个更新后挂钩来防止这种情况?

4

1 回答 1

1

从评论:

  • 检查服务器上的可用磁盘空间 /tmp

    df /tmp

  • 必要时释放空间

  • 或者将 capistrano 配置为使用不同的文件夹进行部署(如何更改 Capistrano 使用的临时目录?

  • 如果您还没有这样做,您可能想查看删除旧版本

    帽部署:清理

于 2013-06-10T13:02:43.620 回答