19
Help us understand the problem. What are the problem?

はじめに

どうもこんにちは。

先日会社の人と街コンと言われる恋活パーティーに参加してきました。
初めてのコンパ + 最近在宅ワークで人と関わる機会がなかったので、ワクワクドキドキ。
いい出会いがあるのではと、微かな希望を持って臨みました。

結果は、、、

負け....
連絡先は交換できたものの、次に繋がる出会いは得られず・・・

くぅぅぅ。。。
パーティー自体は楽しかったのでよかったのですが、悔しさが残る初戦でした(また行くのかよ)

誰かにお疲れさまですと言って欲しいだけなのに。その道のりは長そうです。
いつ彼女は作れるのやら、、、



ん、彼女を作る・・・?
そこで私は閃きました。

(彼女が)作れないなら、(プログラムを)作ればいいんだ!

まさに逆転の発想。灯台下暗し。
このためにエンジニアになったのだと思わせるほどの衝撃でした。

ということで今回は、

1時間おきに彼女(仮想)に「お疲れさまです」と言われる定期実行

を作っていきたいと思います。

実現方法

定期実行はcronを使用することで実現できます。

cronとは

簡単にいうと
指示した時間に指定したプログラムを動かしてくれるやつ
です。

UNIX系のOS(Linuxとか)に入っているプログラムのひとつであり

定期的に設定した処理を自動で実行してくれます。

  • メルマガ配信
  • 月間の売上の集計
  • バックアップ
  • たまったゴミファイルを削除する

などを実行したい際に使われます。

cronの設定方法

cronに対して「いついつに、このプログラムを動かせ」と指示をするときは
crontab というコマンドを使います。

crontabコマンドは以下です。

# cron設定の編集・登録
crontab -e

# cron設定の表示
crontab -l 

オプションは他にもありますが、最低限ここを押さえておけばいいでしょう。

crontab -e でcronを開いたあとは、vimを使って記述します。
vimの使い方がわからない方は下記を参考ください!

cronの書き方

実行時間は、分、時、日、月、曜日を指定します。

#初期状態
* * * * * (コマンド)

# 指定の順番は以下
分 時 日 月 曜日 (コマンド)

初期状態「* * * * *」では毎分ごとにコマンドが実行されます。
「 * 」と「 * 」の間は半角スペース分空けてください。

設定例

# 毎月1日の午前9時30日分にコマンドを実行する場合
30 09 1 * * (コマンド)

# 毎週月曜日の午前9時30分にコマンドを実行する場合
30 09 * * 1 (コマンド)

# 毎時0分に1時間おきにコマンドを実行する場合	
* */1 * * * (コマンド)

補足

  • 曜日:0〜7で設定。0=日曜,1=月曜,2=火曜,3=水曜,4=木曜,5=金曜,6=土曜,7=日曜
  • /:分,時,日を間隔で指定

1時間おきに彼女(仮想)にお疲れさまですと言われるには

皆さんお待たせしました。
ここから
「1時間おきに彼女(仮想)にお疲れさまですと言われる」処理を
cronを使って定期実行設定していきます。

ファイル構造

 -  /Users/username/Documents/batch_cron
 	-  otukareVoice.sh
 	-  audio
		-  otukaresamadesu.mp3

実行処理(シェルスクリプト)

#!/bin/sh
afplay /Users/username/Documents/batch_cron/audio/otukaresamadesu.mp3
osascript -e 'display notification "あと6時間はいける♫" with title "今日もお疲れ様です。" sound name "Submarine"'

今回はotukareVoice.shというシェルスクリプトファイルを作成し処理を記述。
優しいお姉さんが「お疲れさまです」といってくれる音声(otukaresamadesu.mp3)をダウンロードしました笑
興味のある方は下記のリンクから聞いてみてください笑

補足

afplay:音楽再生コマンド
osascript -e:macで横から通知をしてくれるスクリプト
/dev/null 2>&1:下記の記事を参照ください。

cronの設定

# 1時間おきにotukareVoice.shを実行する
0 /1 * * * sh /Users/toyodakengo/Documents/batch_cron/otukareVoice.sh > /dev/null 2>&1

動作確認

otukaresama.png
1時間おきに彼女(仮想)が「お疲れさまです」という声と共に
「あと6時間はいける」と煽ってくる定期実行が完成しました♫

これで仕事が捗ること間違いなしですね!

最後に

今回は1時間おきに彼女(仮想)が「お疲れさまです」と言ってくれる定期実行を作りました。
これで在宅ワークでも寂しいことはありません。

世のエンジニアさんは、彼女を作る前にまず定期実行を作ってみてはいかがでしょうか。
虚しさが募り本気で彼女を作る気になりますよ!

ではまた〜!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
19
Help us understand the problem. What are the problem?