実行時に日付をログファイルに書き込むシェルスクリプトがあります。スクリプトを手動で実行すると、正しい出力がファイルに書き込まれます。ただし、これは自動化する必要があり、cronジョブとして実行すると、ファイルに何も書き込まれず、その理由がわかりません。
crontab:
0 * * * * Tomcat /usr/bin/sh /apps/rdsreplication/snap_replication.sh
サンプルコード:
#/bin/bash/
echo ---------------------------------------- >> create_snap.txt
echo Start time: >> create_snap.txt
date >> create_snap.txt
どんな助けでもいただければ幸いです!
シェルスクリプトは、ログファイルのフルパスを使用する必要があります。
#/bin/bash/
# assuming you want the txt file in the same directory as the bash script
logfile="$(dirname "$0")/create_snap.txt"
{
echo ----------------------------------------
echo Start time:
date
} >> "$logfile"
ユーザーcrontab
の場合、crontab(5)
のマニュアルページに次のフィールドが記述されています。
各行には5つの時刻と日付のフィールドがあり、その後にシステムcrontabファイルの場合はユーザー名が続き、その後にコマンドが続きます。
したがって、あなたの場合、これが必要になります。
0 * * * * /usr/bin/sh /apps/rdsreplication/snap_replication.sh
cron
が出力とstderrをジョブ(存在する場合)から電子メールで送信することに注意する必要があります。そのため、おそらくcron
コマンドTomcat
が見つかりません。 (または、可能であれば、そのTomcat
は行の残りの部分を理解しません。)