https://github.com/takuya/cronjob-alternative
Run cron with web ui
https://github.com/takuya/cronjob-alternative
cron laravel scheduling
Last synced: 2 months ago
JSON representation
Run cron with web ui
- Host: GitHub
- URL: https://github.com/takuya/cronjob-alternative
- Owner: takuya
- License: agpl-3.0
- Created: 2021-09-17T08:55:59.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-04-19T05:22:30.000Z (about 4 years ago)
- Last Synced: 2025-07-26T15:10:35.875Z (11 months ago)
- Topics: cron, laravel, scheduling
- Language: PHP
- Homepage:
- Size: 9.91 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Cron Job Alternative

CRONと同等の処理を、webから管理する
Linuxのcrontabの定期実行の不便さを解消したい。
## CronジョブをWEBから管理。
Cronのジョブをウェブから管理するためのパッケージ。
## 画面
### スケジュール一覧画面
### cron ジョブ定義画面
### cron ジョブの実行結果画面
## インストール
インストールは3つの手順です。
- github レポジトリのclone
- 初期設定
- スケジューラー起動
### github からの clone
プロジェクトをコピーして、WEB領域に展開します。
```
## clone
git clone git@github.com:takuya/cronjob-alternative.git
cd cronjob-alternative
```
## 初期設定
laravel の初期設定です。
```
## install depends
php composeer.phar install
npm i
npm run prod
## initialize laravel
cp .env.prod .env
touch database/database.sqlite
php artisan storage:link
php artisan migrate
```
### スケジューラーの起動
スケジューラーを起動してcron実行。
```
sudo php artisan cron:work
```
worker をsudo(root)で動作させると、linuxのcron同じ権限で動作が可能です。
## CRONジョブの登録
CRONジョブは、コマンドから登録できます。
#### cron ジョブの登録例
```
php artisan schedule:cron_add '*/20 * * * *' 'my first cron' 'echo Hello world'
```
## 自動起動設定
インストールと動作確認ができたら、systemd や hypervisordを使って自動起動させます。
### systemd への登録
systemd 用の service unit ファイルを生成し、systemdに登録します。
```
sudo su
php artisan schedule:systemd_generate > /etc/systemd/system/cron-laravel.servie
systemctl daemon-reload
systemct start cron-laravel
```
## docker での動作
手軽に試せるように docker イメージを用意しました。
### docker での起動サンプル
docker コンテナで動作サンプル
```sh
docker pull ghcr.io/takuya/cronjob-alternative:latest
docker run --rm -p 5000:80 ghcr.io/takuya/cronjob-alternative:latest
```
(DockerHubではなく、github の ghcr.io を利用しています。)
docker起動時のデフォルトユーザー
```
username: cron@example.com
password: 4jjXBxtRhUmrXBj
```
## このレポジトリについて。
## cron との関係
systemd-cronや /etc/cron の更新はしません。cron 書式を解釈しスケジューラを自分で起動して実行します。
## このソフトの特長
crontabの不便な点を解消したい。
- 実行の一時停止。
- WEBから編集と追加ができる。
- 実行時のエラーログと正常ログを捨てずに保存。
- 実行スケジュールを読みやすくしたい。
- 実行するシェルスクリプトを複数行で書きたい
- 実行ファイルを作成せずにスクリプト本文を書きたい。
Linuxのcron で実行すると、メール通知が鬱陶しくて標準出力とエラー出力を捨ててしまいがちです。しかしエラーが出てこないのは困ります。
また、何時何分に実行済みか、現在実行中なのかがわからずに困ります。
そこで、実行後に出力を保存して結果がわかるようにしました。また実行中の場合は実行中がわかるようにしました。
cron に書くスクリプトは、1ファイルにまとめるために、何が書かれているのかファイルを見ないとわからなくなります。
そこで、cronジョブに名前をつけてコメント付記できるようにし、ファイルの本文を直接記述して実行できるようにしました。
cron のスクリプトを停止するコメントアウトでcrontab ファイルは読みにくくなります。
そこで、実行を一時停止できるようにOn/Offを可能しました。
## TODO:
- 通知機能設定
- 共通環境変数設定
- ~~dockerビルド~~
- ドキュメント