Chromeデータのお引っ越し
何が出来るの?
Chromeの再インストール時などに旧環境から新環境にデータを移行します。
この記事の前提とお引っ越し方針
- Windows環境の内容です。
-
Chromeのユーザープロファイルが複数存在する場合は、パス
%localappdata%\Google\Chrome\User Data\Default
の代わりに、ユーザー別のパス
%localappdata%\Google\Chrome\User Data\<profile_name>
に読み替える必要があります。
- 履歴やタブデータは移行します。
- キャッシュは移行しません。
やり方
-
旧環境のChromeデータをバックアップします。以下のフォルダをまるごとコピーすれば良いですが、キャッシュなども含まれているようなので事前にChromeからキャッシュをクリアしておいたほうがサイズを減らせるかもしれません。
%localappdata%\Google\Chrome
-
拡張機能は次のパス以下のサブフォルダ名でググるとChromeウェブストアのページがヒットします。
%localappdata%\Google\Chrome\User Data\Default\Extensions
-
必要なデータをリストアします。
-
履歴
次のフォルダ内の後述するファイルを旧環境のファイルで上書きコピーします。
%localappdata%\Google\Chrome\User Data\Default
コピーするファイルは以下のファイルです。
Current Session
Current Tabs
History
Last Session
Last Tabs
- 拡張機能
-
Session Buddy
次のフォルダ内のファイルを旧環境のファイルで上書きコピーします。
%localappdata%\Google\Chrome\User Data\Default\databases\chrome-extension_edacconmaakjimmfgnblocblbcdcpbko_0
-
-
補足事項
- ブックマークの移行方法は未調査。
- HistoryなどのファイルはSQLiteなのでDB Browser for SQLiteなどで中身を参照できます。
- Chromeのユーザーフォルダにある
*-journal
系のファイルは用途が不明。
参考
GitLab のバックアップファイルから Git リポジトリを取得する
何が出来るの?
GitLabでsudo gitlab-rake gitlab:backup:create
を実行すると、既定では/var/opt/gitlab/backups
に[TIMESTAMP]_gitlab_backup.tar
というファイル名でバックアップが作られます。このバックアップから直接Gitリポジトリを取得します。
やり方
コマンドだけ並べると次のとおりです。
$ ls -lh 合計 100K -rwxr-xr-x 1 takuyais takuyais 100K 10月 21 22:59 1445435571_gitlab_backup.tar $ mkdir 1445435571_gitlab_backup $ tar -xvf 1445435571_gitlab_backup.tar -C 1445435571_gitlab_backup repositories/ repositories/takuyais/ repositories/takuyais/your-awesome-project.bundle db/ db/database.sql.gz uploads/ backup_information.yml $ mkdir your-awesome-project.git $ tar -xf 1445435571_gitlab_backup/repositories/takuyais/your-awesome-project.bundle -C your-awesome-project.git/ $ ls -lh your-awesome-project.git/ 合計 28K -rw-r--r-- 1 takuyais takuyais 22 10月 21 22:50 HEAD -rw-r--r-- 1 takuyais takuyais 84 10月 21 22:50 config -rw-r--r-- 1 takuyais takuyais 73 10月 21 22:50 description lrwxrwxrwx 1 takuyais takuyais 47 10月 21 22:50 hooks -> /opt/gitlab/embedded/service/gitlab-shell/hooks drwxr-xr-x 2 takuyais takuyais 4.0K 10月 21 22:50 hooks.old.1445435429 drwxr-xr-x 2 takuyais takuyais 4.0K 10月 21 22:50 info drwxr-xr-x 7 takuyais takuyais 4.0K 10月 21 22:50 objects drwxr-xr-x 4 takuyais takuyais 4.0K 10月 21 22:50 refs $ git clone your-awesome-project.git/ your-awesome-project Cloning into 'your-awesome-project'... done. $ ls -lha your-awesome-project 合計 16K drwxr-xr-x 3 takuyais takuyais 4.0K 10月 21 23:08 . drwxr-xr-x 5 takuyais takuyais 4.0K 10月 21 23:08 .. drwxr-xr-x 8 takuyais takuyais 4.0K 10月 21 23:08 .git -rw-r--r-- 1 takuyais takuyais 4 10月 21 23:08 README.md
上記のコマンドでやっている事は次のとおりです。
- バックアップファイルのtarballを任意のディレクトリに展開します。
- 展開されたファイルの
repositories
フォルダ以下にGitリポジトリのファイルがあります。目的のリポジトリはrepositories/[namespace]/[project_path].bundle
というファイル名のtarballになっているため、これを任意のディレクトリに展開します。 - 展開されたリポジトリはベアリポジトリなので、任意のディレクトリにクローンします。
ポイントは、バックアップされたリポジトリのファイルは拡張子が.bundle
ですがGitのバンドルファイルではなくtarballであるという点です。(GitLabのバージョン8.0.5時点)
補足事項
- GitLab CEでリポジトリをバックアップするコマンドを定義しているのはココです。
- 理由は分かりませんが拡張子
.bundle
のファイル名でtarballを作成しています。 - この処理がバックアップコマンドの中で呼ばれます。
- 理由は分かりませんが拡張子
- プロジェクトのwikiはバンドルファイルで作成しています。
- リストア処理もGitリポジトリはtarball、wikiはバンドルファイルとして処理しています。
トラブルしゅーたーず #05に参加
概要
トラしゅに参加して来た。この勉強会には、休日にまでわざわざトラブルシュートをしに来るMが集まる。
今回はWeb系SI会社の社員として、顧客ECサイトで発生したトラブルに対応するという内容。詳しい概要はここ。私はチーム3に参加。
私のやったこと、できたこと
反省点
- 役割分担できず。初対面で各々のスキルを正確に判断することは無理なので、とりあえず以下ぐらいに分けるといいのかな?
- リーダー、ファシリテーター
- 書記(ホワイトボード、対応経過、報告書)
- 調査隊
- 私が中途半端に最初だけ仕切ってしまった。
- 手が空いてしまった人がいたかも。
- 全体での情報共有 → Google drive に気付き事項を書くドキュメントを作れば良いかも?
- 不具合発生の初期対応。サーバーとメンテナンスメッセージの準備は行ったが、切り替え方法がわからず結局切り替えできなかった。
- ホワイトボード、共用画面の活用
- 報告会より前に1次報告を忘れていた。
- 報告書に影響範囲を書いていなかった。
感じた点、学んだ点
トラブルシューティング
- 所属チームは優勝。しかしTV放映の高負荷を乗り切った実感がなかったため、もやっとする感じに。
- 過去からの贈り物はatコマンドだった。cronしか確認してないよ…。
- タイムテーブル作成とかどうだろう。
- 原因究明より、現状確認と正常な状態の把握&暫定対応が必要。
- 仮想マシンなら、不具合の起こったインスタンスのクローンを作成してそれをいじり回す、という手段はいいね。
山◯君オペ
- やったことは何かしらドキュメントに残す。
- daemonはstartする前にinit書くとか。
懇親会
- 本番機はもとより開発機でも、オペレーションのログは必ず取る。自分の身を守るため。ログが無ければ自分がやっていないことの証明ができない。
- putty、Tera Term はログ機能を設定する。
- sshコマンドなら、次のコマンドが活用できるかも。
- tee
- script
- 対象が Windows Server なら PowerShell 入れて、オペレーションはコマンドで行う。
- GUIでやるならムービー撮る。
- 世の中、パケットキャプチャしてフラグチェックしてる人がいる。
- ファイル内容を見る前にバイナリヘッダを確認する人がいる。
次回目標
- 役割分担決める。
- 情報共有。チームで取り組む。
- 初期対応。(メンテナンス画面、ユーザー報告)
報告書一覧
ML110 G7とPCだけでDebianインストール
概要
ディスプレイはないけれど、Debianをネットブートしてシリアルコンソールでインストールする。
使ったもの
- ML110 G7
- X61T : DHCPサーバー、TFTPサーバー用
- LANケーブル(クロス)
ネットブートファイルの取得
Debianのインストールマニュアルでネットワークブートの説明はここ。
netboot.tar.gz
のダウンロードここの"他のイメージ"から
netboot
ディレクトリを下ってnetboot.tar.gz
をダウンロードする。netboot.tar.gz
の解凍
debian-installer
ディレクトリが配置されているディレクトリがTFTPブートのルートディレクトリとなる。以下、このディレクトリをTFTPルートと呼び(TFTP_ROOT)
と表記する。
TFTPサーバーがwindowsの場合は以下を実施する。
(TFTP_ROOT)/debian-installer/i386/pxelinux.0
をTFTPルートにコピー。すでにファイルが存在する場合は上書き。- TFTPルートに
pxelinux.cfg
ディレクトリを作成。すでに同名のファイルが存在する場合は削除してから作成。 (TFTP_ROOT)/debian-installer/i386/boot-screens/syslinux.cfg
を(TFTP_ROOT)/pxelinux.cfg/
にコピーし、ファイル名をdefault
にリネーム。
ここまで。要はnetboot.tar.gz
に含まれるシンボリックリンクをリンク先の実体に置き換えている。(これに気付かずにしばらくハマった。)
ネットワークブートサーバーの設定
ネットワークブートサーバーにはTftpd32を使用。
DHCPサーバーとTFTPサーバーしか使わないので、他はオフに。
TFTPサーバーの設定
- "Base Directory"にTFTPルートを指定。
- "PXE Compatibitily"にチェック。(自動的に"Allow '\' As virtual root"がチェックされる。)
DHCPサーバーの設定
- "Boot File"に
/pxelinux.0
を指定。 - 他の項目は適当に設定。
- "Boot File"に
シリアルコンソール向けの設定
(TFTP_ROOT)/pxelinux.cfg/default
を編集。先頭のコメント行の下に以下の1行を追加。SERIAL 1
これはシリアルポートをコンソールに使うための設定(Ref.)。ML110 G7の仮想シリアルポートはCOM2のようなので1を設定する。
(TFTP_ROOT)/debian-installer/i386/boot-screens/txt.cfg
を編集。appendから始まる行を以下のように修正する。append vga=normal initrd=debian-installer/i386/initrd.gz -- quiet console=ttyS1
これはカーネルパラメータ(Ref.)の修正。
vga=normal
: 画面を80x25モードにする。数値の意味→VESA BIOS Extensionsconsole=ttyS1
: COM2をコンソールにする。
以下、使ってないけどメモ。
earlyprintk=serial
: カーネルログメッセージを表示する。デバッグ用なのでトラブルがなければ必要ないと思われる。
インストール
ルーターのDHCPサーバー機能を切る。
ブリッジ接続するため、DHCPサーバーが2台競合する。
X61Tで有線LANと無線LANのネットワークブリッジ接続を設定。
- Tftpd32を起動して、ML110とX61Tを繋ぐ。
ML110がDHCPでIPアドレスを取得したら、SSHコンソールに接続。puttyだと何故かブチブチ切れるので、cygwinのsshで接続した。
SSHコンソールから仮想シリアルコンソール起動。
- ML110の電源オン。
ML110の初期設定で勝手にネットワークブートするはず。ブートに成功するとこんな感じ。
Install
を選択するとDebianのインストーラが起動する。後はウィザードに従って進める。ネットワークブートはブート順の最後であるため、再インストールなどの場合はUSBキーボードを繋いでBeep音が鳴る直前から<F12>キーを連打する。(どこでBeep音が鳴るかは仮想シリアルコンソールを眺めて見極める。)
今回はSDカードも使って、パーティションをこんな感じに分けてみた。
- 仮想化ホストにするので
/var
を多めに。 - システムっぽい物はSDカードに。
- 仮想化ホストにするので
課題
現在インターネット回線がWiMAXであり、WiMAXルーターに有線LANが無いので以下の課題がある。
- ML110を直接WiMAXルーターに繋げない。適当なPCで有線LANと無線LANをブリッジ接続する必要があるので、インターネット接続が面倒。
- メインで使っているPCに有線LANが無いのでML110に接続するのが手間。ML110にはとりあえず無線LANルーターを接続しているが、メインPCから繋ぐ時はインターネット回線のWiMAXルーターと排他になる。
使いづらいので今後どうにかしたいな。
参考
ML110 G7に付いてるHPのiLOがイケてるのでメモ
HP iLO概要
iLOはリモート管理ツールで、Web管理画面またはSSHコンソールから各種リモート操作ができる。以下の機能は無料で利用可能。
- システム状態の確認
- 電源on/off
- 仮想シリアルコンソール
ML110 G7に電源とLAN1コネクタにLANを繋ぐと、サーバーを起動しなくてもiLOがDHCPでIPアドレスを取得しに行く。取得されたアドレスにブラウザかSSHで接続すると、それぞれの画面に繋がる。ID/Passwordは本体貼り付けのタグに記載有り。
SSHで繋ぐとこんな感じ。
SSHコンソールのコマンド抜粋
公式のマニュアルはここ
以下コマンド抜粋
電源の状態確認
power
または
show /system1 enabledstate
電源のon
power on
または
start /system1
電源のoff
power off
または
stop /system1
リセット
reset /system1
リブート
reset /system1 hard # コールドリブート reset /system1 soft # ウォームリブート
仮想シリアルコンソール
vsp
または
start /system1/oemhp_vsp1
マニュアルでは
oemhp vsp1
になっているが、上記が正しいもよう。仮想シリアルコンソールから見たPOSTメッセージはこんな感じ。