2010-01-06 64 views
0

我想創建一個capistrano任務來設置我的日誌旋轉文件。capistrano命令在沒有任何反饋的情況下默默無聞

namespace :app do 
    task :setup_log_rotation,:roles => :app do 
    rotate_script = %Q{#{shared_path}/log/#{stage}.log { 
     daily 
     rotate #{ENV['days'] || 7} 
     size #{ENV['size'] || "5M"} 
     compress 
     create 640 #{user} #{ENV['group'] || user} 
     missingok 
    }} 

    put rotate_script, "#{shared_path}/logrotate_script" 

    "sudo cp #{shared_path}/logrotate_script /etc/logrotate.d/#{application}" 

    run "rm #{shared_path}/logrotate_script" 
    end 
end 

在我deploy.rb文件的最頂端我下面的行

set :use_sudo, false 

我完全錯過了我的cp命令正默默地失敗,我的終端上我覺得一切都很好。這是不好的。我應該如何編寫cp代碼以使incase cp由於某種原因失敗(在這種情況下sudo命令失敗),那麼我應該在我的終端上獲得反饋。

回答

0

解決了我自己的問題。

看看this的東西類似。

我加入這一行中deploy.rb

default_run_options[:pty] = true 

而且從

run "sudo cp #{shared_path}/logrotate_script /etc/logrotate.d/#{application}" 

改變這種

sudo "cp #{shared_path}/logrotate_script /etc/logrotate.d/#{application}"