私は、サーバーにログインした後、サーバー上のコードを更新するには、次の手順を使用しています:crontabでsvnを使ってコードを更新するには?
sudo -s
<wrote password here>
cd /var/www/staging
rm -r app.old
mv app app.old
svn checkout https://example.com/projectname/trunk/app app
は今、私は、次の内容
cd /var/www/staging
rm -r app.old
mv app app.old
svn checkout https://example.com/projectname/trunk/app app
と/var/www/
にupdate.sh
ファイルを作成し、私は後に実行するcrontabのエントリを次のようしています5分ごと:
*/5 * * * * /var/www/update.sh
問題: cronジョブは機能していますが、app
フォルダのみを削除し、ではなく、をsvnリポジトリからチェックアウトしています。しかし、bash /var/www/update.sh
を手動で実行すると、sudo -s
の後で正常に動作します。
これをcronジョブでも解決する方法。それはsudo -s
または他の何かに関連していますか?あなたが別のユーザーとして実行する必要がある場合は、ユーザーがのcrontabというそれをインストール
おかげ
cronスクリプトが実行されているユーザーが何であれ、ユーザーはSVNからチェックアウトする権限を持っていますか? –
'sudo -s'を実行した後、' bash/var/www/update.sh'を手動で実行するとうまくいきます。 **しかし** cronジョブがこのスクリプト(update.sh)を実行するとき、svnからコードをチェックアウトしていません。 – Awan
それほど私は理解しています。以下を示してください:(1)cronから実行しているジョブはどのユーザーか(rootか他のユーザーか)。 (2)そのユーザーはsvnからチェックアウトする権限を持っていますか? –