cron を使用した SFTP アップロードのスケジューリング


Crontab 設定

FTPGetter には使いやすい組み込みタスクスケジューラが搭載されていますが、設定機能は GUI が提供できる範囲に自然と制限されます。いくつかのコマンドラインスイッチを学ぶことで、業界標準の cron スケジューラのすべての機能を利用できるようになります。

Crontab 構文

cron フォーマットは、特定の時刻に一度だけ、または定期的に実行されるタスクを指定するための、シンプルでありながら非常に強力かつ完全に設定可能な方法です。

cron フォーマットには 5 つのフィールドがあります。


* * * * *
- - - - -
| | | | |
| | | | ----- 曜日 (0 - 7) (日曜日 =0 または =7)
| | | ------- 月 (1 - 12)
| | --------- 日 (1 - 31)
| ----------- 時 (0 - 23)
------------- 分 (0 - 59)

任意のフィールドにはアスタリスク "*" を指定できます。これは値の全範囲、つまり "毎" を意味します。アスタリスクは "毎分""毎時""毎日" などを表します。

フィールドには "1,3,7" のようなカンマ区切りの値リストや、"1-5" のような範囲も指定できます。

タスクを 1 日おきに実行したい場合は、"*" または範囲の後にステップ値を指定します。例えば、タスクを 2 日ごとに実行したい場合は "*/2" を指定します。これはそのまま "2 日ごとに 1 回" を意味します。同様に、"Hour" フィールドに "0-23/2" を指定すると、"1 日を通して 2 時間ごと" を意味します。あるいは、同じ値を "0,2,4,6,8,10,12,14,16,18,20,22" のようなリストとして指定することもできます。同じように、"Minute" フィールドへ "*/4" を指定するとタスクは 4 分ごとに実行されます。"1-30/3""1,4,7,10,13,16,19,22,25,28" と同じ意味です。

例:


* * * * * * 毎分

59 23 31 12 5 * 年末が金曜日の場合、年末の 1 分前

45 17 7 6 * * 毎年 6 月 7 日 17:45

45 17 7 6 * 2001,2002 2001 年または 2002 年の 6 月 7 日 17:45 に年 1 回

0,15,30,45 0,6,12,18 1,15,31 * 1-5 * 毎月 1 日、15 日、31 日の 00:00、00:15、00:30、00:45、06:00、06:15、06:30、
06:45、12:00、12:15、12:30、12:45、18:00、18:15、
18:30、18:45 に実行
月曜日から金曜日のみ


*/15 */6 1,15,31 * 1-5 * 毎月 1 日、15 日、31 日の 00:00、00:15、00:30、00:45、06:00、06:15、06:30、
06:45、12:00、12:15、12:30、12:45、18:00、18:15、
18:30、18:45 に実行
月曜日から実行 (別の表記方法)


* * * 1,3,5,7,9,11 * * 1 月、3 月、5 月、7 月、9 月、11 月の毎分

0 9 1-7 * 1 * 毎月最初の月曜日の午前 9 時

0 0 1 * * * 毎月 1 日の深夜

* 0-11 * * * 正午前の毎分

* * * 1,2,3 * * 1 月、2 月、3 月の毎分

0 0 * * * * 毎日深夜

0 0 * * 3 * 毎週水曜日の深夜

複数行の複雑なレコードも簡単に指定できます。例:


0 9 1-7 * 1 *
0 0 1 * * *
上記のレコードは、タスクが毎月最初の月曜日の午前 9 時、および毎月 1 日の深夜に実行されることを指定しています。