3日ごとに1回実行する必要のあるPerlスクリプトがいくつかあります。以下は、入力した構文です。お知らせください。これは正しいですか、それとも間違っていますか。
30 19 * * */3 root /var/scripts/svn_backup.pl
それは間違っています。最後の列は曜日です。おそらく移動したいです*/3
を3番目の列(日)に:
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
*/3は指定が間違っている列にあります
30 19 */3 * * root /var/scripts/svn_backup.pl
*/3構文は、1,4,7 ... 25,28,31と同じです。一部の月は31日に実行されることに注意してくださいst そして翌月は1日に実行されますst 間隔の指定は折り返されないため、常にシーケンスの先頭から始まります。この場合、スクリプトは必要な間隔なしで実行されます。
3日ごとに何かを実行する必要がある場合は、スクリプトを毎日実行し、3日が経過したかどうかを判断して、必要に応じて終了/続行する必要があります。
Perlでは、次のようなことができます
if ( int (time/86400)%3 != 0) {exit 0};
uNIX Epochに基づいて3日ごとにスクリプトを実行します。