Author Archives: admin

Ubuntuに新しいハードディスクを追加する

※以下の記述は間違うと既存のデータを破壊します。

新しいハードディスクを接続して起動したところから。まずこのハードディスクを認識できているか確認。

disk-1が新しく追加したハードディスクになっていて/dev/sdbに接続されている。このディスクはプライマリーパーティション1個だけで、それをディスク全体で使うようにする。

fdiskのプロンプトで以下のようにして新しいパーティションをディスク全体で作成する。

次に実際にディスクに書き込む。

ちゃんとできたか確認

sdb1ができた。次にext3でフォーマットする。

ext2やext3ではデフォルトで5%のスーパーユーザのための領域が設けされているてsyslongdなどが、ディスクがいっぱいになっても動くようにしているらしい。このディスクはデータ用として使うのでこれを1%にする。

本当に5%か確認

1%にする。

1%になったか確認

マウントポイントさくせい。

試しにマウントしてファイルを作成してみる。その後アンマウント。

fstabに書いて起動時にマウントするようにする。
まずこのディスクのUUIDを調べる。

/etc/fstabに以下の行を加える。

fstabの情報からマウントして、色々してみる。

最後に再起動してマウントできているか確認する。

C++/CLIで「重複する型に適合しないメソッド宣言があります」と表示される

前方参照を使っていて、それが書かれているネームスペースがおかしいと起こる。

間違い例

正解例:

C#の正規表現の基本

PHPの大きい数の足し算引き算

PHPは64bitでないと大きい数が扱えないらしい。PearのBigIntegerを使えばできるらしいがインストールが面倒なので簡単な1を足したり引いたりする関数。

もっと簡単な方法があるような気もするガ。

STLSoftのscoped_handleが便利

C++の難しいことはよく分からないが、これは便利。リソースを例外安全に開放してくれる。STLSoftはヘッダオンリーなので、面倒なインストールが不要ですぐに使える。

watchコマンドをつかってディレクトリを監視

watchコマンドは引数で与えられたコマンドを定期的に実行して表示するだけのツール。

例えば空のディレクトリにファイルがつくられるのを見たいとき。lsを連打するのではなく。watch lsすれば監視することができる。

それ以外にも、以下のようにすればディスク容量を監視できる。

phpでcontent-typeを指定してバイナリファイルを送信

readfile()を使うのがいいらしい。

ここではコンテントタイプにapplication/x-xpinstallを指定している。Content-Dispositonなどをつければ保存させるときのファイル名をしていできる。ただしファイル名が日本語の場合はURLエンコードしないとならないと思う。

duplicityを使って暗号化バックアップ

duplicityは圧縮+暗号化+差分だけバックアップできるコマンドラインツール。しかし実際に使ってみるとバックアップサーバがリモートにあるときなんどもパスワードを聞かれてうざかったのでここではあらかじめパスワードなしでsshでバックアップサーバに接続できるようになっている(参照

ローカルの/var/www/html 以下を192.168.0.99のbackedユーザのbackディレクトリに圧縮して暗号化してバックアップ。

最初の実行ではフルバックアップされる。同じコマンドを行うと次からは差分だけがバックアップされる。

ローカルにバックアップするにはfileプロトコルで指定する。URLプロトコルを使っているほうはバックアップサーバになる。

元に戻すにはURLプロトコルのほうを先に持ってくる。

パスワードなしでリモートでコマンドを実行する

OpenSSHをパスワードなしで利用する。キーペアを使う。

接続元でキーペアを作る。

いろいろ聞かれるがすべてエンターを入力すると、~/.ssh以下にキーペアがつくられる。

秘密鍵id_rsaと公開鍵id_rsa.pubができた。この公開鍵をリモート(ここでは192.168.0.99)にコピーする。ここではリモートのユーザ名はローカルと同じ。

sshdのrsa鍵を置くファイルをsshdの設定を調べてそのファイルに追加する。ここではリモートはUbuntuでファイルは ~/.ssh/authrized_keys になっている。Ubuntuの場合はデフォルトでProtocol 2になっている。

rsaの公開鍵認証が有効になっているか確認する。

sshdサーバを再起動。

ローカルからパスワードなしで接続できるか確認する。