0

「ins」ユーザーとしての私のcrontabエントリは次のとおりです。

* * * * * /usr/bin/ksh /apps/swbkp/swbkp.sh

スクリプトは次のとおりです。

#! /usr/bin/ksh

. /apps/ins/.profile

cdate=$(date +'%y%m%d')

/apps/omni/bin/swmml -e "backup-node:" >> /apps/swbkp/swerrr1.$cdate

#
if [[ -f /apps/omni/conf/archive.C7M3UAA.500.$cdate ]]
then
   mv -f /apps/omni/conf/archive.C7M3UAA.500.$cdate /apps/swbkp/
elif [[ -f /apps/omni/labeir1/dffile/archive.C7M3UAA.500.$cdate ]]
then
   mv -f /apps/omni/labeir1/dffile/archive.C7M3UAA.500.$cdate /apps/swbkp/
else
   printf "Backup archive File not present to move"
fi >> /apps/swbkp/swerrr1.$cdate
#

注:/apps/omni/bin/swmml -e "backup-node:"この行は、タイプのシステムにバックアップファイルを作成するだけですarchive.C7M3UA.500.<current date>

2つの奇妙なことが起こっています:

  1. 生成されるバックアップ ファイルは次のとおりです。

    -rw-r--r-- 1 ルート ルート 165 8 月 28 日 21:55 /apps/omni/labeir1/dffile/archive.C7M3UAA.500.130828

に移動する/apps/swbkpと、タイムスタンプは 1 分前になります。

-rw-r--r-- 1 root root  165 Aug 28 21:54 archive.C7M3UAA.500.130828
  1. /apps/swbkp/swerrr1.$cdateファイルにリダイレクトされるものはありません

    -rw-r--r-- 1 イン イン 0 8 月 28 日 21:24 swerrr1.130828

一方、ターミナルからスクリプトを実行すると、すべてが完璧に機能します。つまり、ファイルはバックアップ フォルダーと移動フォルダーで同じタイムスタンプを持ち、ログ ファイルにも出力が記録されます。

親切に助けて

4

2 に答える 2

0

/apps/ins/.profile実行するファイルを見てください。通常、このようなファイルには、スクリプトがターミナルで実行されていない場合にスクリプトを早期に終了する条件があります。

例えば:

[ -z "$PS1" ] && return

exitこれにより、スクリプトの動作が変更される場合があります (または、 が の代わりに使用されている場合は、スクリプトをスキップすることさえありますreturn)。少なくとも、エイリアス、可能性のある PATH の変更、および.profileメイン スクリプトが実行されるかどうか、およびその方法に影響を与えるスクリプトで設定されたその他の設定を見逃すことになります。

上記のスクリプトの行にコメントを付けてみて. /apps/ins/.profile、ターミナルでまだ実行されるかどうかを確認してください。その場合は、crontab からそのように実行して、問題が解決するかどうかを確認してください。

于 2013-08-29T14:17:28.010 に答える