読者です 読者をやめる 読者になる 読者になる

PythonでExcelを操作する時のメモ

Windows版のPythonとwin32com モジュールを使うことで、VBAからしか使用出来ないような機能が Pythonからも使用できるようになる。 Git等と連携できる点や、普通のPythonモジュール(正規表現やXML/JSON処理等)が使える点が圧倒的に便利で、、もはやVBAには戻…

OpenofficeのPythonマクロでimpressの情報を取得するには

前回と同様、OpenofficeのPythonマクロなのだが、今回はimpressの方で作ってみた。前回同様powerpointにもVBAでのマクロが存在するようなのだが、gitとの連携や、Linuxでも使える点を考え、こちらで進めている。 前回についてはこちら: http://d.hatena.ne.j…

OpenofficeのPythonマクロを使ってみた

サーバー上で取った情報等をまとめて、最終的にエクセルファイルとして出力したい場合(大抵CSVだと表現しきれない情報がある(枠線とか色とか)。。orz)、基本的にはエクセルマクロを使うことになる。ただ、エクセルマクロだと、言語としてVisualBasicしか使え…

Pythonで外部コマンドのstdinを制御してみた

シェルの外部コマンドの中には、コマンドの途中で端末からの入力を促すコマンド(su とか)があるが、 この入力内容をPython等から制御できると色々と便利そうだ。。。今思えば、Pexpect ( http://de.sourceforge.jp/projects/sfnet_pexpect/ ) を使えば簡単だ…

nagiosのpassive checkとrsyslogを組み合わせてみた(3)

名前付きパイプの使い方について書こうと思ったのだが、先に結果のPythonスクリプト(rsyslogfifo.py)を貼っておく。使い方としては、あらかじめ /tmp/aaa にmkfifo コマンドを実施しておく必要がある。( /tmp/aaa 経由でrsyslogからrsyslogfifo.py へのログ…

Nagiosのpassive checkとrsyslogを組み合わせてみた(2)

前回で、Nagios に対して、アラート通知を行う方法を書いたので、今回は、rsyslog の内容をNagios のアラート形式に書き換える方法について書いていく。Nagios の理解できる形式は、次のようなものになる。 echo "[$(date +%s)] PROCESS_SERVICE_CHECK_RESUL…

Func: Fedora Unified Network Controller を使ってみた(6.2)

前回 ( http://d.hatena.ne.jp/aaabbb_200904/20090922/1253627352 ) のような方針で。Pythonでスケジューラを作るとすると、 /etc/cron.d のようにPythonモジュールを置いておくディレクトリを作り、そのディレクトリ以下のファイル名を全て取得し、それら…

Func: Fedora Unified Network Controller を使ってみた(6.1)

Func用のスケジューラとして、JobScheduler を試してみたのだが、今ひとつ思い通りに動いてくれなかったので、別のスケジューラを探してみようと思う。スケジューラ用に、cronを拡張としたツールとしては、fcron (http://fcron.free.fr/ ) などいくつかあっ…

Func: Fedora Unified Network Controller を使ってみた(5.1)

前回単一ノードで同時に複数ジョブを実行する方法を書いたが、単一ノードでジョブを実行するだけなら、Pythonのthreadを使った方がやりやすい。例をあげてみる。 from threading import * import time def aaa(): while True: print 'aaa' time.sleep(5) def…

Func: Fedora Unified Network Controller を使ってみた(5)

Funcにはasyncというオプションがあるのだが、これを設定すると同時に複数ジョブ(複数サーバーに対して)を実行することが出来、 依存性が無い複数のジョブを同時に実行するために利用出来る。実際に1つのノードで、複数ジョブを並列で行わせてみた。 import…

Func: Fedora Unified Network Controller を使ってみた(3)

FuncをPostgreSQLのバックアップのキックに使用することを例にとり、pg_dump => gzip => ls -l の順に前のコマンドが成功したら次を実施するというスクリプトを作ってみた。まず一通り載せてみる。 import func.overlord.client as fc def perform_task(rc, …

Nagiosとrsyslog-pgsql を連携してみた

PostgreSQLの使い方を一通り覚えて、ようやく当初の目的である、Nagiosとの連携を試すことが出来た。 基本的には、PostgreSQLに貯めたsyslogから、該当時刻(ここでは15分ごととした) のログを取り出し、その中に正規表現で表現されるログがあるかどうかを探…