あるサーバーのファイルを別サーバーにコピーするとき、大昔はFTPを使っていましたが、現在FTPサーバー自体を立てることがあまりないため、SSHを使ったSCPコマンドでのファイル点を使いました。
コマンド
scp -P ポート番号 -i 鍵のパス ログインユーザー@ホスト:コピー対象のファイスパス コピーがおかれるファイスパス
1 |
scp -i /home/hogehoge2/.ssh/id_rsa -P 1234 sample_user@sample_host.jp:/home/hogehoge/sample.zip /home/hogehoge2/ |
/home/hogehoge2/.ssh/id_rsaを使い、ポート番号1234でsample_host.jpにログインユーザーsample_userにログインし、/home/hogehoge/sample.zipを/home/hogehoge2にコピーする
注意点
- -Pは-pだと別の意味になるので動きません。
- 再帰的にとったりもできますが、権限に気を付けましょう。コピーされる側でzipとかで固めたほうが手間がないかも
- -iや-Pがログインユーザー@ホストよりも前にないと動きません。ここがsshのときと違うっぽいです。
- シェルスクリプトで動かしたいときは↓の方法がそのまんま使えます。sshコマンドをそのままSCPに切り替えます。
シェルスクリプトでのsshログインとメール送信