Ubuntu で、ネットワークを手動で(設定ファイルで)設定する方法

Ubuntu で、GUI に頼らずネットワークを無理やり手動で、設定ファイルによって設定するには、/etc/network/interfaces ファイルをいじる。サーバに 2枚 eth0、eth1 という名前のイーサネットカードがくっついていて(eth0 とか eth1 という名前は ifconfig -a コマンドで確認する)、eth0 にスタティックな IP(192.168.0.1 など)、eth1 に DHCP による IP アドレスを割り当てるには、次のようにする。 # vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
auto eth1 iface eth0 inet dhcp
こうすると半ば強制的に設定できる。/etc/network/interfaces ファイルを変更したら以下のコマンドを実行しないと設定は有効にならない。 # /etc/inet.d/networking restart
続きを読む

Linux で、あるドメインの MX レコードを調べる方法

あるドメインで運用されているトップのメールサーバ(ルートのメールサーバ、つまり外部と通信する大元のメールサーバのこと)を調べるには、次のようにコマンドを打てばよい。 nslookup -type=mx amazonaws.com 上の例では amazonaws.com のトップのメールサーバ、つまり Amazon Web Services(AWS)の MX レコードを調べている。preference = 10 などのフィールドは、そのサーバの(通信の)優先度を表す。値が等しい場合は優先度は同じ、値が大きくなるほど優先度は低くなる。
続きを読む

bash で、シェルスクリプトからメールを送る方法

