「Illegal octal digit(8 進数で 8 か 9 を使いました。)」というエラーが出るときはどんなとき?

初めて見たエラーだったので、実験して遊びました。
※遊び&実験なので、そんなこと普通はしないだろう、的なことをしています。そこら辺は突っ込まないでください。

[abyss@abyss web1]$ perl 
$a = "08";
$b = 2;
print $a+$b;
print "\n";
10
[abyss@abyss web1]$ perl
$a = "08";
$b = 2;
print $a.$b;
print "\n";
082
[abyss@abyss web1]$ perl
$a = 08;
$b =2;
$c = $a+$b;
print $c;
print "\n";
Illegal octal digit '8' at - line 1, at end of line
Execution of - aborted due to compilation errors.

↑これらの結果から分かることは、どうも、08を10進数の数字として四則演算したい時は、08を""で囲まないとダメみたい。

[abyss@abyss web1]$ perl
$a = 008;
int ($a);
print $a."\n";
Illegal octal digit '8' at - line 1, at end of line
Execution of - aborted due to compilation errors.
[abyss@abyss web1]$ perl
$a = 08;
int ($a);
print $a;
print "\n";
Illegal octal digit '8' at - line 1, at end of line
Execution of - aborted due to compilation errors.

↑そりゃそうですよね。int関数の挙動を考えると。

[abyss@abyss web1]$ perl
$a = 01;
$b = 2;
$c = $a+$b;
print $c;
print "\n";
3D
[abyss@abyss web1]$ perl
$a = 02;
$b = 2;
$c = $a+$b;
print $c;
print "\n";
4D

んふふ。おもしろいね。
また時間ができたら続きをします。


というか、久しぶりの更新がこんな変な内容ですみません。。。
人事異動になっちゃって、前に比べたら全然勉強できてないけどこれからもほそぼそと続けて行こうと思います。
やっぱり、軽くエンジニアの知識はあった方がいろいろと仕事しやすいので。

ディレクトリをリポジトリ管理下にしない

(1)どこが変更になったかまず確認しましょう

shell> svn st


(2)リポジトリ管理下に入れないようにします

shell> svn pe svn:ignore log/access/

(3)エディタが起動するので、*を記入し、保存して閉じる。(「*」だけをいれたらいいですよ。)
(4)もう一度下記をすると、?からMに変わっているはずです。

shell> svn st

これで、svn ciしても、log/access/配下はリポジトリ管理にはなりません。

一つのpostfixで複数のドメインのメールを処理するときの設定

postfixの設定が未だに良く分からなかったので、先輩に聞きました。ざっと理解したことをメモします。

前提知識
■/etc/postfix/virtual
一つのpostfixで複数のドメインのメールを受け取るときに使用する。ドメインごとに、どのユーザーで処理するか記述する。
■/etc/aliases
ユーザーごとに処理を記述する。
設定概要
(1)/etc/postfix/virtualにどのドメインできたらどのユーザーとして処理するか書き込む
(2)/etc/aliasesに、各ユーザーはどんな処理をするか書き込む
(3)aliasesの反映とpostfixの再起動
設定詳細

(1)/etc/postfix/virtualに以下を書き込みましょう。書き込むところはファイルの一番下で大丈夫です。ファイルはvimで開いて大丈夫ですよ。

#midori-mobile.jp
midori-mobile.jp anything
@midori-mobile.jp midori_catch_all

/etc/postfix/virtualは、メールをpostfixが受け取ったときに、自分が配信を担当しているドメインか確認するファイルです。送られてきたメールのドメインが、ここに書いてあるドメインと一致すれば、postfixは送られてきたメールを自分自身に向けて再度転送します。


上記の例の場合、midori-midori.jpというドメインでメールが送られてきたら、自分自身のmidori_catch_allに向けて送られてきたメールを再送信します。


(2)/etc/aliasesに以下を書き込みましょう。書き込むところはファイルの一番下で大丈夫です。ファイルはvimで開いて大丈夫ですよ。

#midori
midori_catch_all: "|touch /tmp/midori.html"

メールが自分自身に再度転送されたら、postfixは/etc/aliasesを見て、ここにmidori_catch_all(メールの送り先)があれば""で書かれた部分の処理が回ります。


上記の例の場合、midori_catch_allに送られてきたメールは、""に書かれている処理を施します。この場合、/tmpの配下にmidori.htmlができます。


(3)変更したaliasesの反映とpostfixの再起動を行う(共に管理者権限で)

■aliasesの反映
shell> newaliases
■postfixの再起動
shell> service postfix restart

(参考)実際にメールを受け取れているかログベースで見てみましょう。

tail -f /var/log/ServerLogs/maillog

上記コマンドを実行して、メーラーから設定したドメインにメールを送ってみましょう。

scp〜ファイルやディレクトリを送る・とってくる〜

(1)例えば、あるリモートホスト(自分の使っている端末以外ね。サーバーとか。)から自分の使っているPCにファイルやディレクトリをコピーして持ってきたいとき。

■ファイルの場合
scp midori@tttest.jp:/home/midori/log/web1/test.html ~/Desktop/
■ディレクトリの場合(※オプションで-rをつけます)
scp -r midori@tttest.jp:/home/midori/log/web1 ~/Desktop/.

(2)例えば、自分の使っているPCからファイルやディレクトリーをリモートホストに送りたいとき

■ファイルの場合
scp test.html ユーザー名@119.15.XX.XXX:~/
■ディレクトリの場合(※オプションで-rをつけます)
scp -r study midori@192.XX.XX.XX:/home/midori

まとめると↓

※ディレクトリのときは、オプションの-rを付ける
■とってきたいとき
scp リモートホストのユーザー名@リモートホスト名:取ってきたいファイルやディレクトリのパス 保存したい場所のパス
■送りたいたいとき
scp 送りたいファイルやディレクトリのパス リモートホストのユーザー名@リモートホスト名:送り先の保存したいパス

scpって、取ってくることもできるんだね。知らなかった。やはり先輩は偉大です。

ご挨拶/本年もありがとうございました。

早いものでもう、1年過ぎましたね。今年もありがとうございました。
ときどきしか更新していないのに訪れてくださり、ありがとうございます。
来年は、もう少し更新頻度を多くしたいと思います。


来年が、みなさまにとってとてもよい年になりますように!
そして、来年もよろしくお願い致します◎


Thank you for everything, messages, track backs, and many advices, all you have done for me throughout the year.
Despite i have seldom write this blog, you have visited. And this has made me happy.
I'd really appreciate your support and interest in my blog.
In the year 2011, i want to write more than in the year 2010.


I hope the year 2011 will be great for you and look forward to continuing our relationship in the new year!
thank you!

unlink〜ワイルドカードを使って複数ファイルを消す

どーも、ワイルドカード「*」で複数ファイルが消えないなー、と思っていたら、文法が間違っていた!なんてことでしょう。

◎正しい書き方
unlink <~/*.tsv>;

私はこんな書き方していました。うっかり。

◎間違った書き方
unlink "~/*.tsv";

そうなんです。ダブルクォートではなく、<>なんですね〜。