サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
backslash.ddo.jp
大変ややこしい。radikoなんなん。先日導入したrec_radiko.shの処理内容をひとしべひとしべ追いかけると、radikoの放送を受信するまでに手数をかける必要がある情勢である。処理の流れを雑把に捉えると radikoのプレーヤ(player.swf)をダウンロード player.swfに潜むRadikoPlayer_keyImageを抽出 https://radiko.jp/v2/api/auth1_fmsへPOSTでアクセスしてauthtokenとKeyLength、KeyOffsetを取得 KeyLength、KeyOffsetを基にRadikoPlayer_keyImageからバイナリデータを取得しBASE64で符号化(PartialKey) authtokenとPartialKeyをリクエストヘッダに載せてhttps://radiko.jp/v2/api/auth2_fm
OS:Ubuntu 10.04.4 Server かねてよりradikoの放送を録音したいという欲望が渦巻いており、rtmpdumpがその希望に応えられるところまでは調べたものの、導入にちょっと躓くとすぐ投げちゃう性質が本領を発揮して計画が腐敗臭を帯びていた。誠に遺憾である。然し乍らついに本腰を入れて取り組み成し遂げたからここに記録しておくものである。 まずはrtmpdumpを準備する。libssl-devが要求されるので事前に導入しておく。 $ wget -c http://rtmpdump.mplayerhq.hu/download/rtmpdump-2.3.tgz $ tar zxvf rtmpdump-2.3.tgz $ cd rtmpdump-2.3/ $ sudo aptitude install libssl-dev $ make SYS=posix $ sudo make
という作業が離れたところで進行中であることを聞きつけた。感興をそそる。しかし端で会話を聞いているとx509の証明書かどうのとかGrant構文でREQUIRE節がこうのと云うことであり微塵も理解できない。人の会話までも暗号化とはSSL恐れ入った。流行に置き去りにされぬよう実際に設定しておく必要を強く感ずる。ひとまず MySQLサーバ(192.168.0.8) <---SSL接続--- MySQLクライアント(192.168.0.10) こういう目論見を立てて、まずはMySQLサーバのインストール。暗号化接続のサポートを有効にするには --with-ssl オプションをつけてのコンパイルが必需ということである。 $ wget -c http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.35.tar.gz/from/http://ftp.j
シェルスクリプトで繰り返し処理を行うとき必要になることが多いが、ググるさんにたずねてみても案外すぐに見つからないので記録しておくものである。1から100まで1ずつ増加させながら繰り返す場合はこんな感じ。 for i in `seq 1 1 100` do // do something done ワンライナーで書くならこうなる。 $ for i in `seq 1 1 100`; do // do something; done 1 2 (snip) 99 100 2ずつ増加させるなら`seq 1 2 100`にすれば良い。 なおwhile文でも同様のことはできるが長くなるし複雑で分かりにくい。 i=1 while [ $i -le 100 ]; do // do something i=`expr $i + 1` done ワンライナーだと見た目の複雑さがさらに増す。 $ i=1; w
この間、Apache が予期せず停止してしまった。するとものすごい勢いで元軍人の人からメール通知。Apacheがダウンしている、と。これは大変に便利な有人監視と言える。酷使してやろう、と企てていたところで件の軍人より Monit というものを教えてもらうに至った。曰く、指定したサービスを定期的に監視し、予期せずに停止した場合は自動的に再開してくれるという事である。なるほど確かに良さそうな雰囲気である。monit をソースからインストールする。 monit のソースを公式サイトからダウンロードして展開 $ wget -c http://mmonit.com/monit/dist/monit-5.0.3.tar.gz $ tar zxvf monit-5.0.3.tar.gz $ cd monit-5.0.3/ configure スクリプトを実行すると flex やら bison が足りない
Slow Read DoS attackという攻撃手法があることを知った。調べによると、サーバからのレスポンスをゆるゆると読み込むコネクションを多数張って長い間占拠し、まともにサービスを提供できるプロセスを素寒貧にしてやろうよという趣である。 緩慢にデータを読みこむ仕掛けはTCP/IPのウィンドウサイズを利用することで成すという。無闇矢鱈に小さいウィンドウサイズをサーバに告知することで、ちょっとずつしかデータを送れないように仕向けるというのである。 然るにサーバはデータをシュッと送り終えることができず、コネクションが長時間にわたってアクティブな状態になる。斯様なコネクションが多数派を気取ると果ては新規にサービスを受け付けられず、とうとうDoS攻撃が成り立つというわけである。如何にも狡猾である。 Slow Read DoS attackの実際はslowhttptestという強いやつをインスト
本当なら tcpdump を使わなくとも MySQL 側でクエリログを取る設定にすれば良い。けれどもすでに稼働中の MySQL サーバであるから、設定を投入して再起動というわけにいかない。少しでもサービスが停止するとオラーって怒鳴る人が発生するので退っ引きならない。 クエリはTCPパケットに搭載されて運ばれてくるので何とか tcpdump で覗き見ることができないか調べたところ、公式サイトに載っていた。やった。 Learn to use the tcpdump and strings utilities. In most cases, you can check whether MySQL data streams are unencrypted by issuing a command like the following: shell> tcpdump -l -i eth0 -w –
gpg コマンドで鍵ペアを作成する際に、長い乱数を生成する箇所がある。ここでいつも十分なエントロピーが足りないせいか、完了までにものすごい時間を要する。 $ gpg --gen-key (snip) 今から長い乱数を生成します。キーボードを打つとか、マウスを動かす とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で 乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。 .+++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++ 十分な長さの乱数が得られません。OSがもっと乱雑さを収集 できるよう、何かしてください! (あと284バイトいります) 何かしてください!とハッパをかけられても大変困る。掃除と
OS:Ubuntu Server 10.04.3 MySQL5.1系から5.5系へ乗り換えるにあたって、インストール時に今迄のやり方が通用しない箇所が幾つかあったので記録しておくものである。 $ wget -c http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.15.tar.gz/from/http://ftp.jaist.ac.jp/pub/mysql/ $ tar zxvf mysql-5.5.15.tar.gz $ cd mysql-5.5.15/ ソースからインストールする手順を確認すると概ね以下のような具合である。configureはなくなりcmakeというやつが登場している。cmakeとはmake システムよりもより高度なアプリケーションスイートである。らしい。 $ less INSTALL-SOURCE (snip)
OS:Ubuntu 10.04.3 LTS lessでソースコードを閲覧したときにvimみたくカラーで表示したいなと思い続けて3年くらい経た矢先、source-highlightの紹介記事を拝見して矢庭に導入した。便利さが並外れてる。ソースコードと人生に彩りを与えるやつだ。然し乍らアクセスログは変わらず淡白な色合いを創業以来守り続けていたのでえいもう許さんと思う。 まずsource-highlightのインストールと下準備をする。 $ sudo aptitude install source-highlight $ vi .bashrc export LESS='-R' export LESSOPEN='| /usr/share/source-highlight/src-hilite-lesspipe.sh %s' そうしたらsource-highlightのディレクトリへ降りていってac
いつの頃からか、wgetでファイルをダウンロードするときにリダイレクト先のファイル名を追っかけてくれなくなった。例えばこういう具合である。 $ wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.15.tar.gz/from/http://ftp.jaist.ac.jp/pub/mysql/ (snip) Location: http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.5/mysql-5.5.15.tar.gz [following] (snip) Saving to: `index.html' index.htmlは困った。已む無くmvでリネームしたけれども、いちいち面倒くさくてまったくやってられない。何故こんな変化が起こったのか調べてみると、cronとかからwg
client から web server へアクセスする下図のような環境を考える。web server へのアクセスの手段は二通りあって、一つは client からの直接アクセスである。もう一つは reverse proxy(192.168.226.15) を介してアクセスするものである。どちらの手段でアクセスされても、web server のアクセスログには client の IP アドレス(10.0.0.5)を記録したい、というのである。 +---------------------+ | client | | 10.0.0.5 | +--------+----------+-+ | | +-----------------+ | | reverse proxy | | | 192.168.226.15 | | +-----------------+ | | | +--------+-
いままでviですべての行を削除する際に 10000dd などとやっていた。大抵は1万行とか10万行とか大量に削除すれば全ての行を削除するに等しかったのであるが、どう足掻いてもぼっさくていけない。こういうことをするとプロのvi使いから人を殺すときにしかしない目で見られることになるので、もっとスマートな方法を教えてもらった。 :%d こうなる。%は全ての行が対象という意味で、dが削除である。あと、ある行からある行までを削除する、例えば2行目から10行目まで削除するのであれば :2,10d でよかった。 あとggで先頭行まで戻ってd押してShift+gでもいけることを教えてもらった。
Openssh for WindowsのWindows XPへのインストールに首尾よく成功したので気をよくして続けざまにWindows Vistaへインストールを試みたのであるが、 C:\Program Files\OpenSSH\bin>net start opensshd システム エラー 5 が発生しました。 アクセスが拒否されました。 とか表示されてまったく起動しない。どうなてんだ。コマンドプロンプトを管理者として実行して、同様にopensshdを開始しようとすると C:\Windows\system32>net start opensshd OpenSSH Server サービスを開始します........ OpenSSH Server サービスを開始できませんでした。 NET HELPMSG 3523 と入力すると、より詳しい説明が得られます。 起動しそうな雰囲気を醸し出してい
時々、tcpdumpで以ってHTTP通信のやりとりを調べたいと思うことがあるが、如何せん使用頻度が低いためオプションをすぐ忘れてしまい、都度、tcpdumpのオンラインマニュアルや使い方を手引きしてくれるサイトを見てコマンドを打ち込んでいる。これは大変に効率が悪いので気合を入れて覚えてしまうついでにここへメモとして記録しておこうとおもった。 % sudo tcpdump -s 1500 -nxX port 8080 8080ポートで待ち受けているウェブサーバとやりとりする通信をダンプしたかったので上記のようなオプションにした。-s の値は考慮の余地があると思う。オプションの意味はオンラインマニュアルによるとそれぞれ -s デフォルトの68バイト(SunOSのNITでは最小は実際には96バイ ト)に代わってsnaplenバイトをおのおののパケットから取り出し利用 する。IP,ICMP,T
この間、多数のテーブルを持つデータベースのダンプファイル生成に失敗しているサーバを発見した。ダンプファイルの生成にはmysqldumpコマンドを用いているのであるが、 mysqldump: Got error: 23: Out of resources when opening file './***/***.MYD' (Errcode: 24) when using LOCK TABLES という具合にエラーメッセージを発して機嫌を損ねるのでどうもいけない。メッセージの内容もいまいちピンと来ないため途方に暮れながらGoogleで調べるとどうもテーブルの数が多すぎるのが怪しからん様子であることが分かった。このままではどうにも立ち行かないので解決策を探ると、 open_files_limit の値を増やせばよいということである。open_files_limit の値を調べると mysql>
sshdの自動再起動をinittabに任せる試みは失敗におわった。 http://backslash.ddo.jp/wordpress/index.php/archives/39 その後、crontabを使って毎分sshdを起動するとかいう方法も思いついたがまったくこれはスマートじゃない。ひどい。そうこうしているうちにdaemontoolsを使っては如何かという情報をキャッチいたしましたので早速daemontoolsを試してみることにする。 インストール手順は http://tools.qmail.jp/daemontools/install.html に書いてあるのでそれを参考にした。 まず、/packageディレクトリを作成してパーミッションを変更。スティッキービットも立てる。スティッキービット。こんなの初めて立てた。 $ sudo mkdir -p /package $ sudo c
そのような行為をチーミングとも云う模様である。Ubuntu 9.04 Server Edition ではすでに bonding モジュールが用意されているので modprobe コマンドから容易く導入できる。 $ uname -r 2.6.28-16-server $ locate bonding.ko /lib/modules/2.6.28-16-server/kernel/drivers/net/bonding/bonding.ko $ sudo modprobe bonding $ lsmod | grep bonding bonding 97024 0 カーネルの再コンパイルが必須だと考えていたのでまったく拍子抜けした。Ubuntu さんの用意周到さには本当に頭が上がらず、低姿勢を強いられるので生きていくのが辛い。Ubuntu さんをすごいすごいと無闇に持ち上げて衛星軌道へ乗せてし
随分以前からずっと気になっていたレインボーテーブルに漸く取り組んだ。 総当たり攻撃でハッシュ値から平文を得る場合、(1)平文を推測し、(2)そのハッシュ値を計算し、(3)解析したいハッシュ値と比較する、というプロセスを経る。平文の長さや構成する文字によっては大変な時間を必要とする。翻ってレインボーテーブルを使う方法では、予め解析用のデータを用意して臨む。そのため総当たり攻撃で言うところの(1)と(2)のプロセスが事実上、必要なくなる。(3)+αの処理で済むから解析に要する時間が劇的に短くなる、という仕組みである。忙しいビジネスパーソンにマッチするソリューションと言える。 しかしながら、考え得るあらゆる文字列の組み合わせとそのハッシュ値のデータは一般的に夥しい数になる。例えば 8 文字の小文字アルファベットの文字列だけで考えても、組み合わせの数は 26 の 8 乗すなわち 208827064
ホーム > linux, プログラム > PHPでmemory_limitを0に設定してPHPスクリプトを動作しないようにしたかった php.ini や .htaccess で memory_limit 0 などと設定すればスクリプトがまったくメモリを確保できなくなってすべてのPHPスクリプトが動かなくなるように思っていた。のに実際は思惑と異なり Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 198529 bytes) in /home/guro/public_html/test/a.php on line 8 のように最低でも 262144 バイトのメモリが確保されてしまう。なぜこういうことになるのかたいへん気になるので grep コマンドでPHPのソースコードを舐めるように検索
% find . -type f ./human_papilloma.flv ./tmp.sh ./barbut findで検索したファイルに対してfileコマンドとstatコマンドをいっぺんに実行する。 % find . -type f -exec file {} \; -exec echo '' \; -exec stat {} \; ./human_papilloma.flv: Macromedia Flash Video File: `./human_papilloma.flv' Size: 6252309 Blocks: 12240 IO Block: 4096 通常ファイル Device: 301h/769d Inode: 16695316 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ guro) Gid: ( 1000/ gu
ssh で Ubuntu マシンにログインすると毎回 Ubuntu 10.04 LTS Welcome to the Ubuntu Server! * Documentation: http://www.ubuntu.com/server/doc System information as of Sun Jul 11 11:27:43 JST 2010 System load: 0.09 Memory usage: 9% Processes: 118 Usage of /: 9.6% of 18.82GB Swap usage: 0% Users logged in: 1 Graph this data and manage this system at https://landscape.canonical.com/ Last login: Sun Jul 11 11:27:05 201
対応したいなあという心意気でありながらも、仕掛けが入り組んでいていまいち理解が及ばないために見ぬ振りをして過ごしてきた DNSSEC の導入であるが、去る2010年5月5日にすべてのルートサーバがテスト用の署名データ導入を完了、恙無く事が運べば7月には DNSSEC が本稼動する、というニュースを目にしたためにいよいよ重い腰を上げてすぐ下げた記録である。キャッシュサーバは bind で構築する。 $ wget -c http://ftp.isc.org/isc/bind9/9.7.0-P2/bind-9.7.0-P2.tar.gz $ tar zxvf bind-9.7.0-P2.tar.gz $ cd bind-9.7.0-P2/ DNSSEC をサポートするには configure オプションに with-openssl が必須であるというから付けた。あと環境変数 CFLAGS に D
L2スイッチのPort1を流れるトラフィックをグラフにしようとおもって、すっかり埃を被ったrrdtoolの記憶へアクセスしようとしたらまったくConnection Refusedである。あばっば。そういうわけでまた最初からオプションなどを調べなおしてようやくここまで漕ぎ着けた。いまでは以下のシェルスクリプトがcronで5分毎に静かに起動している。 #!/bin/sh ### データベースの作成 #rrdtool create port1.rrd \ #--step 300 \ #DS:in:COUNTER:600:U:U \ #DS:out:COUNTER:600:U:U \ #RRA:AVERAGE:0.5:1:600 \ #RRA:AVERAGE:0.5:6:700 \ #RRA:AVERAGE:0.5:24:775 \ #RRA:AVERAGE:0.5:288:797 \ #RRA:
Layer7レベルでの負荷分散ソリューションに取り組む姿勢を大いにアピールし、見る人に漠然とした不安を投げかけようという意気込みでUbuntuにUltraMonkey-L7をインストールする。まずは公式サイトからソースコードを取得する。 $ wget -c http://jaist.dl.sourceforge.jp/ultramonkey-l7/43238/ultramonkey-l7-2.1.3-0.tar.gz $ tar zxvf ultramonkey-l7-2.1.3-0.tar.gz $ cd ultramonkey-l7-2.1.3-0/ 例によって configure スクリプトを実行。しかしながらあれがないこれもないと大騒ぎとなる。無いものは適宜 aptitude でインストールしてゆく。まず、pkg-configがない。 $ ./configure (snip) **
次のページ
このページを最初にブックマークしてみませんか?
『http://backslash.ddo.jp/』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く