2016-09-12 21 views
0

私のcrontabにrysncを実行する際に問題が発生しています。それは私のユーザーのcrontabだから私のユーザーとして実行され、私はパスワードなしのrsaキーを設定しました。シェルコンソールでrsyncジョブを実行すると、動作します。しかし、それをcrontabにインポートすると、それは/ var/log/syslogで実行されたと言われていますが、フォルダが同期していないことがわかります。キーでcrontabでrsyncを実行中

私のcrontabは超簡単です:

* * * * * rsync -av --delete [email protected]:/home/backup/ /home/backup 

私はcrontabのは私のユーザーの環境を拾っていないと信じています。

SSH_AUTH_SOCK=/tmp/ssh-uapL7nIOVj/agent.103170 

:私のようなENV変数を持っていないcat /tmp/my_env_variables

LANGUAGE=en_US.UTF-8 
HOME=/home/myuser 
LOGNAME=myuser 
PATH=/usr/bin:/bin 
LANG=en_US.UTF-8 
SHELL=/bin/sh 
PWD=/home/myuser 

として

* * * * * env >> /tmp/my_env_variables 

この出力:私は次の操作を行う場合、私はいくつかの環境変数を見ることができます私はcronに必要なenv変数をインポートする正しい方法ですか? man 5 crontabから

+0

ソフトウェア開発に役立つStackoverflowです。これは話題にはほとんど触れられていません。ここではなく[unix.se]または[su]でこれを尋ねることを検討する必要があります。 – Kenster

答えて

0

のcrontabに積極的に行は、環境設定やcronコマンドのいずれかです。環境設定の形式は次のとおりです。

name = value 

はしかし、のcronジョブの実行時に常に存在するとSSHエージェントを必要とすることは信頼性に欠けることになるだろう。これを機能させたい場合は、パスフレーズレスキーを設定する必要があります。サーバ上の特定のIPアドレスからのみ操作するように、その鍵をauthorized_keysに制限することができます。

関連する問題