2017-06-20 10 views
0

2分ごとにgitlabリポジトリからデータを取得します。 私は私のcronジョブにこのスクリプトを追加しました:5分ごとにリポジトリをプル

sudo cd /home/dev/web/question.***/public_html ; sudo git pull ; sudo git add . ; sudo git commit -m "update" ; sudo git push 

しかし、私はこのメールを取得:私は、サーバーにキーを追加しました

Knipsel.png

、私が間違ってやった何を

あなたのcronジョブで
+1

あなたのキーにパスフレーズがありますか?もしそうなら、あなたのssh-agent(または同等のもの)にアクセスできるようにする必要があります - 通常、cronはスタートアップファイルのソースではなく、コマンドには必要な環境変数が多くありません。たくさんのQ/Aは、この問題と回避策については、stackoverflowや他の場所で扱われています。 – swalladge

+0

なぜ 'sudo'ですか? Gitを使うときに 'sudo'が必要なものは何もありません。 – axiac

+0

'sudo'の目的は、通常のユーザがシステム上で管理タスクを実行できるようにすることです(システム設定の変更、サービスの開始/停止/再起動など)。 **開発に 'sudo'を使わないでください**。 – axiac

答えて

1

問題:

  1. sudoはパスワードを要求しますが失敗します。パスワードを入力するユーザーがいないため、パスワードを入力することは役に立ちません。

  2. sudo cdは(それはsudoの下シェルで動作しますが、そのsudoの呼び出しが終了した後、シェルが既に終了し、cdの効果が失われる)は動作しません。

私の推奨事項:sudoを使わないでコマンドを実行してください。ターゲットユーザー(root)のcrontabから実行します。

または、シェルスクリプトにコマンドを入力し、パスワードを要求せずにスクリプトを実行するようにsudoを構成します。

関連する問題