====== scp ====== ===== 概要 ===== * SSH プロトコルを用いて、ファイルを転送する ===== 使い方 ===== $ scp [option] Source Destination * Source: コピー元 * ローカルの場合はそのままファイルパスを指定 * サーバの場合は「**ユーザ名**@**サーバ名**:**ファイルパス**」 * Destination: コピー先 (指定方法は、Source と同じ) * Option * -r: 再帰的にファイルを転送 (ディレクトリのファイル転送をする際に使う) * -c **暗号化方式**: 暗号化方式の指定 * aes128-cbc * 3des-cbc (デフォルト?) * blowfish-cbc * cast128cbc * arcfour (暗号化強度が弱いが?、転送速度が良い) * arcfour128 (暗号化強度が弱いが?、転送速度が良い) * arcfour256 (暗号化強度が弱いが?、転送速度が良い) * aes192-cbc * aes256-cbc * aes128-ctr * aes192-ctr * aes256-ctr * -C: 圧縮して転送 * 参考サイト: [[http://d.hatena.ne.jp/rx7/20101025/p1 | 大容量ファイルのSCP転送を高速にする方法 - 元RX-7乗りの適当な日々]] ===== Tips ===== ==== サーバ側でスペースを含むファイルを転送できない ==== * サーバ側にあるファイル名にスペースを含むファイルを転送できない (no matches found と出る) * エスケープシーケンス (\) でも回避できない。 * ファイルパスをクォーテーション、ダブルクォーテーションで囲む\\ $ scp ユーザ名@サーバ名:"ファイルパス" クライアント側のパス * 参考サイト: [[http://d.hatena.ne.jp/machua/20100415/1271351439 | スペースを含んだパスをscpでコピー - 禿散らかしてごめんなさい]] ==== ワイルドカードで指定したサーバ側のファイルを転送できない ==== * サーバ側のファイルを一括転送しようとワイルドカードを使ったら、No such file * ワイルドカードをエスケープする\\ $ scp ユーザ名@サーバ名:パス/\* クライアント側のパス * 参考サイト: [[https://blog.cloudpack.jp/2014/07/31/tips-scp-escape/ | 地味にハマったコマンドシリーズ(1)SCP でワイルドカードを使ってファイルを指定 | cloudpack技術情報サイト]] ==== Not a directory / Is a directory ==== * 転送しようとしても、「''scp <転送先のパス>: Not a directory''」や「''scp <転送先のパス>: Is a directory''」と出て転送できない * 転送先のパスに既に同名のファイル、あるいはディレクトリがある場合に表示されるエラー * ちなみに、エラーの内容は * ''Not a directory'' は、転送先にファイルがある状態で、同じパスにディレクトリを転送する時に表示される * ''Is a directory'' は、転送先にディレクトリがある状態で、同じパスにファイルを転送する時に表示される {{tag>Linux コマンド}}