LinuxサーバーをポーリングするTelegramボット

最近、私はPythonが好きになりました。 helloworldのようなコードよりも実質的なものを書きたかったのです。 彼は電報ボットにも興味を持っていたため、リモートサーバー(Linux)でコマンドまたはスクリプトを実行し、結果を電報に返すボットを作成するというアイデアが生まれました。 なんで? 便利に! サーバーにログインして、プロセッサの負荷、空きメモリ、ディスク容量に関する情報を取得する必要はありません。 スクリプトを実行することもできます。



そして、 私たちはpythonとapiテレグラムボットを研究し 、ボットをテレグラムに登録し、既製のスクリプトをダウンロードし、サーバーで実行し、自分用にconfig.pyを変更します。



順番に行きましょう:



1)テレグラムボットの登録。 すべてのボットの父-@BotFatherを見つけます。 彼に手紙を書きます。



/newbot
      
      





彼のメッセージに応答して、新しいボットの名前を入力します。 最後にボットという単語が必要です。



 moi_novii_bot
      
      





名前が使用されず、正しく入力された場合、トークンを取得します-トークンをスクリプトのconfig.pyファイルにコピーする必要があります。



 token = ' '
      
      





2)スクリプトをダウンロードします。 これは、最初のpython自体の機能を評価するためのスクリプトの最初のテストバージョンであり、2番目に-テレグラムボットです。 提案や提案は大歓迎です-私は終了します。 自分で何かを追加することができます-リクエストも共有されます。 プログラムの機能は何ですか(ボット/ヘルプに入力することで確認できます):





他に何を実装する予定ですか?スクリプトの起動(実行全体を出力せず、最終結果のみ)、結果の出力を改善します-より読みやすく、データベースの統計を収集し、負荷のグラフを表示します。



スクリプトを実行するには、python 3とpython-telegram-botが必要です。 centOSがあります。 既に2つのバージョンのpythonがあります。 次の3つのpythonとボットのライブラリを配置します。



 wget http://www.python.org/ftp/python/3.3.2/Python-3.6.0.tar.xz yum install xz tar -xpJf Python-3.6.0.tar.xz cd Python-3.6.0 yum groupinstall "Development tools" ./configure make make install ln -s /usr/local/bin/python3 /usr/bin/python3 pip3 install python-telegram-bot --upgrade
      
      





スクリプトの構成:



bot-python3を起動するbashスクリプトファイルbot.py

bot.py-ボットスクリプト自体。 pythonに精通している方は、内部へようこそ。

config.py-設定を保存します。 そこに電報で受け取ったトークンを入力します。 次に、スクリプトを実行します。


電報アプリケーションで、次を入力します。



 /id
      
      





このようにして、個人IDを取得します。 (123456789ではなく)行に入力する必要がありますadmin = ['123456789']。 これはセキュリティ上の理由で行われるため、他のユーザーは特定の電報アカウントのユーザーのみを入力できます。 カンマで区切られた複数のIDを登録することができます:admin = ['123456789'、 '987654321']。



行dir1で、ボリュームを制御したいフォルダーへのパスを設定します(私にとっては、これはpgsqlデータベースのあるフォルダーへのパスです)



dir_backup行で、ファイルが存在するフォルダーへのパス。そのボリューム(または存在)を制御する必要があります。 20170218.tar.gzという形式のファイルがあります。 デフォルトでは、month_date.tar.gzのファイル名を持つオプションがチェックされます。 チェックするファイルのマスクを変更する場合は、bot.pyファイルの行を見つけて編集する必要があります



 filebackup = config.dir_backup + cur_year + cur_month + cur_day + '.tar.gz' #    
      
      





config.pyファイルを修正するときにスクリプトを再起動する必要がないことに注意してください。 すべての設定は、スクリプトによって毎回再読み取りされます。



このスクリプトをスタートアップに追加すると便利です。 CentOS 7の場合:



 touch /etc/systemd/system/telegram-bot.service chmod 664 /etc/systemd/system/telegram-bot.service
      
      





このファイルの内容は次のとおりです。



 [Unit] Description=Telegram bot After=network.target [Service] Type=simple User=     ExecStart=   bot.sh (         bot.py) [Install] WantedBy=multi-user.target
      
      





新しいサービスを開始します。



 systemctl start telegram-bot.service
      
      





スタートアップに追加:



 systemctl enable telegram-bot.service
      
      





ステータスを確認します。



 systemctl status telegram-bot.service
      
      





コマンドを入力できます。 / helpから始めます。



スクリプトを使用してアーカイブにリンクする



githabに投稿してくれたriot26に感謝します。

gist.github.com/riot26/bb55e8a19fae0b58d687040c54cbc148



All Articles