tips

【シェル】ヒアドキュメントのEOFの前にスペースは入れてはいけない

みたいです。これはちょっとハマりました。 ヒアドキュメントとは ヒアドキュメントという機能を知っていますでしょうか?簡単に言えば複数行で文字列を表示させる機能です。 Qiitaで探すといっぱいでてきます。 詳しい機能は下記など、いろいろ探してみてく…

Hiveでpartitionはテーブル定義と紐づいているようだ

Hiveのテーブルにカラムを追加した時に 追加したカラムがスッカスカでデータが取れないことがあった。結論から言うと、パーティションが変更前のテーブル定義と紐づいてるから 追加カラムの値が取れなかったってこと。なのでパーティションを作り直すと追加…

プロセスの並列とCPUの効率性

Goでプログラムを書くと処理が早い。ファイル処理のプログラムを書いていたのだけど 1ファイルの変換プログラムを書いたら、そのまま並列処理をさせようと設計検討をしていた。そしたら上司から「順番は意識しなくていいのだから、1CPUで1ファイル処理させる…

while で sshコマンドを実行すると1回しか実行されない

タイトルどおりなのですがすごく悩んだあげく ググってみたらすぐ解決策が見つかったのでメモしておく。chat-rate.comwww.m-bsys.com 2番目のブログから引用しますが 原因はsshコマンド実行に伴う標準入力の切替です。sshコマンドを実行すると、ローカルホス…

Go言語でプロキシ経由でs3からダウンロードする

go言語でs3からダウンロードする方法は探せばなんとか見つかりました。 でもプロキシを使うケースがよくわからず、なんとかコーディングしてみたので備忘として載せておく。 Go言語でs3からファイルダウンロード+プロキシ使う版

プログラムの処理時間を計測する簡単な方法(ボトルネックを探す)

プログラムを作ってる時、機能的なエラーは作ってるうちにわかりますよね。 ですが性能的なボトルネックは使ってみないとわかりませんよね。 この関数かな?とあたりをつけて改善していくことでしょう。たまたま1ファイルの処理についてのプログラムを書い…

大きいファイルの作成時刻を取得する時は要注意

ファイルが作られた時刻を取得したくてGoで調べてました。やりたかったことは、あるディレクトリを監視して ファイルが増えたら、新しいファイルのみ取得したいと思ってました。じゃあこうしよう 「保存用最大ファイル作成時刻」とした変数を0としておく デ…

けっこう便利な trap コマンドなんて知らなかった

あんまりシェルスクリプトは好きじゃないんだけど インフラやってるとシェルスクリプトを書くことがある。その中で他人が書いたコマンドに trap というコマンドがあった。罠…??なんかおどろおどろしい感じがしたけど 調べてみると、なんとまあ便利なコマンド…

pythonでシェルコマンドを実行するときのメモ

サーバーでのちょっとした処理をpythonで書くことがあるんだけど pythonからシェルスクリプトを実行するのどうやるんだっけ? 毎回忘れてしまうので、メモしておく。 とりあえずの使い方 import subprocess cmd = "ls -l" subprocess.Popen(cmd, shell=True)…

Cent OSにawslogs-agent 入れようとして苦労した話

EC2インスタンスからパカパカログを検知して cloudwatchに入れたいねという依頼があったのでやってみた。 苦労したところがあったのでメモ。pythonのバージョン差異でエラーが出る出ないがあるようだった。 でも調べることが目的じゃないので精査してない。…

pythonでユーザー名を取得する

ユーザー名の取得方法はいろいろあります。 下記のやり方があります。 ユーザー名の取得 で調べてたらgetpass.getuser()のソースを調べてる人がいて LOGNAME, USER, LNAME, USERNAME から値を取ってたんですねー なるほど qiita.com

pythonでホスト名を取得する。

ホスト名の取得方法はいくつかあるようです。 下記で簡単に取得できます。 ホスト名を取得 ホスト名はどこからとってるのかなと調べてたら こんなpythonの実行もあるのか! github.com python 実行する時に -c でスクリプトを実行できるんですね。 これは便…

文字列数字をint型数値リストに変換

config に数値を書いておいて、その数値リストを使いたい場合があります。 そこで取得した文字列数字をsplitで分割しても、単なる「string」の数字のリストになってしまうんですよね。 でどうしよっかなと、俺の性能が良くない頭で考えてしまうと それぞれの…

logging formatで定義に無いものを書く方法

以前のブログでlogging.propertyの書き方を書いていました。 suganoo.hatenablog.com ※logging.propertyだかlogging.confだか、どっちが適切な表現なのかはここでは置いておく。 logging.confを書いている時に、あれこんなことできないかなと悩みました。 ロ…

【globals()の使い方】文字列のクラス名からインスタンス生成する

こんな処理をするスクリプトを作っていました。 ログをダウンロードして ログパースして webサーバーにアップロード このログをパースする処理なんだけど、ダウンロード/アップロードは変わらない。 ログの種類がある程度決まってるから、実行する時にログパ…

pythonでlistの重複を除くにはsetが便利

pythonにはrubyのようにuniq関数は無いようです。 リストの値をsetにして、再度リストにすると重複が除かれます。 なんで順番くずれるんだろうね。 リストで重複除く

JSONパースのTypeError: string indices must be integersでハマった

jsonパースのところで値を取得しようとしたら、TypeErrorとかのエラーが出た。なんだこりゃ、全然わかんねーと、かなりもがいてしまった。 SQSからもらうメッセージみてもぜんぜんjson形式として悪いところはなさそう。ダブルクオーテーションが悪いのか!?…

2か所にあるファイル存在を比較するにはsetが便利

2か所にファイルを保管してて、それらのファイルの存在確認をすることがあった。具体的に言うと、例えば Webサーバー上にあるファイルと、ローカルに保管したファイルが同じと仮定。 それが一致しないことがあるから、数が一致してるかを確認したい。 もしく…

pythonで空ファイルだけ作る

pythonで空ファイルだけを作る

ConfigParserでkeyの存在確認をする

configファイルでkeyの存在確認できないかなーと思ったので書いてみた ConfigParserでkeyの存在確認する

プログレスバー使い方

qiita見てたら、まさにこれ!使いたかったーって記事を見つけた。 参考サイトはここです qiita.com torina.top プログレスバー使い方

ConfigParser使い方

gist2f1dca13c04a846a7bc92ae42504d336

ArgumentParser使い方

ArgumentParserの使い方 このように書いて python hoge.py --config hage --logtype fuga こんな風に実行します。

logging.propery のテンプレート

よく使うのでテンプレートをメモしておく logging propertyのフォーマット pythonならこれを import logging import logging.config logging.config.fileConfig(”(logging property path)”) self.logger = logging.getLogger("hogehogetool")

echoコマンドでカラー出力する方法

シェルスクリプトを書いていると、たいてい真っ白カラーで出力していまいます。処理がちゃんと終わればそれでいいから、別に表示する文字の色なんてどうでもいいやと思ってました。たまたま、カラーオプションを教えてくれたので備忘として書いておきます。 …

pythonのtips

wonderwall.hatenablog.com おもしろい記事を見つけた。 pythonのテクニック。メモしておこう。 元ネタはここらしい github.com