質問

次のコマンドを使用してcrontabファイルを手動で編集する代わりに、Capistranoデプロイメントファイルにcronタスクを含めたい:

crontab -e [username]

Capistrano runコマンド内で使用してcrontabの内容を設定できるスクリプトはありますか?

役に立ちましたか?

解決

Linuxボックス上

crontab -u userName -l > fileName

fileNameのuserNameのcrontabファイルをリストします。

次に、ルビー(または別の言語)スクリプトを使用してファイルを更新します。

最後に使用します

crontab -u userName fileName

userNameのcrontabを更新するには

他のヒント

いつでも gemをチェックしてください。ただし、非常に単純な(Ruby)構文を使用し、capistranoデプロイメントスクリプト内でcronジョブをセットアップするのは非常に簡単です。

次の変数セットがある場合: new_user

および use_sudo true

を使用している
desc "install crontab"
task :install_crontab do
  run "echo '0 23 * * * /home/#{new_user}/scripts/backup_#{new_user}.sh' | #{sudo} crontab -u #{new_user} -"
end
def crontab_add(line)
  config = capture(%Q{crontab -l}).split "\n"
  return if config.include? line
  run %Q{(crontab -l; echo "#{line}") | crontab -}
end

/etc/cron.dにインストールできるcrontabを含めないのはなぜですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top