我正在尝试创建一个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 :(得分: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}"