DynamicDNSに登録してもIPころころ変わっては意味がないのでなんとか対応したい!そういう時にスクリプト書いて対応するのは良いのだが管理が大変になるかも。そーいうときはDiCEを使おう!
ということでDiCE導入から設定まで
cd /usr/local/bin
sudo wget http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=diced019
sudo tar zxvf diced01914.tar.gz
sudo rm "diced01914.tar.gz"
※端末の文字コードをEUCへ変更する
sudo ./diced
:setup
IPアドレスの検出方法を指定してください
(0) 自動検出
(1) ローカルのネットワークアダプタから検出
(2) 外部のスクリプトから検出
<現在:0>
(N)変更しない (P)戻る
>2
-------------------------------------------------
スクリプトのURLを入力してください
<現在:>
(N)変更しない (P)戻る
>http://ipcheck.ieserver.net/
-------------------------------------------------
プライベートIPアドレスも検出対象ですか? (Y/N)
<現在:いいえ>
(P)戻る
>n
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N)
(P)戻る
>y
検出IPアドレス>*******
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N)
(P)戻る
>n
-------------------------------------------------
IPアドレスをチェックする間隔を指定してください(分)
設定可能範囲は5分以上です
<現在:10>
(N)変更しない (P)戻る
>5
=================================================
DNSサーバーの負荷を軽減するために頻繁なDNS更新を防ぐ必要があります
前回の更新から一定時間DNS更新処理を行わないように保護時間を設定して
ください(分) 設定可能範囲は10分から1440分です
<現在:60>
(N)変更しない (P)戻る
>30
=================================================
設定を保存しますか? (Y/N)
(P)戻る
>y
設定を保存しました
=================================================
ieServerを例に
:add
新しくイベントを追加します
DynamicDNSサービス名を入力してください
"?"で対応しているサービスを一覧表示します
(P)戻る
>ieServer
-------------------------------------------------
<< ieServer Project >>
URL: http://www.ieserver.net/
*** 情報 ***
IPアドレスはサーバー側で自動検出します。
IPアドレスの指定は出来ません。
(入力しても無視されます)
=================================================
ドメイン名を入力してください
"?"でドメイン一覧を表示します
(P)戻る
>dip.jp
=================================================
ドメイン名を入力してください
"?"でドメイン一覧を表示します
(P)戻る
>dip.jp
=================================================
ホスト名を入力してください
(P)戻る
>*****
=================================================
ログインユーザ名を入力してください
(P)戻る
>*****
=================================================
ログインパスワードを入力してください
(P)戻る
>*****
=================================================
登録するIPアドレスを入力してください
空白にすると現在のIPアドレスを自動検出します
(P)戻る
>
=================================================
このイベントに題名を付けてください
(P)戻る
>*****
=================================================
このイベントを実行するスケジュールを設定します
-------------------------------------------------
実行する頻度を指定してください (番号入力)
(0)1回のみ (1)1日1回 (2)1週間に1回 (3)1ヵ月に1回
(4)その他の周期 (5)IPアドレス変化時 (6)起動時
(P)戻る
>5
-------------------------------------------------
IPアドレスがあまり変化しない環境の場合、更新せずに一定期間を過ぎると
アカウントを削除されてしまうことがあります
IPアドレスの変化が無い時に実行する間隔を指定してください
(0)7日毎 (1)14日毎 (2)21日毎 (3)28日毎
(4)35日毎 (5)56日毎 (6)84日毎
(P)戻る
>0
=================================================
詳細オプションを設定します
-------------------------------------------------
[ オフライン ]
(0)No (1)Yes
番号>0
=================================================
このイベントを有効にしますか? (Y/N)
(イベントの有効/無効は"EN/DIS"コマンドで切替えられます)
>y
=================================================
イベントを保存しますか? (Y/N)
>y
イベント"*******"を保存しました
=================================================
:exit
コマンド一覧は"?"で表示可能
exit DiCEを終了します
start DiCEを開始します
startd DiCEをバックグラウンドで開始します
setup DiCEの環境設定を行います
list 登録済のイベント一覧を表示します
add イベントを追加します
ed[it] <番号> イベントを編集します
del <番号> イベントを削除します
en[able] <番号> イベントを有効にします
dis[able] <番号> イベントを無効にします
ev[ent] <番号> イベントの情報を表示します
ex[ec] <番号> イベントを今すぐ実行します
logcr ログをクリアします
次にシステム起動時のスクリプトを設定
cd /etc/init.d/
sudo cp skelton diced
vim diced
以下編集した部分
DESC="DiCE Daemon"
NAME=diced
DAEMON=/usr/local/bin/DiCE/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
do_start() {
start-stop-daemon --start --quiet --pidfile $PIDFILE \ --exec $DAEMON -- -d -l
}
sudo update-rc.d diced defaults 96 5
あとはシステム再起してプロセス確認して立ち上がっていればおk
December 27, 2009
Qt4環境を構築
sudo apt-get install libqt4-opengl-dev qt4-dev-tools libqt4-webkit-dbg libqt4-xmlpatterns-dbg libqt4-dbg qt4-doc qt4-demos-dbg
Ubuntuサーバ再構築(3)
OpenSSHインスコ
設定(参考)
でおk
あとはクライアントからログインでリモート操作出来ると思う。
出来ない場合はFWall関係を調べてみるといいだろう。
sudo apt-get install ssh
設定(参考)
vim /etc/ssh/sshd_config
#プロトコル
Protocol 2,1
#rootのログインの許可
PermitRootLogin no
でおk
あとはクライアントからログインでリモート操作出来ると思う。
出来ない場合はFWall関係を調べてみるといいだろう。
December 24, 2009
Ubuntuサーバ再構築(2)
vsftpdをインスコ
sudo apt-get install vsftpd
次にconfig弄りなのだが、そのまえにvimをインスコ(vimデビューなう)
sudo.vimもついでに。(参考)
sudo wget -P /usr/share/vim/addons/plugin -O sudo.vim "http://www.vim.org/scripts/download_script.php?src_id=3477"
vimの使い方はこちらを参照
標準のエディタの変更は
sudo update-alternatives --config editor
で行える。
さて、気を取り直してvsftpdのconfigを弄る
基本的にvsftpd.confは/etc直下にあるが、ないという場合は以下を叩いてファイル位置を確認しよう。
vsftpd.confで弄った部分(参考1)(参考2)
service start vsftpd
最低限設定したほうがいいやつを上げた。あとは自分の構築したい環境に適宜変更よろ。
sudo apt-get install vsftpd
次にconfig弄りなのだが、そのまえにvimをインスコ(vimデビューなう)
sudo apt-get install vim-full
sudo wget -P /usr/share/vim/addons/plugin -O sudo.vim "http://www.vim.org/scripts/download_script.php?src_id=3477"
vimの使い方はこちらを参照
標準のエディタの変更は
sudo update-alternatives --config editor
で行える。
さて、気を取り直してvsftpdのconfigを弄る
基本的にvsftpd.confは/etc直下にあるが、ないという場合は以下を叩いてファイル位置を確認しよう。
dpkg -L vsftpd
vsftpd.confで弄った部分(参考1)(参考2)
#匿名ログインを許可
anonymous_enable=NO
#ローカルユーザのログインを許可
local_enable=YES
#書き込み許可
write_enable=YES
#デフォルトのumaskを022へ
local_umask=022
#ログ保存位置
xferlog_file=/var/log/vsftpd.log
#ログフォーマット
xferlog_std_fomat=NO
#アスキーモードでのアップロード許可
ascii_upload_enable=YES
#アスキーモードでのダウンロード許可
ascii_download_enable=YES
#ftpサーバ名 バージョンを表示させない。代替メッセージ
ftpd_banner=Welcome to my FTP serer.
#/homeより上層へのアクセスを制限
chroot_local_user=YES#/homeより上層へのアクセスを制限するリストの有効化
chroot_list_enable=YES#/homeより上層へのアクセスを制限リストの場所
chroot_list_file=/etc/vsftpd/chroot_list#Dirごと削除できるようにする。
ls_recurse_enable=YES
service start vsftpd
最低限設定したほうがいいやつを上げた。あとは自分の構築したい環境に適宜変更よろ。
December 23, 2009
December 22, 2009
Ubuntuサーバ再構築(1)
結構前に触ったきりでちょい不安になったので、OS再インスコすることにした。
ディストリはUbuntu9.04。9.10はバグがアルらしく様子見(どんなバグがあるか詳しく調べていない)
BasicUbuntuServerに何が入っているのか分からないのでひとまずこれで。
ネットインスコだったけど念のため
を叩いた。
ついでにGUI環境もということでLXDEを。
sudo apt-get install lxde
鯖構築終わったら、lxdeを起動時に立ち上げないようにすることを忘れずに。
次回は vsftpd apache2 Python FireWall などの設定構築。
ディストリはUbuntu9.04。9.10はバグがアルらしく様子見(どんなバグがあるか詳しく調べていない)
- DNS Server
- LAMP Server
- OpenSSH Server
BasicUbuntuServerに何が入っているのか分からないのでひとまずこれで。
ネットインスコだったけど念のため
sudo apt-get update / sudo apt-get upgrade
を叩いた。
ついでにGUI環境もということでLXDEを。
sudo apt-get install lxde
鯖構築終わったら、lxdeを起動時に立ち上げないようにすることを忘れずに。
次回は vsftpd apache2 Python FireWall などの設定構築。
December 21, 2009
CSVモジュールでのエラー解決!
この記事でとっても悩んでいたのですが、ついったーでこの問題を解決していただきました。
以下がやりとりです。
Dirにあるファイルのプライオリティが高いみたいです。
こーいう問題にぶち当たる辺り、ちゃんとどういう動作をしているのか意識しながらやらないといけないのかな。触り始めたばかり、なんて言って逃げたくはないので頑張ろう。
以下がやりとりです。
Dirにあるファイルのプライオリティが高いみたいです。
こーいう問題にぶち当たる辺り、ちゃんとどういう動作をしているのか意識しながらやらないといけないのかな。触り始めたばかり、なんて言って逃げたくはないので頑張ろう。
December 19, 2009
DoCoMoでスマフォ生活
DoCoMoのサイトで見て、てきとーに計算した。
タイプSS バリュー(ひとりでも割50) 934円(税込980円)/月
mopera U(Uライトプラン) 300円(税込315円)/月
Biz・ホーダイ ダブル 5,700円(税込5,985円)/月
計 6,916円(税込7,280円)/月
うむ。結構良い値段。これに端末代をいくらかずつ払うとなると8000~9000円になるだろう。
芋場とauを解約すれば何とかなるなぁ。
追記
以下サイトが詳しくかいてあった。
http://www40.atwiki.jp/ht03a2ch/
タイプSS バリュー(ひとりでも割50) 934円(税込980円)/月
mopera U(Uライトプラン) 300円(税込315円)/月
Biz・ホーダイ ダブル 5,700円(税込5,985円)/月
計 6,916円(税込7,280円)/月
うむ。結構良い値段。これに端末代をいくらかずつ払うとなると8000~9000円になるだろう。
芋場とauを解約すれば何とかなるなぁ。
追記
以下サイトが詳しくかいてあった。
http://www40.atwiki.jp/ht03a2ch/
December 16, 2009
December 14, 2009
自鯖の中身を引越した。
以前のケースがMini-ITX用で鯖に不向きだったのでATXケースに換装。
POW:100W(AC)
HDD:160GB(HGST)
これに、爆熱チップセットのヒートシンクをHV-3747BL、サウスブリッジのチップセットにYH-3020Aをつけた。あとは8センチファンを2重にした糸で固定して完成(笑)。
ケースはDPC-2768BKを3980円で入手。
久しぶりのアキバでものすごく疲れたけど、楽しめたので良しとしよう。
まぁこんな感じに。
構成は
MB:D945GCLF2D
RAM:2GBPOW:100W(AC)
HDD:160GB(HGST)
これに、爆熱チップセットのヒートシンクをHV-3747BL、サウスブリッジのチップセットにYH-3020Aをつけた。あとは8センチファンを2重にした糸で固定して完成(笑)。
ケースはDPC-2768BKを3980円で入手。
久しぶりのアキバでものすごく疲れたけど、楽しめたので良しとしよう。
December 12, 2009
csvモジュールが・・・・
下のようなコードを実行すると、「AttributeError: 'module' object has no attribute 'reader'」っと出るんですよね・・・。
追記:
問題解決しました。 →記事
import csv csvfile = 'a.csv' reader = csv.reader(open(csvfile, 'r')) for row in reader: print row謎すぎる。解決策をぼちぼち調べないと・・・
追記:
問題解決しました。 →記事
PythonのcsvモジュールがUTF-16に対応していない件について
December 11, 2009
December 10, 2009
CSV2SQLなるものを見つけた。
題通りなんか見つけた。とりあえず参考にしながら自分でもCSV2SQL for Pythonを作ってみようと思う。
import sqlite3 import csv # SQLite内のデータはutf-8を想定 def sqlite2csv(db_name, table_name, out_filename): dbh = sqlite3.connect(db_name) writer = csv.writer(file(out_filename, 'w')) for row in dbh.execute('SELECT * FROM %(table_name)s' % locals()): writer.writerow([col.encode('utf-8') if isinstance(col, unicode) else col for col in row]) dbh.close() # csvのセパレータはカンマを想定 def csv2sqlite(db_name, table_name, in_filename): dbh = sqlite3.connect(db_name) reader = csv.reader(open("import.csv", "rb")) for row in reader: ph = "?," * (len(row) - 1) + "?" dbh.execute("INSERT INTO %(table_name)s VALUES(%(ph)s)" % locals(), tuple(row)) dbh.commit() dbh.close()引用:http://taichino.com/engineer-life/database/1016
December 08, 2009
カラム名でDBからデータを取得する方法
row_factory = sqlite3.Rowを利用する。
ex)
ex)
db = sqlite3.connect('xxx', isolation_level=None) sql = u”select * from hoge” db.row_factory = sqlite3.Row c = db.execute(sql) for row in c: print row["カラム名を指定"]
Pythonでの関数定義
def hoge():
処理内容 : インデントすること。
ex)
最初は何処まで定義されるのか分からなかったが、インデントされたか否かで判定してるっぽいです。
コードが綺麗に見えると言われる理由の一つなのかな?
処理内容 : インデントすること。
ex)
def hoge(): print 'Hello Python' hoge()
最初は何処まで定義されるのか分からなかったが、インデントされたか否かで判定してるっぽいです。
コードが綺麗に見えると言われる理由の一つなのかな?
Pythonで特定の行を読み込ませる
readlines()[n]
nに読み込みたい行を入れるだけ。
ex)
test1
test2
test3
nに読み込みたい行を入れるだけ。
ex)
f = ‘fopeninout.txt’ fp = open(f, ‘r’) Str = fp.readlines()[1] fp.close print Strfopeninout.txt
test1
test2
test3
Subscribe to:
Posts (Atom)