1

私はここに少しピクルスを持っています、そして誰かが私にいくつかの指針を与えることができるかどうか疑問に思います:

特定のユーザーに対して毎日実行され、特定のディレクトリ内のファイルをスイープすることになっているcronジョブがあります。技術的には、2つの仕事です。cron.logをオンにして、実際に実行されていることを確認しました。

May 24 11:03:01 AppNameGoesHere /USR/SBIN/CRON[11257]: (mongrel_AppNameGoesHere) 
  CMD (rm -rf /var/www/apps/AppNameGoesHere/current/public/
  {popular,index,purchasing,purchasing-alternate,support,about-us,guarantee,screenshots}.htm{,l})
May 24 11:04:01 AppNameGoesHere /USR/SBIN/CRON[11260]: (mongrel_AppNameGoesHere)
  CMD (rm -rf /var/www/apps/AppNameGoesHere/current/public/
  {stats,popular,bcf,articles,expenses})

実際のユーザー名を削除し、StackOverflowで見苦しくないようにフォーマットしました。

さて、私の質問:これらの削除が実行され、ログで明らかに成功しているのを見ることができるという事実にもかかわらず、指定されたディレクトリに移動すると、ファイルはまだそこにあります。最初はパーミッションhijinxが実行されているのではないかと思っていましたが、mongrel_AppNameGoesHereユーザーにsu-ingして個々のrmコマンドを発行するか、cronジョブをコマンドラインにコピーして貼り付けることで、ファイルを手動で削除できることを確認しました。手動でザッピングしないものは、そのcronジョブが正常に実行された日数にもかかわらず、ザッピングされないままになります。

何が起こっているのかについての提案はありますか?以前は、/ etc /crontabファイル内のこれらのcronジョブでDapperDrakeを直接使用していましたが、Hardyにアップグレードしたときに、ユーザー固有のcrontabに(を介してsudo crontab -e - u mongrel_AppNameGoesHere)移動しました。これにより、機能が停止したように見えます。)

4

1 に答える 1

6

問題は、{}がシェルによって提供されるシェル拡張の一部であるため、それを機能させるには、cronエントリを実行するシェルを変更する必要があります。

デフォルトでは/bin/ shが使用されるので、次のように入力します。

SHELL = / bin / bash

crontabの最初の行として、物事が再び機能し始めるはずです。

于 2009-05-24T16:48:15.547 に答える