の形で呼ぶ。
//
// anchor_idはフレームを使う場合最低限各フレームごとに設定。お互い他のフレームを書換えたときにへんな干渉をさけるため。
// その他ページの種別毎などで変えてもよいが、あまり小分けにするとcookieが増える。
// 同じanchor_idで保存されるcookieは1セットのみ。でも単独ページ表示のサイトなら概ねこれで充分。
anchor_id = "anc_main";
noanchor = false; // bodyにanchorをしかけたときなど場合によって一時無効にするためのフラグ。
// アンカーの記憶。
function anchor_save(object_id, page_id) {
if(noanchor) { anchor_erase(); return; }
get_scroll();
setcookie(anchor_id+"_pid", page_id, 0);
setcookie(anchor_id+"_st", scroll_top, 0);
setcookie(anchor_id+"_sl", scroll_left, 0);
if(object_id) {
object_top = scroll_top + get_object_top(object_id);
object_left = scroll_left + get_object_left(object_id);
setcookie(anchor_id+"_oid", object_id, 0);
setcookie(anchor_id+"_ot", object_top, 0);
setcookie(anchor_id+"_ol", object_left, 0);
} else {
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
}
// アンカーの適用。
function anchor_apply(page_id) {
if((saved_page_id = getcookie(anchor_id+"_pid")) && page_id != saved_page_id) { return; }
get_scroll();
if((anchor_st = getcookie(anchor_id+"_st")) != "" && (anchor_sl = getcookie(anchor_id+"_sl")) != "") {
anchor_st = parseInt(anchor_st);
anchor_sl = parseInt(anchor_sl);
} else {
anchor_st = scroll_top;
anchor_sl = scroll_left;
}
if((object_id = getcookie(anchor_id+"_oid"))
&& (anchor_ot = getcookie(anchor_id+"_ot")) != ""
&& (anchor_ol = getcookie(anchor_id+"_ol")) != "") {
offset_top = (scroll_top + get_object_top(object_id)) - parseInt(anchor_ot);
offset_left = (scroll_left + get_object_left(object_id)) - parseInt(anchor_ol);
} else {
offset_top = offset_left = 0;
}
window.scrollTo(anchor_sl + offset_left, anchor_st + offset_top);
}
// アンカー消去。あえてとっておく必要がなければanchor_apply()後すぐ消去が望ましい。
function anchor_erase() {
setcookie(anchor_id+"_pid", "", -1);
setcookie(anchor_id+"_st", "", -1);
setcookie(anchor_id+"_sl", "", -1);
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
//-->
倉金家ホームページ
趣味の部屋/サーバー構築メモ その4
|
|
2015年12月20日 |
2015年12月21日 更新 |
CentOS7ではなぜかmessagesログやsecureログに無用と思われるような多くのお知らせログが出力され、重要な内容を見落としてしまう可能性が高いように思われます。 そこでこれらの無用なログの出力を抑制し、ログを少しでもわかりやすくしてみます。 |
|
|
このCentOS7のサーバーは今のところふだん使いのパソコンを兼ねてバックアップサーバーとして使用している。 いまいちデスクトップ(GNOME3)が使いにくかったりわけのわからないアプリケーションエラーが起きたりで本サーバーとして使用するには不安だったが、OSのバージョンも7.2になってようやく少し安定してきたようだ。 でもコマンド等使いなれているということもあって本サーバーはまだしばらくこのままCentOS6で行こう。
ときにCentOS7ではまだサーバーとして本稼働していない段階なのにmessagesログ(/var/log/messages)には鬱陶しいくらいのログが書き出される。ほとんどどうでもいいこととか、あるいはわけのわからない内容が多い。これは何とかしたい。(ログはなるべくこまめに見てるんだわ。でもmessagesは多すぎてざっと流し見しかできていない。)
で、messagesログの調整。
|
systemdのログ
systemdからプロセスやらセッションが起動するたびにお知らせログが書き込まれる。 .... .... systemd: Starting Location Lookup Service... .... systemd: Started Location Lookup Service. .... .... systemd: Starting Session 3 of user .... .... systemd: Started Session 3 of user .... ....
デバッグしているわけではないのだからこんなのいらない。単なるお知らせは抑制。 /etc/systemd/system.conf....
[Manager] #LogLevel=info ↓(変更) LogLevel=notice ....
少し静かになった...。 |
|
gnome-sessionなどのmessagesログ
最も迷惑なのがgnome-sessionのログ。 単なるお知らせのほかに大半わけのわからないログで、しかもユーザが悪いわけではなく GNOMEのできが悪いくせにあまりに多くのログを吐く。多すぎて例をあげる気にもならない。 ついでに他にも細かいinfoを書き出すプロセスも多いので、この際まとめてmessagesログのログレベルを変えてしまおう。 …実をいうとgnome側でログレベルを変える方法がわからないのでした。/etc/rsyslog.conf.... #### RULES #### .... # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages ↓(変更) *.notice;mail.none;authpriv.none;cron.none /var/log/messages (*.warning; でもいいかもしれない。) ....
|
|
それでもしつこく出て来る目障りなログに関しては、 /etc/rsyslog.d に ignore.conf とでもいう名前のファイルをつくり、以下のように書き込む。 あるいは /etc/rsyslog.conf に直接書いてもいい。 /etc/rsyslog.d/ignore.conf# ある言葉が入っているログを無視する。 :msg, contains, "ignore keyword 1" stop :msg, contains, "ignore keyword 2" stop ....
ただしこの場合"ignore keyword"の選び方には注意が必要。本来出力すべきログを止めてしまわないように考慮するのはもちろん、特殊な文字や語句が入っているとエラーになるので、必ず systemctl restart rsyslog.service; systemctl status rsyslog.service; で確認しておく必要があります。
|
これでだいぶmessagesが読み易くなった。 ログがすっきりしたところで見ていたら、 .... systemd: Configuration file /usr/lib/systemd/system/auditd.service is marked world-inaccessible. This has no effect as configuration data is accessible via APIs without restrictions. Proceeding anyway. .... systemd: Configuration file /usr/lib/systemd/system/ebtables.service is marked executable. Please remove executable permission bits. Proceeding anyway. .... systemd: Configuration file /usr/lib/systemd/system/wpa_supplicant.service is marked executable. Please remove executable permission bits. Proceeding anyway.
などという注意ログをすぐに発見。今まで多量のログに埋もれて気がつかなかったらしい。 たぶんインストールパッケージ作成時のミスだな。さっそく直しておいた。無用なログ抑制の効果ありだな。 |
|
secureログ (2015.12.21 追記)
そういえば最近7.2にアップデートしたあたりからかと思うが、 secureログ( /var/log/secure)にも同様に polkitdのプロセスを認証したの解除したのといったような多くのログが書き出される。 .... polkitd[949]: Registered Authentication Agent for unix-process:.... .... polkitd[949]: Unregistered Authentication Agent for unix-process:....
sessionはともかく、いちいちprocessどうのこうのはまあ不要といえば不要なので secureログのログレベルも上げてみよう。
|
/etc/rsyslog.conf.... #### RULES #### .... # The authpriv file has restricted access. authpriv.* /var/log/secure ↓(変更) authpriv.notice /var/log/secure .... こちらもだいぶすっきりした。 |
|
しかしこれではいろんなとこから文句が出て、いずれ修正されるとは思うけどね。
|
|
|