🗂

Zennの投稿忘れ防止:毎週gitに自動pushする仕組み

2023/09/30に公開

はじめに

Zennでの執筆はZennCLIを使っている筆者です。ZennCLIでは記事などはGitHubで管理しています。以前「ZennCLIのgit操作をshellで自動化した話」という記事で、ZennCLIの記事投稿を自動化しました。ですが、shellファイルを当たり前ですが、実行しないといけません。これだと実行し忘れると記事が投稿されません。そのまま、筆者も気づかず記事をあげ忘れると問題です。なので、週に一度(記事の投稿日)自動で記事投稿する様に、crontabを設定しました。

https://zenn.dev/hiropoko/articles/5d7f629f7d8c27

cronとは

タイトルにあるcronですが、あまり聞く機会がないので解説します。
cronはUNIX系オペレーティングシステム上で定期的に実行するジョブ(タスク)をスケジュールするためのデーモンです。cronを使用することで、特定の時間や間隔でプログラムやコマンドを自動的に実行できます。
一定の時間などに実行したい処理があれば、cronの設定を行うそこでctontabコマンドを使います。
crontabはターミナルなどで標準に用いられる定時実行システムcronの設定を行う設定ファイルcron tableの略です。

cronを設定する

crontab -eでcronを設定できます。
コマンドを実行するとvimが開かれると思います。
毎週土曜日の午前8時に、実行して欲しい場合は、以下の設定で実行できます。

0 8 * * 6 実行したいシェルのパス

設定内容を解説します。

  • 分(0-59): 最初のフィールドで、実行する時刻の「分」を指定します。この例では「0」となっているので、毎時間の0分にマッチします。
  • 時間(0-23): 2番目のフィールドで、実行する時刻の「時間」を指定します。この例では「8」となっているので、午前8時にマッチします。
  • 月の中の日付(1-31): 3番目のフィールドで、実行する月の中の日付を指定します。この例では「*」となっているので、毎日にマッチします。(何日でも実行される。)
  • 月(1-12): 4番目のフィールドで、実行する「月」を指定します。この例では「*」となっているので、毎月にマッチします。(何月でも実行される)
  • 曜日(0-7、0と7は日曜日): 5番目のフィールドで、実行する「曜日」を指定します。この例では「6」となっているので、土曜日にマッチします。(土曜日だけ実行される)

この様にcronを設定できたら完了です。

おわりに

cronを使うことで、毎週行いたい処理などが自動化できました。ローカルでとくに環境設定を行わず、処理を自動化できるのは便利でした。
今後も、色んな情報を発信するので記事がいいなと思ったら、いいねとフォローお願いします。

Discussion