毎日実行されるスクリプトがあります。今日が何曜日か、明日が月の最後の日かによって、ファイルは別の場所に移動されます。実際の機能は省略しました。
可変的な:
TOM=$(TZ=UTC-24 date +%d)
SUNDAY=$(date +%w)
ロジックは次のとおりです。
if [ $TOM -eq 1 ]; then
move_files monthly
echo EXEUTING END OF MONTH MOVE AND PURGE, NON-DAILY, NON-END-OF-MONTH
elif [ $SUNDAY -eq 0 ]; then
move_files weekly
echo EXECUTING SUNDAY MOVE AND PURGE, NON-DAILY, NON-END-OF-MONTH
else echo EXECUTING DAILY MOVE AND PURGE NON-SUNDAY, NON-END-OF-MONTH
move_files daily
fi
monthly
すべてがうまく動作していましたが、昨日(11月30日)機能の一部であるディレクトリにファイルを正しく移動できませんでしたmove_files monthly
。他の場所でテストしましたが、正常に動作しているようです。
私が実行しているホストはUTCです。
ベストアンサー1
上記の説明の一部をまとめると、GNU日付を使用して明日がその月の1日であることを確認できます。
if [[ "$(date -d tomorrow +%d)" == "01" ]]; then
echo "Tomorrow is the first day of the month"
fi
明日が月の最後の日かどうかを知りたい場合は、次のようにできます。
if [[ "$(date -d "2 days" +%d)" == "01" ]]; then
echo "Tomorrow is the last day of the month"
fi