#はじめに
サーバー環境によっては、セキュリティー上FTPソフトでのファイル転送ができないことがあります。
その際、ターミナルなどのCLIを使ってのファイルの転送をするのですが、デザイナーの方などの普段あまりコマンドライン上での作業をすることがない方々の参考になればと思います。
※ Mac OSを前提
1.sshでサーバーにログイン
まずはサーバー情報を用意
1.サーバー名:hoge.comやhoge.sakura.ne.jpなど
2.アカウント名:hoge-user
3.サーバーパスワード:レンタルサーバーの場合ランダムで適当な文字列であることが多いです。例:bb45Ri34みたいな
上記を用意したあとターミナルを起動します。
ターミナルは「command+space」を押し、「ターミナル」と打って検索にヒットするはずです。
ターミナル起動後、$ ssh アカウント名@サーバー名
と入力。
$は打たなくて大丈夫です。上記のサーバ情報だとssh hoge-user@hoge.com
と入力することになります。入力後passwordの入力を求められるので、サーバーパスワードを入力、ターミナルにパスワードを打ち込む際に何も表示されてないので分かりづらいですが、ちゃんと入力されているので、入力後Enterを押します。
サーバーにログイン後、ターミナルに[アカウント名@localhost ]$
のような感じでプロンプトが置きかわるかと思います。そうなっていればログイン完了です。
##2.サーバー内のディレクトリを確認
現在自分がどの階層にいるのかをチェックします。
以下主に使うコマンド
$ pwd //現在の階層を確認
$ ls //現在の階層にあるフォルダとファイルを確認
$ cd フォルダ名 //cdコマンドでディレクトリを移動できます
$ cd .. //一つ上のディレクトリ階層に移動
$ cd //cdのみでEnterを押すとルートディレクトリまで移動できます
$ vi ファイル名 //Vimエディタを立ち上げファイルの中を確認
基本的にpwd
コマンドで階層を確認、ls
コマンドでディレクトリを確認、cd
コマンドでアップロードを行うディレクトリまで移動というのが作業の流れかと思います。
##3.SCPコマンドでファイルの転送
上記で、アップロードを行うディレクトリを確認したらscpコマンドを使ってファイルの転送を行います。
zip形式の方が早く転送出来そうな気がしたので、アップロードを行いたいフォルダをzipに圧縮しておきました。
// ローカル(自分のPC)からリモート(サーバー)へ
// scpコマンドの引数オプションで -rを使うとディレクトリを転送出来ます。
$ scp -r /Repository/hoge.zip hoge-user@hoge.com:/home/hoge/share/hoge-upload-theme
//上記入力後パスワードを聞かれますので、sshの際に入力したパスワードを入力
上記を解説します。
1. $ scp -r
はscpコマンドの引数オプションをもたせてディレクトリを転送する方法です。自分の場合zipに圧縮したのでつけなくても大丈夫でした。
2. /Repository/hoge.zip
はローカル(自分のPC)内にあるどのファイルもしくはディレクトリを転送するか指定しています。Repositoryディレクトリにあるhoge.zipファイルを転送するよということです。
3. hoge-user@hoge.com
は上の方でもやったアカウント名@サーバー名になります。
4. hoge-user@hoge.com:/home/share/hoge-upload-theme
はsshでログイン後pwd
コマンドで階層を確認した際の一番上のディレクトリから入力します。たいていの場合homeディレクトリからかと思います。
以上で転送出来たかと思いますが、自分の場合zipで転送してしまったので、再度sshでログインして、zipファイルを解凍する必要があったので、こちらも併せて書いておきます。
4.おまけ
scp
コマンドで転送したzipファイルを解凍する。
再度sshでログイン$ ssh hoge-user@hoge.com
入力後、パスワードも入力してログイン完了。
pwd
コマンドで現在の位置確認、/home/
ディレクトリにいる。
転送したフォルダまで移動、/home/share/hoge-upload-theme
に転送したので、cd /share/hoge-upload-theme
移動。
ls
コマンドで中にhoge.zipがあるか確認。
$ unzip hoge.zip
で解凍が出来ます。
ついでにzipファイルは要らないので、rm hoge.zip
として要らないzipファイルを削除しておきました。