さくらのナレッジにシェルスクリプトでバックアップのすすめという記事があります。WordPressなどのCMS以外でも何かと応用が利くテクニックなので、自分でも使ってみたい…。さくらクラブ大阪のLinuxもくもく勉強会がありましたので、さっそくチャレンジしてみました。
保存の前にssh接続の確認
そのバックアップの前に、保存元のサーバーから保存先のサーバーに向かって、公開鍵認証方式で接続できるかどうか確認しなければなりません。
自分の場合は保存元のサーバーにさくらのVPSを、保存先のサーバーにさくらのレンタルサーバーを使っています。ssh接続のためのコマンドは以下の通りです。
# ssh -i /root/.ssh/id_rsa hoge@49.×××.×××.××
hogeはさくらのレンタルサーバーで使用しているアカウント名で、49.×××.×××.××はIPアドレスのことを指します。
ルートディレクトリの直下にある、".ssh"ディレクトリ内の秘密鍵を使い、レンタルサーバーとssh接続をする。
このコマンドをあえて日本語にすると、こんな感じになります。ですが、このコマンドを実行してもなぜか接続できない…。
秘密鍵のファイルはルートディレクトリに
おかしいと思って調べてみると、一般ユーザー用のホームディレクトリの下に.sshディレクトリを作っちゃってました。ssh接続を実行するためには、予め
以下の順序で、コマンドを実行しておく必要があります。
$ sudo -s [sudo] password for hoge: # pwd /home/hoge # cd / # cd root # mkidir .ssh # chmod 700 .ssh
一般ユーザーからrootユーザーに昇格 ↓ 一般ユーザーのホームディレクトリからルートディレクトリに移動 ↓ rootユーザーのホームディレクトリに移動 ↓ .sshディレクトリの作成 ↓ .sshディレクトリの権限変更
特別な名前をもつディレクトリまとめ
以上の間違いが発生する原因は、サーバーの中で特別な名前を持つディレクトリ名を理解していなかったことにあります。というわけで、その特別な名前をもつディレクトリについてまとめてみました。
“/”
ルートディレクトリ。階層型ファイル構造における最上階層のディレクトリのことを指します。
“/root/”
rootユーザー用のホームディレクトリ。ルートディレクトリの直下にあります。
“/home/一般ユーザー名”
一般ユーザー用のホームディレクトリ。ssh通信でサーバーにログインしたときに最初に入るディレクトリです。
“/var/www/html”
ドキュメントルートディレクトリまたはドキュメントルート。htmlファイルなどWebコンテンツのファイル保存するときに使う。なお狭義の意味でルートディレクトリと呼ばれることもあります。
“~/”
スラッシュの前にチルダを使ったときは、ホームディレクトリを表します。現在のユーザーがrootユーザーであれば”/root/”を、一般ユーザーであれば”/home/一般ユーザー名”になります。
言葉の定義って大事ですね〜。これらの定義が分かっていなかったため、VPSからレンタルサーバーにssh接続をするだけで、2時間も時間をつぶすことになりましたので(泣
〔参考サイト〕