単純作業をPCで自動化できるようになると、プログラムの実行自体も自動的にやってほしくなりますよね。
資産運用の記録を定期的に取るため、pythonでSBI証券へログインするサンプルコードやログなどをメールで送信するサンプルコードご紹介しました。
これらのプログラムを自動実行できれば、正にほったらかしで運用成果の記録が取れるようになります。
そこで、今回はMac環境でpythonを自動実行する方法をご紹介します。
Mac(cron)でpythonを自動実行
Windows環境ではタスクスケジューラを使用すれば自動実行できます。
Mac環境ではcron(クローン)で自動実行を設定します。
cron(クローン)はUNIX系のOSでプログラムを自動実行するためのもので、MacOSはUNIXベースのOSであるためcronの出番となります。
cronはWindowsのタスクスケジューラと違ってGUIで操作できません。
ターミナルからコマンドでの操作となります。
cronの基本的な設定手順
まずは、cronの基本的な設定方法を説明します。
ターミナルの起動し、「crontab -e」を入力してcronを起動
cronを起動すると、私の環境ではこんな感じです。
このままでは入力ができないコマンドモートと言われる状態ですので、キーボードの「i」を押して入力できるインサートモードにします。
一番下に「— INSERT—」と表示されていれば入力可能。
次にプログラムの実行タイミングと実行するプログラムを入力します。
入力書式は、次の通り。
分 時 日 月 曜日 実行プログラムと実行ファイル
毎朝9時にPython3でhello.pyというファイルを定時実行するには次の通り。
0 9 * * * python3 hello.py
分、時、日、月、曜日はそれぞれ次のように指定します。
分 0〜59
時 0〜23
日 1〜31
月 1〜12
曜日 0〜7(0,7=日曜、1=月曜、2=火曜、3=水曜、4=木曜、5=金曜、6=土曜)
例えばこのように。
毎日9:15に実行するなら、15 9 * * * python3 hello.py
毎週月曜の13:15に実行するなら、15 13 * * 1 python3 hello.py
毎月13日の9:15に実行するなら、15 9 14 * * python3 hello.py
入力終了後に「esc」を押しコマンドモートに切り替えてから『:wq』と入力して、returnキーでcronを保存。
ここまでが基本的な設定手順です。
cronの実行プログラムと実行ファイルの指定
cronではフルパスで実行プログラムと実行ファイルを指定する必要があります。
まずはpython3の位置を「which」コマンドで確認します。
私の環境では上記の場所にpython3がありました。
デスクトップのpythonフォルダにある「hello.py」を毎日9時に実行するには、以下のようにcronの設定をします。
0 9 * * * /Library/Frameworks/Python.framework/Versions/3.8/bin/python3 /Users/macmini/Desktop/python/hello.py
cronにファイルのアクセス権がないとエラーになることがありますので、次はアクセス権の設定をします。
cronにファイルのアクセス権を付与
ファイルのアクセス権の設定はシステム環境設定から行います。
システム環境設定>セキュリティとプライバシー>プライバシー>フルディスクアクセスと進んで下さい。
左下のカギをクリックして、「+」ボタンを追加します。
アプリケーションの選択画面で[command] + [shift] + [G] を押すと、フォルダへ移動するボックスがあらわれるので、/usr/sbin/cron と入力してcronを追加して下さい。
これでファイルのアクセス権の付与も完了。
最後に
Mac環境ではプログラムの自動実行はcronを使用します。
cronでpythonを実行するためには、以下の手順で設定します。
- python3のフルパス確認し、実行ファイルのフルパスも確認。
- 次にファイルのアクセス権を付与。
- 最後にcronに実行スケジュールを登録。
Windows環境ではタスクスケジューラ、Mac環境ではcronを使用してプログラムを自動で実行する環境を整えて楽をしましょう。
おすすめ書籍
証券口座にログインしたあとに必要なデータの取得方法や加工の方法など、pythonでのWebスクレイピングの基本が学べます。
おすすめスクール
大学生に特化し、受講生/卒業生間のつながりを重視
マンツーマン指導のプログラミングスクールの中で業界最安水準の価格設定!!
まずは無料体験レッスンからどうぞ。
techmeetsはプロのエンジニアになることを支援するオールジャンルカバー型エンジニアスクールです。
まずは無料面談からどうぞ。
転職やキャリアアップ、フリーランスを本気で考えている方向けのプログラミングスクールです。
転職などのサポートも充実しているため、未経験からIT業界へ転職を求めている方へおすすめです!
まずは無料相談からどうぞ。
GEEK JOBは、「学びかた」を改革し、自ら学び自らサービスを創り出す人を増やすをミッションにプログラミング学習や転職・就職支援、エンジニアの育成を行なっています。
まずは説明会の参加からどうぞ。
コメント