の形で呼ぶ。
//
// 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);
}
//-->
倉金家ホームページ
趣味の部屋/サーバー構築メモ その3
|
|
サーバーとしてはまだ何も構築できてはいませんが、今のサーバーが危ない状態であることを考え、まず真っ先にデータの移行(というよりバックアップ)を行います。
|
準備1:ユーザ、グループの確認と登録
新旧サーバーのユーザIDとグループIDの確認。 データといってもほとんどホームページのデータですから、自分で設定したユーザ以外関係するのは apache, mysql, webalizer などそれほど多くはありません。 幸いこれらのユーザIDとグループIDは同じでした。(他のシステムユーザもすべて一致していました。) ディストリビューションが変わると違うことがあるようで、その場合はちょっとめんどうです。
あとは、自分で設定したユーザーを新サーバーに登録。 同じユーザIDとグループIDを設定します。
|
準備2:NFSの設定
データのバックアップはNFSで繋いで行います。 旧サーバーの方はローカルネットワークからのNFS接続は許可してありますので、マウントポイントを作って繋げばいいだけです。 # mkdir /mnt/jiji.home # mount -t nfs 192.168.0.5:/home /mnt/jiji.home
|
準備3:バックアップスクリプト
基本的には/homeフォルダそっくりバックアップするなら # cd /mnt/jiji.home # find . -print | cpio -avdump /home
でいいのですが、そうするとマシン固有のユーザの設定データなども書き換えられてしまうため、ホームページデータなどの必要なものだけ選んでバックアップする必要があります。 以前に 「サーバー構築メモ その2/httpデータの移行」 で作ってその後も改良して使っているバックアップスクリプトがあるのでそれを使用。 全くのfind | cpio だと元のファイルを古いのに戻したときバックアップされないが、今度はそういう場合もバックアップされるようになっている。
|
スクリプトはまったくの参考に。 実行ファイルはこのホームページにはアップロードできないようになっているので .txtを付加している。 使うなら開いてコピー・ペーストして編集し .txt を削除して実行権限をつけてください。
|
バックアップ
バックアップスクリプトを走らせます。 ディスクのアクセスランプを見ていると、旧サーバーに比べてランプの点灯が少ないところ見るとディスクアクセスのスピードもだいぶ早くなっているみたいです。 けっこう莫大な資料や写真(およそ2万数千ファイル、20GBほど)あるので数十分かかったと思うが無事バックアップ完了。これで一安心。
|
|
|