毎月最後の日曜日に実行するようにcronjobを設定する方法は? [コピー]

毎月最後の日曜日に実行するようにcronjobを設定する方法は? [コピー]

毎月最後の日曜日にcronjobを実行するように設定します。これが私が達成したものです。

現在毎週日曜日夜10時に放送されている。

0 22 * * 0 /usr/basys_bin/clean_cups_cache.sh

答え1

スクリプトの上部または別のスクリプトとして、その月の最後の週にのみ実行するように安全対策を設定できます。

たとえば、次のように作成します。/usr/local/bin/lastweekofmonth

#!/bin/bash
# Exit 0 ("OK") iff we are in the last seven days of a month
#
today=$(date +%d)                             # Day number today
nextweek=$(date --date 'now + 7 days' +%d)    # Day number next week

[[ ${today#0} -gt ${nextweek#0} ]]            # Implicit exit "OK" if today > next week

実行可能にしてください(chmod +x /usr/local/bin/lastweekofmonth)。

crontabその後、アイテムに使用できます

0 22 * * 0 /usr/local/bin/lastweekofmonth && /usr/basys_bin/clean_cups_cache.sh

関連情報