namespace :mongrel do desc ‘app01,app02 mongrelのrestart’ task :restart, :roles => [:app1, :app2] do run “source /home/hoge/.bash_profile; /etc/init.d/mongrel_cluster restart; isAlive=`ps -ef | grep ‘ruby’ | grep -v grep | wc -l`; if [ $isAlive == 0 ]; then echo ‘error mongrel restart’; exit 1; fi; echo ‘success mongrel restart!’; exit 0;” end
desc ‘app01,app02 mongrelのstart’ task :start, :roles => [:app1, :app2] do run “source /home/hoge/.bash_profile; /etc/init.d/mongrel_cluster start; sleep 3; isAlive=`ps -ef | grep ‘ruby’ | grep -v grep | wc -l`; if [ $isAlive == 0 ]; then echo ‘error mongrel start’; exit 1; fi; echo ‘success mongrel start!’; exit 0;” end
desc ‘app01,app02 mongrelのstop’ task :stop, :roles => [:app1, :app2] do run “source /home/hoge/.bash_profile; /etc/init.d/mongrel_cluster stop; sleep 3; isAlive=`ps -ef | grep ‘ruby’ | grep -v grep | wc -l`; if [ $isAlive != 0 ]; then echo ‘error mongrel stop’; exit 1; fi; echo ‘success mongrel stop!’; exit 0;” end end
これがapacheの起動、停止、再起動です。
namespace :apache do task :start, :roles => [:web1,:web2] do sudo “/usr/local/apache2/bin/apachectl start;” run “ps -ef |grep http” end
task :stop, :roles => [:web1, :web2] do sudo “/usr/local/apache2/bin/apachectl stop;” run “ps -ef |grep http” end
task :restart, :roles => [:web1, :web2] do sudo “/usr/local/apache2/bin/apachectl restart;” run “ps -ef |grep http” end end
これがrsyncです
set(:parts_file) do Capistrano::CLI.ui.ask ‘enter parts file: ‘ end
set(:parts_insert_server) do Capistrano::CLI.ui.ask ‘enter remote server ip: ‘ end
set :deploy_to, “/path/to/project”
desc ‘部分的なファイルを転送できます。プロジェクト以下のファイルを指定して下さい。’ namespace :rsync do task :parts, :roles => :local do run “/usr/local/bin/rsync -avz –delete -e ssh #{deploy_to}/#{parts_file} #{parts_insert_server}:#{deploy_to}/#{parts_file}” end end