MoChiwakiブログ

女性エンジニアがゆる~く書く備忘録ブログ 〜だいたいいつもつまづいている〜

crontabで初めて遊んだよ!

crontab というものをよく知りませんでした。
あら、まぁ。
なかなかやるじゃないww
やっぱMac買って良かったと思うこの頃。

cronとは

cronとは、決められた時刻にコマンドを定期的に実行させるためのデーモンプロセスです。 cronではコマンドだけにとどまらず、シェルスクリプトや、PerlPHPなどのインタープリタ言語で書かれたプログラムも動作させることができます。 cronを実行させるためにはcrondが起動している必要があります。

crontabとは

crontab (クロンタブ、あるいはクローンタブ、クーロンタブとも)コマンドはUnix系OSにおいて、コマンドの定時実行のスケジュール管理を行うために用いられるコマンドである。 標準入力からコマンド列を読み取り、crontabと呼ばれるファイルにそれを記録する。

まずは叩いてみる

$ crontab -l

crontab: no crontab for mochiwaki
と返ってきたら
crontabは設定されていません。

編集してみる

$ crontab -e

編集モードになります。

これを打ってみる(i にしてから)

# test
* * * * * echo "test" >> cron.txt

(:wq)

1分待ってみましょう!
(1分後)あら、不思議!
cron.txtというファイルに"test"って文字が書かれているわ!

もう1分待ってみましょう!
(+1分後)あら、不思議!
cron.txtというファイルに"test"って文字が増えているわ!

ちなみにさっきやった crontab -l を叩くと設定されているものが見れます。

説明します

" * "は起動する時間を表しています。

* * * * * echo "test" >> cron.txt
曜日 ”test”って書く 追記 このファイルに

↑は毎分、毎時、毎日、実行されます。
" * "は"毎"と訳すとわかりやすいですねw
" * "または数値を書き込みます。

1 2 3 4 5 6 7または0

毎日15:45に実行なら

45 15 * * * 

" , "も使えます。

月曜と木曜日15:45と21:45に実行するなら

45 15,21 * * 1,4

何分おきに

10分ごとに実行

*/10 * * * *

4時間ごとに実行

00  0-23/4 * * *

何時からー何時まで

9時から18時まで0分になったら実行

00 9-18 * * *

時間設定のあとはshなど書いたらそれを呼び出せます。

ということは、、

00 8 * * 1 /home/User/休みますメール.sh

っての作ってくれたら、
毎週月曜日8時に休みますメールを勝手に送ってくれますよwww
やるじゃんくーろんたぶ\(^o^)/

削除する

$ crontab -r

全消しです。 eとr間違えたら大惨事です。
気をつけてください。
だからよくcronを書くエンジニアは-eと-rは設定変えたり、
使わないらしいですねw

【git】パーミッションとか変更してないけどっ?755/644

こいつのせいでpushできない

$ git diff
diff --git a/src/main/webapp/WEB-INF/hoge.js b/src/main/webapp/WEB-INF/hoge.js
old mode 100755
new mode 100644

どうやらパーミッションが変更されている様子

パーミッションとは、ファイルやディレクトリに対するアクセス権のことを言います。 一般的にwebでは複数のユーザーが1台のマシンを共有するため、自分のファイルを他人に不正に操作されないためにアクセス権(パーミッション)を設定することが出来ます。

表記 説明
755
rwxr-xr-x
通常のディレクトリ、コマンド、CGIスクリプトなど。
誰でも読込みと実行はできるが、書き込みは自分だけ。
644
rw-r--r--
通常のHTMLファイルなど。自分は読み込み、
書き込みができるが、グループメンバーや他人は読み込みしかできない。

私はいじってないファイルなのにっ!

chmodコマンドで変更したけど結局diff見たらダメだった。
…そもそも、それって見なきゃダメなの??

無視してやるぅ!!!

git config core.filemode false

さぁどうだ(確認)

$ git config -l |grep filemode

diffも消えた~
pushもできた~
これで良いのかはわからない~