2013-01-01から1年間の記事一覧

cron実行時のカレントディレクトリ

cronが実行されるところ cronってどこで実行されるんだろう?っていうのを知らなかったので 調べてみました。 やり方 あえて相対パスでcrontabを作成 * * * * * date >> cron.txt これでやってみたところ [farmedgeek@Mint ~]$ tail -f /home/farmedgeek/cro…

bashでoracle(SELECT)

bashでoracleに接続し、SELECT結果を利用したい bash内部で、oracleに接続して取得した結果を シェル変数に入れて使いまわす方法です。 ./select.sh #!/bin/sh MY_SYSDATE=`sqlplus -s scott/tiger << EOF set feedback off; set echo off; set flush off; s…

公開鍵暗号の仕組み

公開鍵って、鍵なのに公開しちゃったらダメじゃない? どういう仕組みなの? って思いますよね。 えっ?思わない?玄人は黙っててください。 まず前提として 以下のことを覚えてください 公開鍵は秘密鍵とペアで利用される 公開鍵で暗号化されたものは、その…

rsyncでディレクトリの同期

rsync ディレクトリ間の同期をとるコマンド rsync ${dirA} ${dirB} とやることで、${dirA} のファイルをまるごと ${dirB} へコピーすることができます。 scpと同様に、ホストを跨いで行うことも可能。 その場合は rsync ${dirA} ${hostname}:${dirB} で ${ho…

ssh接続できない

sshでエラーが 頻繁にログインするサーバと たまにしかログインしないサーバってあると思うんですけど 今日、後者のサーバに半年ぶりくらいにログインしようとしたら こんなエラーが出てきました。 [farmedgeek@Mint ~]$ ssh ltns_host @@@@@@@@@@@@@@@@@@@@…

バッファオーバーフロー予防

C

Cのソースコードを読んでいて出てきたこんな処理 while(fgets(buf, 256, fpMaster) != NULL){ fputs(buf, fpCopy); } while文で回しながら fpMasterから256バイトずつbufに入れてfpCopyに移す っていうのをやってるんだけど なんでイチイチこんなことしてん…

mongoDBのインストール

mongoDBを入れてみたここを参照(公式) http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ 事前準備 公開鍵の取得 [farmedgeek@Mint ~]$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 /etc/apt/sources…

ポートの開放

前回に引き続き、ポートの話です。 前回は、ポートがどうなってるかを確認するところまででしたので 今回は閉じているポートを開けるところまでやってみたいと思います。 ポートを開けるには、iptablesをいじる必要があるんですが、素人には難しい(らしい)…

ポートスキャン

開いているポートを調べる方法です nmapコマンドを使います なければ入れましょう [farmedgeek@Mint ~]$ sudo apt-get install nmap 空いているポートの一覧を出してくれます [farmedgeek@Mint ~]$ nmap 127.0.0.1 Starting Nmap 6.00 ( http://nmap.org ) a…

csv変換スクリプト

csv変換スクリプト 任意のデリミタで区切られたファイルをcsvに変換するスクリプトです ./to_csv.py こういうファイルがあるとします [farmedgeek@Mint ~/python]$ cat input.txt no name date num 1 spam-man 1990/03/10 32 2 egg-man 1989/07/31 2 3 ham-m…

addとcommit

git

今日はちょっとPythonから離れてgitを触ってみます。 当方のステータス ・gitがバージョン管理ツールなのは知ってる ・which git ってやるとパスが通ってるのはわかる ・でも具体的な使い方はわからない ・subversionなら使ったことある 構造 ローカル ↓add …

クラス

クラス 見よう見まねでクラスを作ってみた phoneクラス ./phone.py #!/usr/bin/python # coding:utf-8 class Phone: #コンストラクタ def __init__(self,maker): self.maker = maker #デバイス取得関数 def getDevice(self): if self.maker == 'apple': retu…

大文字小文字

文字列を大文字や小文字にする 引数で渡された文字列を大文字・小文字に変換する ./upper_lower.py #!/usr/bin/python # coding:utf-8 import sys argsv = sys.argv instr = argsv[1] print instr.upper() print instr.lower() 実行結果 [farmedgeek@Mint ~/…

文字列を左揃えにする

テキストデータの位置整形 リスト内の文字列を出力し、その後ろに連番を振りたい時、そのままやるとこうなってしまいます。 ./just.py #!/usr/bin/python # coding:utf-8 list = ['spam','hitman','ham','OscarWylde'] # そのまま出力 i = 0 for word in lis…

置換スクリプト

ファイルを読み込んで特定の文字列を置換するスクリプト ./replace.py 置換処理自体はreplace関数を使っています #!/usr/bin/python # coding:utf-8 import sys text_old = sys.argv[1] # 置換前文言 text_new = sys.argv[2] # 置換後文言 input_file = sys.…

関数

関数 細々と単発のスクリプトを書いてきましたが この辺で関数を作ってみたいと思います。関数は def によって定義することができます。 ここでは、引数に渡された数だけ'spam!'を連呼する関数を定義して それを呼び出してみます。 ./def_func.py #!/usr/bin…

文字の結合

文字列の結合 文字列を結合したい場合、どうするか。 結論からいうと、join関数を使うのが一番いいみたいです。 ./join.py #!/usr/bin/python # coding:utf-8 a='spam' b='ham' c='eggs' # '+'でつないでみる abc1 = a+','+b+','+c print abc1 # joinを使う …

文字列という配列

文字列の扱い 文字列はただのシーケンスです ./string.py #!/usr/bin/python # coding:utf-8 spam='Interesting!' #普通に出力してみる print spam #文字列を配列として扱ってみる for c in spam: print c, else: print #ただの配列なのでスライスもできる p…

連想配列

辞書(連想配列) JavaでいうところのHashMapですね。 キーを指定して値を格納したり、取得したりするアレです。 ./dict.py #!/usr/bin/python # codinf:utf-8 #辞書を定義{キー:要素} dict={'eat':'ate', 'sleep':'slept', 'play':'played'} #キーを指定 pr…

forループ(回数指定)

「n回処理を回す」ループ ./for_in_range.py #!/usr/bin/python # coding: utf-8 n=10 for x in range (0,n): print x 実行結果 [farmedgeek@Mint ~/python]$ ./for_in_range.py 0 1 2 3 4 5 6 7 8 9 [farmedgeek@Mint ~/python]$ 単純なテストデータの作成…

forループ(リスト)

処理中に定義されたリストを使ってループを行う ./for.py #!/usr/bin/python # coding:utf-8 list = ['spam','ham','eggs'] for x in list: print x 実行結果 [farmedgeek@Mint ~/python]$ ./for.py spam ham eggs [farmedgeek@Mint ~/python]$ 動的に作成し…

ファイル読み込み

外部ファイルを1行ずつ読み込んで出力するスクリプト こういうcsvファイルを読み込んでみます [farmedgeek@Mint ~/python]$ cat ~/python/warehouse/spam.csv No,id,count,date 1,spam01,25,2009/03/01 2,spam02,122,2012/07/23 3,ham01,9,1999/01/01 4,egg…

配列(タプル)

今日はタプル(変更不可な配列)について リストとタプルの定義の違い list = [0,1,2] #リストは角カッコ tuple = (0,1,2) #タプルは丸カッコ ./tuple.py #!/usr/bin/python # -*- coding: utf-8 -*- #タプルを定義 tuple = (1,2,3,4,5,6,7,8,9,10) #タプル…

配列(リスト)

pythonの配列には リスト(変更可能な配列) タプル(変更不可な配列) の2種類あります。タプルの方が、静的なぶん処理は早いようなので 変更の必要がないものであれば、なるべくタプルを使ったほうが エコなプログラムになるみたいです。まずリストについ…

分岐

分岐をさせてみます ./if.py #!/usr/bin/python # -*- coding: utf-8 -*- import sys argvs = sys.argv wk = argvs[1] if wk == 'spam': print 'This is spam.' 実行結果 [farmedgeek@Mint ~/python]$ ./if.py spam This is spam. [farmedgeek@Mint ~/python…

出力

コマンドラインから引数を受け取って出力するスクリプト ./print.py #!/usr/bin/python # -*- coding: utf-8 -*- import sys argvs = sys.argv # output print argvs[0] print argvs[1] 実行結果 [farmedgeek@Mint ~/python]$ ./print.py spam ./print.py sp…

余命が残り少ないという絶望について

すっかりご無沙汰になってました。まず件名について、私のことではありません。 とはいえ極めてプライベートなことに変わりはありませんが 家族が、悪名高いスキルス胃がんになってしまい 通例通り、発見時にはステージ4(他への転移がある状態)でした。そ…