Twitterを介した簡単なLinux管理

こんにちは、Habrausers様。



この投稿は、Twitterボットと彼のためのあらゆる種類のホイッスルダンサーに関する記事の登場に触発されています。 Twitter APIの私のビジョンを紹介します。 猫へようこそ。



このトピックは、未登録のときにサンドボックスで公開されたことに注意してください。 その後、突然別の招待状が届いたので、変更せずにそのままトピックを公開し、2番目のアカウントの外観についてサポートに通知します。



そのため、タイトルが示すように、ボットアプリケーションはツィーターAPIを使用してオンボードのLinuxマシンを制御します。



開発言語としてpythonが選択され、その結果、tweepyライブラリが選択されました。 このライブラリの初期セットアップのHoutは、上記のリンクにあります。



構成



対象に直接進みます。 このコードは完全なLinuxデーモンとして設計されており、構成ファイルがあり、プラグインで動作します。



構成ファイルを検討してください。

# Twitter credentials CONSUMER_KEY = '' CONSUMER_SECRET = '' ACCESS_KEY = '' ACCESS_SECRET = '' # base path BASE_PATH = os.path.dirname(__file__) # pid path PID_PATH = BASE_PATH+'/elmot.pid' # people nicknames who can manage system AUTHORIZED_ACCOUNTS = [] # logfile LOG_PATH = BASE_PATH+'/log/elmot.log' ERROR_LOG_PATH = BASE_PATH+'/log/elmot.err' # type None to disable incoming message log INCOMING_MESSAGE_LOG = BASE_PATH+'/log/incoming.log' # run elmot as user (do not use root) RUN_UID = pwd.getpwnam("root").pw_uid
      
      





すべてが透明です。 作業を開始するには、先ほど取得したフィールドconsumer_key、c​​onsumer_secret、ユーザーキー-access_keyおよびaccess_secretを入力するだけです。 AUTHORIZED_ACCOUNTSでシステムの制御を許可されている人のニックネームを追加することも必要です。



プラグイン



プラグインに移りましょう。 すべての機能は、彼らの助けによってのみ提供されます。 プラグインテンプレートは次のとおりです。

 class Plugin(object): name = 'undefined' keyword = 'undefined' # actions: # 0 - silent # 1 - private message # 2 - tweet to timeline action = 2 controlled = True def __init__(self): print '*', self.name, 'loaded' def execute(self, message): pass # run method only for non controlled plugins # for threading support with python Threads def run(): pass
      
      





nameはプラグインの名前、keywordはアクセスするための一意の識別子です。

アクション-必要なアクション、つまり、プラグインはサイレントにするか、PMで応答するか、タイムラインに書き込むことができます。

制御されたフィールドは、プラグインが対話型であるかどうか、つまりクライアントメッセージを受信して​​処理するかどうかをプラグインに伝えます。 プラグインが対話型の場合、プラグインは個人の電子メールでボットに着信するメッセージをリッスンし、メッセージがそれに宛てられた場合、executeメソッドを呼び出します。このメソッドでは、何でも実装できます。 プラグインが「サイレント」の場合、別のスレッドでrun()メソッドからコードを実行します。



使い方



ボットに「キーワードコマンド引数」という形式のプライベートメッセージを送信するだけです。 ボットはメッセージを解析し、処理のために適切なキーワードとともにプラグインに送信します。 たとえば、稼働時間プラグインを考えます。 キーワードを1つだけ受け取ります-キーワードと、そのタイムラインで稼働するマシンを報告します。



実装されたプラグイン



conntest-リモートホストとのリンクの常時チェック。 彼はタイムラインの問題について書いています。

removetweets-ボットのタイムラインからn個のツイートを削除します(例「removetweets 5」)。

sshmonitor-auth.log解析に基づくsshサーバー監視。 認証エラーに関するタイムラインを書き込みます。

稼働時間-マシンの稼働時間を表示します。



それだけです。あなたは自分の好みに合わせて任意のプラグインを実装し、ツイッター経由で何かを監視(またはサービスを再起動)することができます。



ご意見をお寄せいただきありがとうございます。

githubのPS コード

PPSデーモンを起動するには、binディレクトリのリンクを使用する必要があります。



All Articles