bash では、様々なコマンドを`(バッククオーテーション)で囲むと、そのコマンドを変数に入れたりすることができる。つまり、何か処理を始めたり終わったことをメールで通知する場合は次のようにする。 #!/bin/bash echo 'Subject: Started: your_program' > temp.txt echo 'To: yourname@yourdomain.com' >> temp.txt echo 'Started.' >> temp.txt cat temp.txt | `sendmail -t -i` rm temp.txt your_program (←ここに処理したいプログラム名(時間がかかるもの)を書く) echo 'Subject: Completed: your_program' > temp.txt echo 'To: yourname@yourdomain.com' >> temp.txt echo 'Completed.' >> temp.txt cat temp.txt | `sendmail -t -i` rm temp.txt 大事なのは cat temp.txt | `sendmail -t -i`
続きを読む

Linux で、メモリのサイズを調べる方法

次のように、free、cat /proc/meminfo 等、いろいろな方法がある(以下は、Amazon EC2 スモールインスタンスの例)。 # free
         total       used       free     shared    buffers     cached
Mem: 1747764 1733596 14168 0 109416 1162984 -/+ buffers/cache: 461196 1286568 Swap: 917496 128 917368
# cat /proc/meminfo MemTotal: 1747764 kB MemFree: 18916 kB Buffers: 109608 kB Cached: 1157404 kB SwapCached: 0 kB Active: 1242560 kB Inactive: 406980 kB HighTotal: 1003528 kB HighFree: 5156 kB LowTotal: 744236 kB LowFree: 13760 kB SwapTotal: 917496 kB SwapFree: 917368 kB Dirty: 116 kB Writeback: 0 kB AnonPages: 382528 kB Mapped: 62420 kB Slab: 39188 kB SReclaimable: 24684 kB SUnreclaim: 14504 kB
続きを読む

Perl で、1GB のデータ(テキストファイル)を作成する方法

次のコードを makefile.pl などというファイル名で保存して、chmod +x ./makefile.pl し、そして ./makefile.pl を実行すれば makefile.pl と同じディレクトリ上に sample.txt に1GiB (ギビバイト=2^30)ぴったりのデータ(「a」の文字で埋め尽くされた テキストファイル)が作成されていると思う。プログラム的には、例えば 1KiB のダミーデータを変数($data)に入れてそれを 1024 x 1024 回書き込んだ方が 1文字ずつ 2^30 回書き込むよりも速いと思うが、試してみたらバァッファオーバーフローしてるのか?うまくいかなかった。 ちなみに、2^30 = 1ギガバイト = 1,073,741,824 バイト = 1024 バイト x 1024 キロバイト x 1024 メガバイト #!/usr/bin/perl open(OUT, '>sample.txt'); for(my $i = 0; $i < 2^30; $i++) { print OUT 'a'; } close(OUT); 1; </code>
続きを読む

Amazon EC2 で、サーバ自身のグローバル IP アドレスを調べる方法

Amazon EC2 は何もしないと DHCP でグローバル IP アドレスが割り当てられる。これはサーバを立ち上げるときには大変困る。EC2 でサーバを立ち上げた後、アプリから割り振られた IP アドレスを知るにはどうしたらいいのだろう?ひとつには、ec2-describe-instances で現在起動しているインスタンスの一覧を出して調べていく…という方法があるが、あまりスマートではない。というわけで、次のようにするとよいと思う。 curl http://169.254.169.254/2008-02-01/meta-data/public-ipv4 この例のように Amazon EC2 では、http://169.254.169.254/2008-02-01/meta-data/パラメータ という URL で、サーバ内部から curl を使って調べることができるようだ。
続きを読む

Amazon EC2 で、インスタンスを終了する

  1. イメージ登録を抹消(自分のマシンから)
    • # ec2-deregister ami-5bae4b32
      IMAGE ami-5bae4b32
  2. イメージを S3 から削除(EC2 のインスタンスから)
    • # ec2-delete-bundle -b <your-s3-bucket> -p image -a <aws-access-key-id> -s <aws-secret-access-key>
  3. インタンスを停止
    • # ec2-terminate-instances i-10a64379
      (例)INSTANCE i-10a64379 running shutting-down

      または、
    • # shutdown –h now
※イメージを S3 に保存する前にインスタンスを停止するとすべての変更が失われるので注意。不意に EC2 のインスタンスを落としてもデータだけは失いたくない場合は EBS を利用する(その理由ために EBS が存在する)。
続きを読む

Amazon EC2 で、イメージを作成する

  1. インスタンスの /mnt ディレクトリに鍵ペアをアップロード
    • # scp -i id_rsa-gsg-keypair pk-xxxxx.pem cert-xxxxx.pem root@domU-12-34-31-00-00-05.usma1.compute.amazonaws.com:/mnt ←入力
  2. ボリュームをバンドル
    • # ec2-bundle-vol -d /mnt -k /mnt/pk-xxxxx.pem -c /mnt/cert-xxxxx.pem -u <your_EC2_user_id> -r i386 ←入力
      # ls –la /mnt/image.* (で確認)
  3. イメージ(AMI)を S3 にアップロード
    • # ec2-upload-bundle -b <your-s3-bucket> -m /mnt/image.manifest.xml -a <aws-access-key-id> -s <aws-secret-access-key> ←入力
  4. AMI を登録
    • # ec2-register /mnt/image.manifest.xml ←入力
      IMAGE ami-5bae4b32 ←これは結果出力
  5. 登録した AMI をインタンス化
続きを読む

Amazon EC2 を使う(インスタンス実行編)

  1. インスタンス化するイメージ(AMI)を検索
    (以下、自分のイメージ self と、amzon が用意しているイメージを検索)
    • # ec2-describe-images -o self -o amazon
      IMAGE <span style="color: #800000;">ami-5bae4b32 ec2-public-images/getting-started.manifest.xml amazon available public
      IMAGE ami-68ae4b01 ec2-public-images/fedora-core4-base.manifest.xml amazon available public
      IMAGE ami-69ae4b00 ec2-public-images/fedora-core4-apache-mysql.manifest.xml amazon available public
      IMAGE ami-6dae4b04 ec2-public-images/fedora-core4-apache.manifest.xml amazon available public
      IMAGE ami-6fae4b06 ec2-public-images/fedora-core4-mysql.manifest.xml amazon available public
      IMAGE ami-61a54028 <your-s3-bucket>/image.manifest.xml 495219933132 available private
続きを読む