定期的にLinuxサーバー上のpythonファイルを実行する

定期的にLinuxサーバー上のpythonファイルを実行する

やること

  • Ubuntu上のpythonファイルを実行し、slackのチャンネルへと定期的にメッセージを送る

環境

サーバー

  • Ubuntu 18.04.1 LTS
    クライアント
  • Windows 10 Home
    • slackでメッセージ確認

コード

  1. pythonからslackにメッセージを送るプログラムを定期的に実行します。
    このプログラムの説明はPythonでSlackに投稿するにあります。

    import slackweb
    import os
    slack = slackweb.Slack(url="YOURKEY")
    slack.notify(text="hello from Linux!")
    

    このファイルをslack_test.pyとしてubuntu上に保存。

  2. python slack_test.pyと打ち、slackにメッセージが来るか確認

crontabを使う

定期実行のため、cron(クローン)というシステムを使います。
Cronをさわってみるおを参考にしました。

cronの定期実行一覧にコマンドを登録すれば、自動で実行してくれます。

  1. crontab -eで定期実行したいサービス一覧を開く

  2. 一番下に定期実行する周期と、コマンドを書く
    例:

    */1 * * * * /home/yourname/anaconda3/bin/python /home/yourname/Automation/message_to_slack/slack_test.py
    

    まず、最初に「分 時 日 月 曜日」を指定します。ここで*を使うと、「任意の日時」となります。
    この指定方法はCronをさわってみるおが詳しいです。

    その後ろにpython hogehoge.pyと書きます。Linuxは複数のpythonが入っており、エラーとなる時があるので、今回はフルパスを入れています。

    フルパスの取得方法

    1. pythonのフルパス
      which python
      でpythonの実行ファイルのパスを出力
    2. pythonファイルのフルパス
      readlink -f hogehoge.pyでファイルのフルパスを取得
  3. 編集後保存して閉じる。以下のメッセージが出れば成功

1分おきに動作するようにした場合、このようにきっちり届くようになりました。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です