[Ubuntu] rsync で自宅サーバと VPS サーバの指定ディレクトリ以下を同期させる
経緯
僕は自宅で Ubuntu を使っていますが、もしデータが無くなってしまったら困りますのでバックアップを考えるようになりました。
バックアップのやり方はいろいろあると思いますが、自宅サーバとは別に さくらインターネットの VPS サーバ (Ubuntu) も使っているので、そこに必要なファイルだけをコピーすることにしました。
具体的には、rsync で指定したディレクトリ以下のデータを同期 (同じ状態に) させます。この rsync コマンドのオプションをよく忘れるのでここにメモして残すことにしました。
Ubuntu を前提にしていますが、CentOS とか他の Linux ディストリビューションでも同じように動く気がします。
rsync コマンド
$ rsync -av -e ssh --delete /home/nobi/python/ sakura:/home/nobi/python
このコマンドで、自宅の Ubuntu から、さくらインターネットの VPS サーバにデータをコピーしているわけです。
データコピーの対象として、/home/nobi/python ディレクトリ以下をまるごとバックアップというわけです。
自宅 Ubuntu にも VPS サーバにも /home/nobi/python ディレクトリがあるので、それを同じ状態にしておきたいわけです。
–delete オプションは、「VPS サーバ上には存在するけど、自宅 Ubuntu には存在しないファイル (ディレクトリ) は削除する」オプションです。この –delete オプションがあるので、同期状態 (同じ状態が保たれる) となるわけです。
sakura と書いてところですが、普通は、ユーザー名@サーバーの IP アドレス のようになっているものですが、省略されています。
厳密には省略と言って良いのかどうかわかりませんが、自宅 Ubuntu の /home/nobi/.ssh/config ファイルに書かれた定義を使っているわけです。
自宅 Ubuntu の config ファイル
$ cat config Host sakura HostName 123.234.34.45 User nobi IdentityFile ~/.ssh/sakuraubuntu $
のように書かれています。
HostName の後ろの IP アドレスは適当に書き換えていますので僕が使っている VPS サーバのアドレスではありません。
config ファイルに sakura と定義してあるので、rsync コマンドで sakura:/home/nobi/python のような書き方ができるわけです。
rsync の処理の経過を表示させたくないとき
rsync にオプション -v をつけると処理状況が表示されますが、それを表示させたくないときは -v をつけません。
$ rsync -a -e ssh --delete /home/nobi/python/ sakura:/home/nobi/python Enter passphrase for key '/home/nobi/.ssh/sakuraubuntu': $
画面表示は以上のようになります。
おまけ (VPS を使うなら ?)
VPS を使おうと思っているなら さくらインターネット が良いです。
僕は 5 – 6 社使ったことがありますが、管理画面の使いやすさや安定性、ssh ログインしたときのレスポンスの良さ、コスパを考えると、さくらインターネットの VPS 一択 (経験上この点に迷いはない) です。
ちなみにこのブログは WordPress ですが、さくらのレンタルサーバー を使っています。レンタルサーバーはプラン変更したいのですが、面倒くさくて手つかずのまま・・・
これまで使ったことのある VPS 会社
2022 年 3 月 28 日現在で以下の VPS を使っている、もしくは使っていた (一部忘れてしまったものもあると思われる) VPS です。OS はすべて Linux (Ubuntu, CentOS) です。
- さくらインターネット (2 つ契約している)
- お名前 .com (解約済み)
- WebARENA (NTT PC が提供している。ちかぢか解約)
- ConoHa VPS (GMO グループが提供している。いつか解約)
今後、さくらインターネットの VPS を増やすか、違うプランに契約替えするかを検討している。個人的な好みで僕は Ubuntu が好きなので CentOS のプランをやめようと考えている。
あと、遊び & 検証用途として Windows サーバーのプラン (これも、さくらインターネットで) も使ってみようかなと思ってみたりもしている。