Archive for 10月, 2008
MySQLで先月末日の日付を取得する
select last_day(date_add(now(), interval -1 month))
まぁなんてことない手法なのですが、なんとなく便利だったので記録。「今日の一ヶ月前の月の末日」っていう意味ですね。
MySQLでトリガーを使う
MySQLも5.xからトリガーが使えるようになりました。SQL SERVERやPostgreSQLでストアド、トリガーを多用していたハセテツとしては大変ありがたいわけです。
delimiter //
これで書き始めます。デリミタは「;」ですが、トリガーの記述の中でもセミコロンを使うために一時的に「デリミタはスラスラだよ」と宣言しておきます。べつにスラスラじゃなくてもOKでしょう。
create trigger トリガー名称
before insert on 対象テーブル for each row begin
declare target_id tinyint;
select hoge_id into target_id from マスタデータテーブル where hoge_code = new.hoge_code;
set new.log_hoge_id = target_id;
end; //
まぁなんのこっちゃわからんサンプルですが、declareで変数宣言、select intoで変数へ代入、setで値を設定しています。この例は「ログデータテーブルに値を突っ込む前にマスタテーブルから値を引っ張ってきておいて、それをinsertします」っていう感じです。
終わったら
delimiter ;
でデリミタを元に戻すのをお忘れなく。
テーブル例も書いたほうがいいんだろうけど、申し訳ないけど割愛。特定テーブルの値が更新されたら更新ログを残す、なんてことも「after update」でできるので、フロントエンド側のコードをごちゃごちゃさせずに複雑な処理がさせられると思います。
モリー先生との火曜日
久々に本を読んで泣きました。電車の中でしたが、涙が頬を伝いました。人生の意義、愛のすばらしさを考えさせられます。
まだまだ僕のようなひよっ子には大事なものに気付くことができません。ただ、感じることからは逃げずに一生懸命生きていこうと痛切に感じました。
LinuxでSSHの接続ホストを制限する
rootじゃ接続できないようにしてあるし、鍵方式での接続しか許可していないので不正ログインされる危険性はとても低いと思っているのですが、それでもせっせとログインしようとしてくる怪しげなプログラム君たちがいます。
ログがひたすら増えるだけでも若干気分が悪いので、SSHで接続できるホストをごりっと制限してしまいました。e-mobile等で外からメンテナンスすることができなくなってしまうので不便ではありますが、まぁレアケースだし、そもそもe-mobile持ってないので気にしないことにしましょう。
/etc/hosts.allow
に接続できるホストのIPアドレスを記載します。ここはホスト名でもいいみたいなんですが、IPにしておきました。
sshd:xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
複数ある場合は半角スペースで区切るようです。これで、上記IPアドレスからの接続は許可されます。次は禁止ホストの設定です。
/etc/hosts.deny
に
sshd: ALL
と記述します。
「hosts.allow」→「hosts.deny」の順で解釈するそうです。「hosts.allow」に当該IPアドレスがあればそのまま接続を許可。「hosts.allow」にないIPは次に「hosts.deny」を参照し、そっちにあったら禁止。どっちにもなければ許可になります。
SCP使えばFTPもいらないし、MySQL等もローカル接続のみを許可にして、外部からつなぎたい場合はSSHでポートフォワードすればOK。無駄なポートは空けないことが重要かと。
Linuxで時刻を設定する(ntpdは使わない)
社内にあるCentOSはntpで時刻同期ができません。「そんなntpdサーバいねーよ」と怒られてしまいます。うーん、自宅では見えてるサーバなんだけどなぁ。。。ポート閉じられてて外に出れないのかなぁ。(←確認してない)
ということで、地道に手動で設定。なんというアナログ。
date mmddhhmmyyyy
めんどくさくなったら調べよう。それまで放置しよう。
月2桁、日2桁、24時で2桁、分2桁、年4桁、ですね。