LoginSignup
0
0

More than 3 years have passed since last update.

計算サーバのデータのバックアップに関するメモ

Last updated at Posted at 2020-03-31

この記事は

ドライブやホストを跨いでバックアップする際の作業メモです。手元のどこかに書いているとそのメモの在りかが分からなくなってしまうのでここに書いています。
状況としては、普段SSH越しに利用している計算サーバ上のデータを、LAN内に置いているNASにバックアップする必要がありました(下の図)。
私個人の環境に合わせて書いているので、必要なところだけ掻い摘んで使ってください。なお、作業はMacのTerminalで行っています。

LAN.png

作業

1. リモートホストのファイルシステムをマウント

sshfsを予めインストールしておく。Linuxならapt-getなどで入るし、Macはbrew caskでインストール可能。
また、マウント用に、適当なディレクトリ(以下ではmountpoint)を作成しておく。

$> sshfs username@REMOTEHOST: ~/mountpoint

もし、リモートホストのホームディレクトリ(フロントサーバで初めに着地する場所)とは別のファイルシステムに置かれているファイルをsshfs越しに見る必要がある場合は、そこに予めシンボリックリンクを貼っておく。
sshfsはそのままではシンボリックリンクを読めないので、その場合は、-o follow_symlinksをsshfsのオプションとして渡す。

# ssh接続によるリモートホストでの作業
$> ln -s /ANOTHER_DRIVE/path $HOME/link_to_another_filesystem
# 手元での作業
$> sshfs username@REMOTEHOST: ~/mountpoint -o follow_symlinks
$> cd ~/mountpoint/link_to_another_filesystem # -o follow_symlinksを渡さない場合、これが失敗する

2. バックアップ先のマウント

必要に応じて追加します。

NASのマウント

LinuxだとcifsというツールをインストールしたらNASをマウントできるようなのだが、どうも書き込みができない。
Macだと新たに何かをインストールする必要はなく、terminalに元から入っているmountコマンドでマウント可能。上記のsshfsと同様に、マウント用のディレクトリを作っておく(以下ではmountpoint2)。

mount -t smbfs //username@NAS_NAME/path ~/mountpoint2

3. rsync

3.1 同期するファイルを確認する

rsyncのオプションとしてnを渡すとdry-runとなり、実際の作業はせずバックアップするファイルをリストするだけで終了する。これで、対象となるファイルを確認する。
--exclude="*.bin"などで、バイナリなどバックアップから除外するファイルを指定する。

注意する点として、コピー元のディレクトリの指定時に、src_dir_name/のようにセパレータ(/)をつけた場合、コピー先のディレクトリ内(直下)に、src_dir_nameの子ディレクトリが作られる。
一方、src_dir_nameのようにセパレータを付けない場合は、コピー先のディレクトリ直下に同名のディレクトリ(ここでいうと、src_dir_name)が作られ、その下に子ディレクトリが作られる。

rsync -avn ~/mountpoint/src_dir_name ~/mountpoint2/dst_dir_name --exclude="*.bin" 

3.2 実行

上記で確認して問題なければ、nのオプションを外して実行する。

rsync -av ~/mountpoint/src_dir_name ~/mountpoint2/dst_dir_name --exclude="*.bin" 

終わりに

何か知見が増えたらここにも追加します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0