0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

#3_Raspberry Pi 3b+でプログラムを決まった時間に実行したい

Last updated at Posted at 2020-05-15

#Raspberry Pi 3b+でプログラムを決まった時間に実行したい

##はじめに
前回の記事( #2_Raspberry Pi 3B+からLINEに天気予報を通知 )でラズベリーパイからLINEに天気予報を通知するプログラムを作ってみました。
ターミナルからプログラムを叩いてLINEに通知が送られるところまで実行して「やったー!」と思っていたんですが...。

そもそも天気予報を受け取るのにいちいちターミナルを開いてプログラムを叩くの?

毎朝天気予報を受け取る機能は『自動化』したい。
『自動化』っていうとなんかかっこいいですよね。

ということで今回はラズベリーパイ(Linux)の『cron』を使って毎日決まった時間にプログラムを実行してみます。

前回の記事で作成したプログラム以外のpython,shellscriptなどでも使えちゃうので、
『このプログラムを決まった時間に動かしたい!』という希望があればご覧ください。

####1.ターミナルを開いて「crontab -e」と入力し実行
image7.png

####2.エディタが開きます
ここに追記していきます。
image8.png

実行したい時間、プログラムを以下のように記述します。
分~曜日という並び順になっているのに違和感を覚えるかもしれませんがこういうものと思ってください。

分 時 日 月 曜日 実行したいプログラム
*  *  *  *  *  program

もし毎日7:30にプログラムをimage10.png
実行したいという場合は以下のように記述します。
「ж」を実行したい時間に書き換えてください。月、日、曜日を「ж」にして時分だけ指定することで毎日実行することができます。

30  7  *  *  *  program

今回は、毎朝6時に天気予報を取得するプログラムを実行したいので以下のように記述しました。
実行するweather.pyは/home/pi/projectというディレクトリに配置されているのでパスをしていします。
image12.png

###3.アクセス権限(パーミッション)の確認
せっかくcronに登録してもプログラム自体に実行権限がついていなければ意味がありません。
現在のユーザにプログラムの実行権限が付いているかどうか確認しましょう。
ターミナルで以下のコマンドを実行します。

ls -l [プログラムのパス]

image10.png

『-rw-r--r--』というのが頭についているのがわかります。
2~4文字目の『rw-』に注目してください。

記号(r w x -) 権限
r 読み込み可能
w 書き込み可能
x 実行可能
- 権限なし
『rw』がついているので読み書きはできますが『x』がないためプログラムを実行することができません

####4.実行権限の付与

以下のコマンドを実行しパーミッションを変更します。

chmod 755 [プログラムのパス]

以下のコマンドを実行して再度パーミッションを確認しましょう。

ls -l [プログラムのパス]

image11.png

『rw-』→『rwx』に変更されたのがわかりますね。
これでcronから実行されるはずです。

####☆成功
無事にプログラムが実行されLINEに天気予報が通知されました。
Screenshot_2.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?