MAGAZINE

キャリテク!マガジン

コラム

転ばぬ先のバックアップ (1) 作業前のバックアップ取得を習慣づけよう

こんにちは。株式会社パイプラインの濱田です。
我々エンジニアにとってバックアップの成否はビジネスの継続性を支えるうえで重要なタスクの1つと考えます。作業前の小さなバックアップからシステム全体のバックアップまで、一口にバックアップといっても重要度や影響度は異なり、バックアップやリストアの手法にもそれぞれ特徴があります。今回より数回にわたり、バックアップおよびリストアの手法について取り上げてみたいと思います。

そもそもバックアップとは何なのか?

Oxford Languagesによると、バックアップとは

《名・ス他》不時の事故・危険に備えて、二重に守り支援する態勢(を整えること)。後ろだて。

とされています。ファイルシステムの破損や作業ミスなどを100パーセント防ぐことは不可能ですが、システムの二重化、多重化を行うことで、サービスの可用性を上げる(下げない)ことは可能であり、また、予算などの都合でシステムの二重化、多重化ができなくとも、定期的または任意の時点でファイルのバックアップを取得していれば、少なくともバックアップが成功した時点までのファイル復旧が可能といえます。

大事なことなので最初に申し上げますが、バックアップの目的は正しくリストアを行うことにあります。戻せないバックアップは単なるディスクの肥やしですので、きちんとバックアップが採れているかを確認し、平時においてはリストアできることの確認も運用訓練として行うとよいでしょう。

作業前のバックアップを習慣づけましょう

バックアップの重要性はわかりました。さて、作業前のバックアップはどう取得すればよいのでしょう?今回はLinuxの設定ファイルを例にバックアップ方法の例を取り上げます。なお、前提としてはvimなどのエディタを使って人間が編集するファイルを想定しています。 useradd userdel vipw vigrなどの認証系コマンドやnmcliやnmtuiなどのネットワーク設定系コマンドについては対象外とします。

/etc/hosts ファイルのバックアップ例

vimなどのエディタで /etc/hosts ファイルを編集する前に同ファイルをバックアップするコマンドの例を示します。下記例のコマンドラインは、いずれも複数行に見えますが、1行(ワンライナー)で実行しています。

1.lsコマンドで /etc ディレクトリ内に hostsファイルがあることを確認する

ここでは、 hosts.allow hosts.deny ファイルを表示しないようにしています。

2. /etc/hosts.ORIG ファイルがなければ /etc/hosts ファイルを /etc/hosts.ORIG としてバックアップし、1の手順のlsコマンドを実行して表示確認する

上記cp(コピー)コマンドのオプションに-pをつけることで、元のファイルのタイムスタンプを変更せずにコピーしています。ですので、作業時間と比較していつの時点のファイルがどう影響を及ぼしているかの調査も容易にできます。

3.もし /etc/hosts.ORIG ファイルがあったら /etc/hosts ファイルを /etc/hosts/YYYY-MM-DD (日付)形式でバックアップし、1の手順のlsコマンドを実行して表示確認する

一度 /etc/hosts.ORIGファイルがない状態にして実行してから実行します。

それでは実行してみましょう。

一度目の実行では、 /etc/hostsが/etc/hosts.ORIGとしてコピーされました。それではもう一度実行してみましょう。

ご覧のように、 /etc/hosts.ORIGがあると /etc/hosts.2021-04-19 としてコピーされました。

コマンドの実行結果に不安で慣れないうちは、test([)コマンドの条件分岐(&&と||)を使わず1行1行実行してもよいかと思いますが、むしろ人間がおっかなびっくりコマンドを叩くよりはこうしたワンライナーを早い段階から覚えておくと、こちらのほうがオペミスの確率が減ることを実感いただけるでしょう。今回はスペースの都合上testコマンドと条件分岐の解説を省略しましたが、次回はワンライナーによるファイルのバックアップを少し掘り下げて解説したいと思います。

まずはエンジニアデビューしたい、という方は、3ヶ月間学びながらお給料が貰える KCCSキャリアテック キャリテク!の門を叩いてみてはいかがでしょう。 https://www.kcct.co.jp/careetec/

過去の連載記事

  1. リモートワークで作業品質と効率を上げる方法 ~いかにして自分の作業に集中できるかを考えよう~
  2. 障害対応に強くなろう http障害解決の近道 – WEBサーバーのステータスコードを知ろう
  3. あなたは1人じゃない その4 はじめてリーダーになるあなたへ 「リスペクト」「アウトプット」「アウトカム」からチームのコミュニケーションを改善しよう (1)
facebook シェアシェア
LINE シェアシェア