Windowsで本物のcronをインストールして動かす導入手順

この記事は次のような人を想定してます。

  • Webサービスなどの開発環境がWindows
  • Cronを使いたいけどまだ本番環境がない
  • Windows上で本物のCron動かしたいな…

僕も開発環境はWindowsがほとんどです。

そしてCronジョブをAWSとかVPSを借りる前に、
WindowsだけでCronテスト実行できたらと思ってました。

その方法が分かったのでシェアします。

タスクスケジューラより良い方法はないのか

ググると以下のような記事がたくさん出てきます。

▼ Windowsでcron。 タスクスケジューラの使い方

タスクスケジューラを使った方法。
これも1つの方法ではあるけど力不足です。

本物のcronをWindows上だけで動かしたいんです。

そこでwsl(Windows Subsystem for Linux)の出番

これを使うと本物のCronが動かせます。

PowerShellのwslからLinuxインストール

始めにPowerShellにLinuxをインストールします。

PowerShellは管理者権限で起動して下さい。

▼ 管理者として実行すること

PowerShellを管理者権限で起動

PowerShellを開いたら以下コマンドを実行します。

▼ Linuxデストリビューションを表示

▼ このように一覧表示される

▼ ここではUbuntuをインストールする

別にUbuntuである必要性はありません。
好きなデストリビューションを選べばOKです。

インストールが終わったらWindowsを再起動します。

Bashからcrontabでcronジョブを設定

再起動完了したらPowerShellを再び起動です。

▼ 管理者として実行すること

▼ 上記で動かないならインストール再実行

これでCronを使う準備が整いました。

あとはcrontabでジョブを登録するだけです。

▼ crontabをeモードで編集

▼ 試しにこんなcronジョブを登録した

1分ごとに時刻をファイルに追記するCronジョブです。

▼ ファイルcron_outputの出力内容

Windows環境で本物のCronジョブが動かせました。

wslからWindows内ファイルアクセスも可能

Windows上のファイルにwslからアクセス可能です。

▼ How to access Windows files from Linux in WSL?

From inside Ubuntu:

cd /mnt/c/Users/<your_Windows_username>
That should show you all the files and directories in your Windows profile (a.k.a. home) folder.

引用元 : https://askubuntu.com/questions/1442124/how-to-access-windows-files-from-linux-in-wsl#answers-header

CronからもWindowsファイルの読取・書込できます。

▼ 例えばこのようなCronジョブとか

上記の例だと C:\Users\Hoge\cron_output に出力されます。

もちろんPython・PHPなどの定期実行も可能です。

以上、Windowsで本物cron実行でした。ではまた。

Shareこの記事をシェアしよう!

Commentsこの記事についたコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください