« 編集作業の開始時刻と終了時刻の記載についての説明 | トップページ | Google+とPicasa ウェブ アルバムの利用方法と違い、及び本文中で使用するURLについての説明_2014年6月13日 »

2015年6月30日 (火)

2014年4月27日、OSの入れ替え時(Ubuntu 14.04)パソコンのデータ移行に伴うファイルのタイムスタンプの喪失について

** 2014年4月27日、OSの入れ替え時(Ubuntu 14.04)パソコンのデータ移行に伴うファイルのタイムスタンプの喪失について
パソコンの調子が悪かったということもあるのですが、ここ数年間続けていることとしてUbuntuの最新版をクリーンインストールしました。作業自体はおおむね順調に進んだのですが、一つ自分でも信じられないようなミスをして大事なデータを失ってしまいました。


本書つまり告訴状に添付するファイルを一つのディレクトリ(フォルダ)に保存していたのですが、それをバックアップの対象から外してしまっていたのです。


ファイルのタイムスタンプを保持するため今回のデータ移行にはtarコマンドを使用しました。複数のファイルやディレクトリをアーカイブという一つのファイルにまとめ、データーサイズを小さくするため圧縮を加えることの多いコマンドです。


説明のためにパソコンの画面の画像ファイルをTwitterにアップロードしました。これから主流にしたいと考えている説明の方法ですが、これも別に項目を作って細かいことを書いておきたいと思います。次の2行に対象を示します。


Twitter / s_hirono: 告訴状の参考資料2014-04-2907:48:51_S ... https://twitter.com/s_hirono/status/460913869146177537


告訴状の参考資料2014-04-2907:48:51_Screenshot.png pic.twitter.com/eigz4HYBgB


1行目はWebページとして、タイトル名とURLを取得したものです。通常はどのWebページでも持っている情報ですが、私はブラウザで対象のページをアクティブにした状態でキーボードから@を打つだけで、クリップボードにコピーされるように設定をしています。


このタイトルはTwitterの仕様による書式ですが、事実上ほとんど予告なく変更される可能性もあるかと思います。140文字より少なく余裕を持った文字数になるように自動的に文字数を切り詰めてくれています。


Twitterの場合は、ブログのようにタイトルと本文の区別がなく140時文字という制限があるのですが、その先頭から決まった文字数分をタイトルとして使い他と判別ができるようにされているようです。


2行目がTwitterの本文というか本体のコピペです。見づらかいもしれませんが一つの半角スペースでデータが区切られています。投稿自体はAPIを使った自作のプログラム(スクリプト)で行っています。


これも具体例を示したほうがわかりやすいかと思いますので、実際にコマンドラインから投稿を行ってみます。


<2014-04-29 火 10:09> [ ←これからの記述範囲の開始時刻]]


しばらく中断していたのですが開始時刻の記入を忘れていたので、再開した時点で記入しました。


Twitterで確認したところこの項目での最初のツイートは「7:29 - 2014年4月29日」になっていました。


パソコンというかUbuntu 14.04で問題があって中断をしていましたが、2時間近く時間をつぶしたことになりそうです。キーボードの設定が悪かったらしく、バックスラッシュが入力できず、円記号がキーコードとなっていたようです。


キーボードの設定の変更でしたがシステムの設定では見当たらず、結局は入力メソッドの設定で変更できることがわかったのですが、あちこち探しまわって辿り着きました。Linuxではこういう時間の潰し方もよくあることで、それだけ勉強になることも多いです。


先ほどの続きですが、写真付きでツイートするスクリプトの端末での実行をスクリーンショットしたものです。


Twitter / s_hirono: 告訴状の参考資料2014-04-2907:48:51_S ... https://twitter.com/s_hirono/status/460913869146177537


告訴状の参考資料2014-04-2910:04:05_Screenshot.png pic.twitter.com/KnknJMrrR8


ふだんはGUIからコマンドを読みだして使うことが多いのですが、端末ではこのように半角コロンのエスケープが必要になります。エスケープに使うのがバックスラッシュなのですが、これが円記号の文字コードになっていました。フォントによる見かけ上の違いもありますが、Windowsでは円記号。


告訴状の参考資料2014-04-2907:48:51_Screenshot.png pic.twitter.com/VUMiTsezbs のtarコマンドの説明に戻します。


8857 h > history-20140427.txt というのが最後のコマンドになっていますが、はじめの数値はコマンドの履歴番号です。hというコマンドを実行していますがこれはhistoryコマンドのエイリアス(別名定義)です。


コマンドの実行結果をリダイレクトでファイルに保存しています。Linuxではソフトというかアプリのインストールや設定もコマンドラインから行うことが多く、実行したコマンドを調べたり、コピペで再利用しています。


添付の資料ファイルはhirono_hideki.bitbucket.orgというディレクトリとして保存していましたが、gitというディレクトリの中に保存していました。gitの中には他のgitのリポジトリもディレクトリとして保存していました。


gitというのは分散型バージョン管理システムの一つです。Linuxの開発にも使われていると聞きます。「Git 分散型バージョン管理システム」と検索すれば情報が得られると思います。gitだけだと「馬鹿」と自動翻訳される例も何度か見ていますので情報は得られにくいかもしれません。


gitの理解にはリポジトリという概念が不可欠なのですが、情報倉庫というわかりやすい言葉で訳されている例も見かけています。gitはサーバ間のバックアップとしても使えるのですが、私はWeb上のサービスと連携しています。


そのWeb上のサービスのドメインと対応させたかたちでhirono_hideki.bitbucket.orgという名前を使っています。


次が具体的に利用しているサービスのURLです。めったに見かけることもないので、ほとんそ知られていないサービスではないかと思います。GitHubの方が有名で利用者も多いとは思います。


hirono_hideki / hirono_hideki.bitbucket.org — Bitbucket https://bitbucket.org/hirono_hideki/hirono_hideki.bitbucket.org


このリポジトリは次のWebサイトというかホームページにも対応しています。hirono_hideki.bitbucket.orgのディレクトリがWebサーバでのドキュメントルートにも対応しているのです。


告訴状2013(作成途中) http://hirono_hideki.bitbucket.org/


Webサーバのディレクトリでは基本的な設定として、ファイルの指定をしなかった場合、index.htmlという名前のファイルを指定したことになる、ということになっています。個人サーバを運用していたこともあるので私は知っていましたが、情報は余りみないので知らない人が多そうです。


自分自身が使っているパソコンのことをローカルとも呼びますが、Web上のサービスを含め、外部のパソコンもしくはコンピュータのことをリモートと呼びます。


gitではまずファイルを編集してもリポジトリには反映されません。編集した内容をリポジトリに反映させるにはコミットという作業を実行することになります。コミットした内容は履歴に保存され、さかのぼって変更を元に戻すこともできます。


ローカルのリポジトリの内容をリモートに反映し同期をはかるには「git push」というコマンドを実行します。事実上のアップロードに相当する操作です。


「git push」を実行することでローカルのリポジトリのの内容をリモートのリポジトリに反映できますが、リモートで変更された内容をローカルに取り込む形での同期は「git pull」を使います。ただ私自身はpullは使わないようにしてきました。タイムスタンプを保持するためです。


つまりローカルのファイルとリモートのリポジトリにあるファイルは内容は同じでもファイルスタンプを同期しない仕組みになっているようです。


なお、私自身最近になって知ったことですが、Linuxではファイルの作成日時に関する情報を保持しないようです。上書き保存をするとそれが新しい更新日時になってしまい、何時に作成されたファイルなのかは辿れないようです。


私自身以前はタイムスタンプに関して無頓着でした。そもそもコマンドで簡単に変更できるはずの情報なのでさほど意味がないとも考えていました。しかし、ファイルの作成日時がはっきりしないと、記憶が混乱するような経験もあり、不都合を感じるようになりました。


それに検察庁の信頼を根底から揺さぶったという前田恒彦検事のフロッピーデータの偽造問題もタイムスタンプの改竄が大問題になったように記憶しています。私自身、問題が報道されていた当時他のことに集中していたためか、未だに内容をよく知らない部分があります。


記憶違いで間違ったことを書いてもいけないので、次のWebページにざっと目を通しました。ほぼ記憶通りというか、だいたいのことは情報を得ていたという感じです。


大阪地検特捜部主任検事証拠改ざん事件 - Wikipedia http://bit.ly/PNnCq8


ただ時期についてはけっこうなズレがあったような気もしました。あるいは羽咋市に住んでいた頃で平成21年3月以前かとも考えていたからです。実際は、平成22年の9月頃に発覚した問題だったようです。


平成22年の9月といえば、ちょうどアオリイカ釣りのエギングを始めた頃で、よく釣れた時期でもありよく釣りに出かけていました。アオリイカは昼夜を問わず釣れるときは釣れるという釣りなのですが、当時は夜に電気のついた堤防で釣りをすることが多かったです。


やはり厚労省の村木厚子さんの事件、裁判に絡んだ問題でした。障害者郵便制度悪用事件とのことですが、わかりやすいニュース解説を見たようなこともあり、比較的単純な事件のようにも思えていました。


私の認識では部下が責任をなすりつけようとした巻き込み型という一面と、検察の見込みが外れた政財界の疑獄事件という一面があるように思われた事件、裁判でした。細かく言えば検察がいわゆるガセネタに踊らされたという可能性もあるのかもしれませんが、真相の見えづらい印象でした。


弘中惇一郎弁護士が活躍した事件、裁判としても印象に残るもので、いわゆる陸山会事件もそうではなかったかと記憶しています。ロス疑惑の時の報道では弁護士の名前も見た覚えもなく、村木さんの裁判で注目を集め、それでロス疑惑のことも含めて初めてしったのではないかと思っています。


弘中惇一郎弁護士については、佐藤博史弁護士、落合洋司弁護士(東京弁護士会)と同じ、広島県出身者ということでも注目して来ましたが、他の二人の弁護士にくらべれば、柔和な印象もありタイプも違うように見ています。


先ほどのWindowsの記事で初めて知り、とりわけ印象に残ったのは記事中の次の部分でした。落合洋司弁護士(東京弁護士会)に関する部分です。元検事長の弁護人になったようなことは本人のブログで知ってはいました。


(引用→)9月21日には、朝鮮総連本部ビル売却問題で逮捕された緒方重威の弁護団(落合洋司弁護士ら)が、逮捕された検事及び当時の東京地方検察庁特捜部副部長を、当該事件公判における偽証罪で、10月にも告発する旨を表明した


しばらく中断していました。時刻は4月30日17時59分を過ぎたところです。今日は、午前中に図書館に行き、思わぬ収穫があったのでそのことについて項目を作って記述をしたいと思います。


図書館に出かける前に、先日ご紹介したばかりのgitのWebサービスを、まるごと削除しました。次の使っていたサービスのURLも404のエラーが出て表示されなくなりました。


Oops, you've found a dead link — Bitbucket https://bitbucket.org/hirono_hideki/hirono_hideki.bitbucket.org


きっかけは次の新しく見つけたgitのWebサービスのページを読んでいて、やはりプログラムのソースコードの開発というサービスの趣旨を尊重したいと考えたからです。


Gitインストールガイド | Gitの使い方 https://codebreak.com/ja/contents/guide/#whats_git


以前もいろいろ調べソースコードに限るという趣旨を見つけることはなかったのですが、なんでもアップロードということになるとサービスに負担も掛かりご迷惑が及ぶかもしれないと考え、早い段階でやめておくことにしました。


ローカルリポジトリからのリモート設定は別のパソコンのリポジトリにに変更しました。次のようにやりました。


git remote set-url origin ssh://ログインユーザー名@リモートリポジトリのURLとパス・ファイル名


次のコマンドを実行することでgitのデフォルトのブランチであるmasterの内容がリモートに設定されたoriginに格納されるようです。


git push origin master


ブランチというのは派生バージョンを作ることができるようです。私自身gitを始めた頃は勉強も兼ねて色々やってみた経験はあるのですが、マスター以外のものを作る必要もないので、他にブランチを作るようなことはやっておりません。


リモート側のパソコンでは次のようにして中身のないリポジトリを作成しておきました。あえて一行のコマンドにしましたが、&&は、直前のコマンドが成功すれば次のコマンドを実行するというものです。同名のディレクトリがあればエラーが返るので処理は中断されるはずです。


mkdir kokuso2014.git && cd kokuso2014.git && git --bare init --shared


もう少し具体的に説明しましょう。添付のDVDにはgitのリポジトリをそのままコピーすることになると思いますので、ご自由に使っていただいてけっこうです。Windowsパソコンでもgitは使えると思いますが、UTF-8の文字コードとUNIX改行が問題になるかもしれません。


そういう場合は、別にブランチを作って文字コードと改行を一括変換されてはいかがかと思います。最近のWindowsパソコンのワープロソフトでは文字コードや改行が違っても普通に表示はできると思いますが、あとあと問題が起きてくる可能性はあるかと思います。


ローカルネットワーク内に192.168.11.3というパソコンがあるとして、それをリモートリポジトリとする仮定で説明します。先ほどの方法で、kokuso2014.git というディレクトリを作成しリモートリポジトリとして設定しました。


DVD一枚に余裕があれば、リモートリポジトリのファイルも合わせて添付しようかと思うので、そうすれば新規にリモートリポジトリを作る必要もなく、git cloneだけで事足りるかとも思いますが、ご説明のために具体例を示しておきます。


git remote set-url origin ssh://root@192.168.11.2/var/git-server/kokuso2014.git


私自身root権限でやったことはあまりないと思うのですが、独占的な管理としてご紹介してみました。mkdirで始まるリポジトリ作成の作業は、/var/git-serverのディレクトリで置こうなう必要があります。


gitはサーバとしても使えるはずですがサーバとしての設定が必要になるはずです。個人で使う分には必要ないので私は暗号化された通信手段でもあるsshを使っています。sshのサーバが動いている必要があるかと思いますが、UNIX環境では常識に近いかという前提です。


肝心なのはgit cloneです。これはリモートリポジトリの内容の複製になります。sshでログインできる環境であれば、ローカルネットワークにつながったどのパソコンからも実行できるはずだと思われます。100台、千台のパソコンからも同じ方法で実質的なダウンロードができるはず。


git clone ssh://root@192.168.11.2/var/git-server/kokuso2014.git kokuso2014_local_0001


あえてkokuso2014_local_0001という別名のディレクトリ名で保存しました。同名だと誤って上書き保存する場合や、ローカルネットワーク内の複数のパソコンで管理すると識別が困難になるだろうと予想したからです。私自身、個人以外の複数人ででサーバ管理をした経験はないですが。


gitは本来、共同作業としてのプログラム開発で使われているものかと思いますが、情報の共有、管理として様々な活用のできるツールではないかと私は考えています。よければ使ってもらいたいと思いますし、研究機関等への提供も惜しむものではありません。内容も同じです。


コミットした時点ということになるかと思いますが、作業過程での変遷もリビジョンというかたちで、必要があれば辿ることができるはずかと思います。私自身、プログラムの開発ではいので、状態を元に戻したり、確認するという必要は殆ど無いのですが、透明性は高くなるのあとは思っています。


この項目の本題に戻りますが、バックアップをし忘れたために、git cloneで内容を復活させるというはめになりました。「.git*」というのは含めていましたが、これはgitの設定ファイルを保存したことになります。どうもこのあたりで勘違いが生じていたのかもしれません。


Linuxを含むUNIX環境ではドットで始まるファイルやディレクトリは設定情報を関するもので隠しファイルという扱いにもなっています。Windowsの環境自体ではドットで始まるファイルやフォルダは作れなかったようにも思います。Cygwinだとやっていますが。


git cloneを実行すると展開されたファイルやディレクトリは、すべてタイムスタンプが実行時になるようです。これで今までのファイルの作成日時や更新日時の情報が失われてしまいました。意図せぬ大失敗ですが、取り返しはつかず仕方のないことです。以上です。


<2014-04-30 水 21:29> [ ←これまでの記述範囲の終了時刻]]


|

« 編集作業の開始時刻と終了時刻の記載についての説明 | トップページ | Google+とPicasa ウェブ アルバムの利用方法と違い、及び本文中で使用するURLについての説明_2014年6月13日 »

「2013年6月から2014年12月に作成した告訴状の下書き」」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1177043/60561099

この記事へのトラックバック一覧です: 2014年4月27日、OSの入れ替え時(Ubuntu 14.04)パソコンのデータ移行に伴うファイルのタイムスタンプの喪失について :

« 編集作業の開始時刻と終了時刻の記載についての説明 | トップページ | Google+とPicasa ウェブ アルバムの利用方法と違い、及び本文中で使用するURLについての説明_2014年6月13日 »